4.【QMT使用指南】- 变量约定

量化软件 2025-01-11 23640
量化软件:迅投QMT使用指南 4.【QMT使用指南】- 变量约定  第1张
4.【QMT使用指南】- 变量约定  第2张

函数命名规则

  • 函数名以 get_ 开头的,表示数据来源于客户端内存

  • 函数名以 query_ 开头的,表示数据是向服务查询

账号类型说明

  • 'FUTURE' - 期货账号

  • 'STOCK' - 股票账号

  • 'CREDIT' - 信用账号

  • 'FUTURE_OPTION' - 期货期权

  • 'STOCK_OPTION' - 股票期权

  • 'HUGANGTONG' - 沪港通

  • 'SHENGANGTONG' - 深港通

symbol_code - 代码表示

迅投代码(symbol_code)是迅投平台统一用于表示交易标的的代码,其格式为:交易标的代码.交易所代码,例如深圳证券交易所的平安银行,迅投代码为 000001.SZ(不区分大小写)。代码表示可以在迅投研终端的行情列表或者按键精灵中查询。

4.【QMT使用指南】- 变量约定  第3张

交易所代码

目前迅投研支持国内 12 个交易所,12 个交易所的代码缩写如下:

交易所名称 迅投简称 显示后缀
上海证券交易所 SH SH
深圳证券交易所 SZ SZ
北京证券交易所 BJ BJ
香港证券交易所 HK HK
沪港通 HGT HGT
深港通 SGT SGT
中国金融期货交易 IF CFFEX
上海期货交易所 SF SHFE
大连商品交易所 DF DCE
郑州商品交易所 ZF CZCE
上海国际能源交易中心 INE INE
广州期货交易所 GF GFEX

迅投研系统目前支持一站式获取全球多市场数据,详情链接:全球市场数据

4.【QMT使用指南】- 变量约定  第4张

交易标的代码

交易标的代码是指交易所给出的交易标的代码,包括股票(如 600000)、期货(如 rb2011)、期权(如 10002498)、指数(如 000001)、基金(如 510300)等代码。

注意:对于期货合约代码来说,我们仅对 market 做了简化处理,symbol 仍遵守交易所标准命名规则,且严格区分大小写,例如 AP401.ZF 不能写成 ap401.ZFrb2401.SF 不能写成 RB2401.SF

symbol 示例

市场中文名 市场代码 示例代码 显示后缀 证券简称
上交所 SH 600000.SH SH 浦发银行
深交所 SZ 000001.SZ SZ 平安银行
北交所 BJ 830779.BJ BJ 武汉蓝电
中金所 IF IC2311.IF CFFEX 中证 500 指数 2023 年 11 月期货合约
上期所 SF rb2311.SF SHFE 螺纹钢 2023 年 11 月期货合约
大商所 DF m2311.DF DCE 豆粕 2023 年 11 月期货合约
郑商所 ZF FG305.ZF CZCE 玻璃 2023 年 5 月期货合约
上海国际能源交易中心 INE sc2311.INE INE 原油 2023 年 11 月期货合约
广期所 GF lc2405.GF GFEX 碳酸锂 2024 年 05 月期货合约
上证期权 SHO 10005334.SHO SH 50ETF购12月2650
深证期权 SZO 90002114.SZO SZ 深证100ETF沽12月2700
板块指数 BKZS 290001.BKZS BKZS 工业品期货板块指数

期货主力连续合约

仅支持回测模式下交易,期货主力连续合约 为量价数据的简单拼接,未做平滑处理,如 rb00.SF 螺纹钢主连合约,其他主连合约代码请参考

期货加权连续合约

仅支持回测模式下交易,期货加权连续合约 为迅投按照一定规则加权合成的连续合约,相比主力连续合约更加平滑,如 rbJQ00.SF,其他加权合约代码参考

mode - 模式选择

迅投研终端中,策略可以以四种模式运行,分别为 调试运行模式回测模式模拟信号模式实盘交易模式,模式需要在运行策略时手动选择。

调试运行模式

调试运行模式需要在策略编辑界面点击编辑栏上方的 运行,该模式下策略会以实时行情进行运算,但迅投研终端 不会记录交易信号

4.【QMT使用指南】- 变量约定  第5张

回测模式

回测模式需要在策略编辑界面点击编辑栏上方的 回测,该模式下策略会以右侧栏设定的回测周期推进行情进行运算,回测模式下,发生的交易会被记录在回测结果页面。

4.【QMT使用指南】- 变量约定  第6张

模拟信号模式

模拟信号模式需要在策略交易界面,在左侧策略文件栏中选择要进行计算运行的策略,点击 右侧圆形按钮 选择 模拟,点击 三角形运行按钮 后策略会以实时行情进行运算,该模式下调用的下单函数(passorder) 不会产生实际交易,仅会记录交易信号在下方的 策略信号 栏中

4.【QMT使用指南】- 变量约定  第7张

实盘交易模式

实盘交易模式需要在策略交易界面,在左侧策略文件栏中选择要进行计算运行的策略,点击 右侧圆形按钮 选择 实盘,点击 三角形运行按钮 后策略会以实时行情进行运算,该模式下调用的下单函数(passorder) 会对账户实际下单,同时交易信号会记录在下方的 策略信号 栏中

4.【QMT使用指南】- 变量约定  第8张

ContextInfo - 上下文对象

ContextInfo.start/ContextInfo.end - 回测开始/结束时间

注意

  1. 此属性只在回测模式生效。

  2. 仅在 init 中设置生效,应在 init 中设置完毕。

  3. 缺省值为策略编辑界面设定的回测时间范围。

  4. 回测起止时间也可在策略编辑器的回测参数面板中设置,若两处同时设置,则以代码中设置的值为准。

  5. 结束时间小于等于开始时间则计算范围为空。

释义:可通过此属性设定回测开始/结束的时间,以 %Y-%m-%d %H:%M:%S 格式传入。

原型

ContextInfo.start  # 回测开始时间属性ContextInfo.end  # 回测结束时间属性

返回值none

示例

# coding:gbkdef init(ContextInfo):    ContextInfo.start = "2017-01-01 00:00:00"  # 回测开始时间为 2017-01-01    ContextInfo.end = "2020-01-01 00:00:00"  # 回测结束时间为 2020-01-01def handlebar(ContextInfo):    # 打印输出当前回测时间    print(timetag_to_datetime(ContextInfo.get_bar_timetag(ContextInfo.barpos), "%Y-%m-%d %H%M%S"))

输出值

2017-01-03 1030002017-01-03 1130002017-01-03 1400002017-01-03 1500002017-01-04 1030002017-01-04 1130002017-01-04 1400002017-01-04 1500002017-01-05 1030002017-01-05 113000...

ContextInfo.cAPItal - 设定回测初始资金

注意:此函数只支持回测模式。回测初始资金也可在策略编辑器的回测参数面板中设置,若两处同时设置,则以代码中设置的值为准。

释义:设定回测初始资金,支持读写,默认为 1000000。

原型

ContextInfo.capital = 10000000  # 设定 ContextInfo.capital 值为 10000000

返回值float 类型的数值,代表当前策略设定的回测金额。

示例

# coding:gbkdef init(ContextInfo):    ContextInfo.capital = 10000000def handlebar(ContextInfo):    print(ContextInfo.capital)

输出值

10000000.010000000.010000000.0...

ContextInfo.period - 获取当前周期

释义:获取当前周期,即基本信息中设置的默认周期,只读

原型

ContextInfo.period

返回值string,返回值含义如下表:

含义
1d 日线
1m 1 分钟线
3m 3 分钟线
5m 5 分钟线
15m 15 分钟线
30m 30 分钟线
1h 小时线
1w 周线
1mon 月线
1q 季线
1hy 半年线
1y 年线

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.period)

返回值

1d

ContextInfo.barpos - 获取当前运行到 K 线索引号

释义:获取主图当前运行到的 K 线索引号,只读,索引号从 0 开始。

原型

ContextInfo.barpos

返回值int 类型值,代表着当前 K 线的索引号。

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.barpos)

返回值

012345...

ContextInfo.time_tick_size - 获取当前图 K 线数目

释义:获取当前图 K 线 bar 的数量,只读。

原型

ContextInfo.time_tick_size

返回值int

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.time_tick_size)

返回值

529752975297529752975297...

ContextInfo.stockcode - 获取当前图代码

释义:获取当前主图代码,只读。

原型

ContextInfo.stockcode

返回值string,对应主图代码。

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.stockcode)

返回值

000300000300000300000300000300...

ContextInfo.market - 获取当前主图市场

释义:获取当前主图市场,只读。

原型

ContextInfo.market

返回值string,对应主图市场。

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.market)

返回值

SHSHSHSHSH...

ContextInfo.dividend_type - 获取当前主图复权处理方式

释义:获取当前主图复权处理方式。

原型

ContextInfo.dividend_type

返回值string,返回值含义如下表:

含义
none 不复权
front 向前复权
back 向后复权
front_ratio 等比向前复权
back_ratio 等比向后复权

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.dividend_type)

返回值

front_ratiofront_ratiofront_ratiofront_ratiofront_ratio...

ContextInfo.benchmark - 获取回测基准标的

注意:该属性只在回测模式可用。

释义:获取回测基准的代码,只读。

原型

ContextInfo.benchmark

返回值string

示例

# coding:gbkdef init(ContextInfo):    passdef handlebar(ContextInfo):    print(ContextInfo.benchmark)

返回值

000300.SH000300.SH000300.SH000300.SH000300.SH...

ContextInfo.do_back_test - 表示当前是否为回测模式

释义:表示当前是否为回测模式,只读,默认值为 False

原型

ContextInfo.do_back_test

返回值bool

名词“短线配置解析”:基本概念及解析
« 上一篇 2025-01-11
Python自动化炒股:利用XGBoost和LightGBM进行股票市场预测的详细指南
下一篇 » 2025-01-11