3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)量化交易平台进行期货策略开发时,由于期货合约存在生命周期与交割日,策略往往需要动态获取当前交易日某品种下所有处于上市交易状态的合约代码。聚宽提供了 get_future_contracts API 来满足这一需求。
get_future_contracts 用于获取某期货品种在指定日期的可交易合约标的代码列表。
get_future_contracts(security, date=None)
security (str): 期货合约品种代码,如 'RB'(螺纹钢)、'IF'(沪深300股指期货)、'CU'(铜)等。date (str / datetime.date / datetime.datetime, 可选): 查询日期。
context.current_dt)。list,包含当前日期该品种所有可交易的具体合约代码(如 ['IF2309.CCFX', 'IF2310.CCFX', ...])。from jqdata import *
# 查询 2023年6月1日 沪深300股指期货(IF)的可交易合约
if_contracts = get_future_contracts('IF', date='2023-06-01')
print("沪深300股指期货可交易合约:", if_contracts)
# 输出示例: ['IF2306.CCFX', 'IF2307.CCFX', 'IF2309.CCFX', 'IF2312.CCFX']
# 查询 2023年6月1日 螺纹钢(RB)的可交易合约
rb_contracts = get_future_contracts('RB', date='2023-06-01')
print("螺纹钢可交易合约:", rb_contracts)
import jqdata
def initialize(context):
# 设定期货交易账户
set_subportfolios([SubPortfolioConfig(cash=1000000, type='futures')])
# 设置定时运行函数
run_daily(daily_check, time='09:30', reference_security='RB9999.XSGE')
def daily_check(context):
# 获取螺纹钢品种当前可交易的所有合约
contracts = get_future_contracts('RB')
log.info("今日螺纹钢可交易合约总数: %d", len(contracts))
log.info("具体合约列表: %s", contracts)
get_future_contracts 接收的 security 参数应为品种简称(如 'RB'、'IF'),而非主力代码(如 'RB9999.XSGE')。get_dominant_future(underlying_symbol, date=None) 函数。.CCFX: 中金所(如 IF2306.CCFX).XSGE: 上期所(如 RB2310.XSGE).XDCE: 大商所.XZCE: 郑商所.XINE: 上海国际能源交易中心