🚀 AI 一键生成 joinquant 策略代码
立即体验

joinquant 期货交易进阶:上期所与中金所平今仓 close_today 规则解析

joinquant | 发布时间: 2026/7/23
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: joinquant 期货交易进阶:上期所与中金所平今仓 close_today 规则解析

Question: 在 joinquant 中进行期货平仓时,close_today 参数该如何设置?

解决方案

在 JoinQuant(聚宽)量化交易平台中,进行期货交易平仓时,close_today 参数用于控制是否专门平掉当天新建的仓位(即平今仓)。由于不同期货交易所对平今仓和平昨仓的规则与手续费差异较大,正确设置该参数对于控制交易成本和避免委托废单至关重要。


一、close_today 参数的基本含义

在聚宽平台中,orderorder_targetorder_value 以及 order_target_value 等下单函数均支持 close_today 参数:

  • 类型bool(布尔值)
  • 默认值False
  • 作用:控制平仓指令是优先平昨仓还是仅平今仓。

二、各交易所的 close_today 处理规则

1. 上期所(XSGE)、上海国际能源中心(XINE)与中金所(CCFX)

这三个交易所严格区分平今仓平昨仓close_today 参数的生效逻辑如下:

  • close_today = True(只平今仓)
    • 系统仅尝试平掉今天新开的仓位。
    • 注意事项:如果当前持有的今仓数量不足以覆盖下单平仓数量,订单将被直接废单
  • close_today = False(优先平昨仓)
    • 系统会优先平掉昨仓;若昨仓不足,剩余未平仓数量会自动平掉今仓。

2. 其他交易所(郑商所 XZCE、大商所 XDCE、广期所 GFEX)

  • 这些交易所不区分平今与平昨,统一按照“先开先平”的原则处理。
  • 注意事项:若对这些交易所的标的将 close_today 设置为 True,系统会直接报错

三、手续费计算的影响

无论 close_today 设置为 True 还是 False,平仓时手续费均按实际平掉的仓位类型分别计算:

  • 平昨仓:按 set_order_cost 设置的 close_commission(平仓佣金费率)扣除。
  • 平今仓:按 set_order_cost 设置的 close_today_commission(平今仓佣金费率)扣除。

注:中金所股指期货等品种的平今仓手续费通常远高于平昨仓手续费,因此在编写策略时需格外注意平仓时机与策略逻辑。


四、代码示例

import jqdata

def initialize(context):
    # 设置期货子账户
    set_subportfolios([SubPortfolioConfig(cash=1000000, type='futures')])
    # 设置中金所 IF 合约手续费
    set_order_cost(OrderCost(open_commission=0.000023, 
                             close_commission=0.000023, 
                             close_today_commission=0.00023), type='index_futures')

def handle_data(context, data):
    symbol = 'IF2309.CCFX'
    
    # 示例1:只平今仓(若今仓不足会废单)
    order(symbol, -1, side='long', close_today=True)
    
    # 示例2:优先平昨仓,昨仓不足再平今仓(推荐常规平仓使用)
    order(symbol, -1, side='long', close_today=False)

五、总结与最佳实践

  1. 常规平仓策略:对于上期所与中金所标的,建议默认保持 close_today=False,由系统优先平昨仓,避免因今仓不足导致废单。
  2. 高频/日内T+0策略:如果策略严格要求不留隔夜仓且需要精准控制平今成本,可显式指定 close_today=True,但需配合持仓查询函数检查 today_amount(今开仓量)。
  3. 跨交易所兼容:若策略同时交易多个交易所的品种,应对上期所/中金所与其他交易所标的分开处理平仓逻辑,防止在郑商所/大商所标的上触发 close_today=True 的报错。