3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)量化交易平台中,若需要将某只股票或标的的持仓调整到固定的目标金额(如将持仓调整至 10,000 元,或清仓调至 0 元),可以使用系统提供的交易 API 函数 order_target_value。
order_target_value 用于调整标的持仓到指定的总价值。
order_target_value(security, value, style=None, side='long', pindex=0, close_today=False)
'000001.XSHE')。value = 0:表示卖出该标的的所有持仓(清仓)。value > 0:系统会自动计算当前持仓价值与目标价值的差额进行增减仓。None(即 MarketOrderStyle 市价单)。也可指定 LimitOrderStyle(price) 限价单。'long'(多单)或 'short'(空单,股票/基金暂不支持空单)。0。Order 对象,失败则返回 None。以下示例展示了如何在策略中将股票持仓调整至指定的金额:
import jqdata
def initialize(context):
# 设置基准与真实价格模式
set_benchmark('000300.XSHG')
set_option('use_real_price', True)
g.security = '000001.XSHE'
# 定时运行
run_daily(rebalance, time='9:30')
def rebalance(context):
security = g.security
# 示例1:将平安银行的持仓价值直接调整为 10,000 元
order_target_value(security, 10000)
log.info("已将股票 %s 的持仓价值调整至 10,000 元" % security)
# 示例2:清仓某只股票(将目标价值设为 0)
# order_target_value(security, 0)
order_target_value 下单时,若该标的当前存在未完成的挂单,系统会自动取消先前的未完成订单。value 有微小偏差。'688001.XSHG')使用市价单调仓,建议指定保护价:order_target_value('688001.XSHG', 10000, style=MarketOrderStyle(10.0))。