问题描述
/
解决方案
在 QMT (迅投量化交易平台) 中,将策略的默认品种修改为期货非常简单。您可以通过界面设置或代码设置两种方式来实现。以下是详细的操作步骤:
方法一:通过策略编辑器界面修改(推荐)
如果您希望在点击“运行”或“回测”时默认加载期货品种,可以直接在策略编辑器中进行设置:
- 打开 QMT 终端,进入**【策略开发】**界面。
- 双击打开您的 Python 策略,进入**【策略编辑器】**。
- 在编辑器右侧的面板中找到**【基本信息】**选项卡。
- 找到**【默认品种】**一栏,点击当前的品种代码。
- 在弹出的搜索框中,输入您想要的期货合约代码(例如沪深300主力合约输入
IF00或IF.IF),选中后确认即可。
注意:当您在非行情界面(如策略开发界面)点击运行时,系统会基于这里设置的默认品种运行。
方法二:通过 Python 代码修改(适用于多品种或动态品种)
如果您希望在代码中强制指定策略运行的期货品种,可以在 init 初始化函数中使用 ContextInfo.set_universe() 方法来设定合约池。
#coding:gbk
def init(ContextInfo):
# 设置默认的期货合约池,例如:沪深300当月连续(IF00.IF) 和 螺纹钢主力(zn.SF)
stocklist = ['IF00.IF', 'zn.SF']
ContextInfo.set_universe(stocklist)
# 也可以动态获取某个品种的主力合约
# main_contract = ContextInfo.get_main_contract('IF.IF')
# ContextInfo.set_universe([main_contract])
def handlebar(ContextInfo):
# 获取当前运行的合约代码
current_code = ContextInfo.stockcode
print(f"当前运行的期货品种是: {current_code}")
💡 附录:QMT 期货市场代码后缀说明
在 QMT 中输入期货代码时,必须带上正确的市场后缀,格式为 合约代码.市场代码:
- 中金所 (IF):例如
IF1805.IF、IF00.IF(连续合约) - 上期所 (SF):例如
zn1805.SF、rb00.SF - 大商所 (DF):例如
m1805.DF、i00.DF - 郑商所 (ZF):例如
SR1805.ZF、TA00.ZF - 能源中心 (INE):例如
sc1809.INE
温馨提示:在进行期货策略回测或运行前,请务必前往**【数据管理】**中下载对应期货品种和周期的历史数据,否则策略可能无法正常获取行情。