3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)的期货策略中,可以通过在下单函数(如 order、order_target 等)中设置 close_today 参数来指定是否“平今仓”。
close_todaybool (布尔值)close_today=True: 只平今仓。
close_today=False (默认值): 优先平昨仓。
以下代码展示了如何在 order 和 order_target 函数中使用该参数。
order 函数平今仓假设当前持有 IF1912.CCFX 的多单,现在需要平掉 1手 今日开仓 的多单:
# amount为负数表示卖出(平仓),side='long'表示操作多头仓位
# close_today=True 表示强制平今仓
order('IF1912.CCFX', -1, side='long', close_today=True)
order_target 函数平今仓假设当前持有 RB2001.XSGE 空单 5 手(其中今仓 2 手,昨仓 3 手),现在希望将空单持仓调整为 3 手(即平掉 2 手):
# 如果希望这平掉的2手必须是“今仓”:
# target=3,意味着要卖平2手。设置 close_today=True 强制平今
order_target('RB2001.XSGE', 3, side='short', close_today=True)
如果希望优先平掉老仓位,不够再平今仓,只需设置 False 或不填:
# 优先平昨仓,昨仓不够时平今仓
order('IF1912.CCFX', -1, side='long', close_today=False)
close_today 对控制交易成本非常重要。side): 期货交易必须指定 side 参数('long' 或 'short'),否则系统默认为 'long'。
amount < 0, side='long'amount < 0, side='short' (注意:此处 amount 为负数代表减少持仓,即买入平空)close_today=True,回测或模拟交易可能会报错。Q: 如果我设置了 close_today=True 但是没有今仓,只有昨仓,会发生什么?
A: 订单会失败(废单)。系统会检测到可用今仓不足,不会去动用昨仓。
Q: order_value 和 order_target_value 支持平今仓吗?
A: 支持。所有的下单函数(order, order_target, order_value, order_target_value)都支持 close_today 参数。
Q: 郑商所(XZCE)和大商所(XDCE)如何指定平今?
A: 这两个交易所的交易规则通常是“先开先平”(FIFO),不支持显式指定平今或平昨。在聚宽中对这两个交易所的标的下单时,建议不要设置 close_today 参数(使用默认值),系统和柜台会按照交易所规则自动处理。