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

函数命名规则
-
函数名以
get_
开头的,表示数据来源于客户端内存 -
函数名以
query_
开头的,表示数据是向服务查询
账号类型说明
-
'FUTURE'
- 期货账号 -
'STOCK'
- 股票账号 -
'CREDIT'
- 信用账号 -
'FUTURE_OPTION'
- 期货期权 -
'STOCK_OPTION'
- 股票期权 -
'HUGANGTONG'
- 沪港通 -
'SHENGANGTONG'
- 深港通
symbol_code - 代码表示
迅投代码(symbol_code)是迅投平台统一用于表示交易标的的代码,其格式为:交易标的代码.交易所代码,例如深圳证券交易所的平安银行,迅投代码为 000001.SZ
(不区分大小写)。代码表示可以在迅投研终端的行情列表或者按键精灵中查询。
交易所代码
目前迅投研支持国内 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 |
迅投研系统目前支持一站式获取全球多市场数据,详情链接:全球市场数据。
交易标的代码
交易标的代码是指交易所给出的交易标的代码,包括股票(如 600000)、期货(如 rb2011)、期权(如 10002498)、指数(如 000001)、基金(如 510300)等代码。
注意:对于期货合约代码来说,我们仅对 market
做了简化处理,symbol
仍遵守交易所标准命名规则,且严格区分大小写,例如 AP401.ZF
不能写成 ap401.ZF
,rb2401.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 - 模式选择
迅投研终端中,策略可以以四种模式运行,分别为 调试运行模式
,回测模式
,模拟信号模式
,实盘交易模式
,模式需要在运行策略时手动选择。
调试运行模式
调试运行模式需要在策略编辑界面点击编辑栏上方的 运行
,该模式下策略会以实时行情进行运算,但迅投研终端 不会记录交易信号。
回测模式
回测模式需要在策略编辑界面点击编辑栏上方的 回测
,该模式下策略会以右侧栏设定的回测周期推进行情进行运算,回测模式下,发生的交易会被记录在回测结果页面。
模拟信号模式
模拟信号模式需要在策略交易界面,在左侧策略文件栏中选择要进行计算运行的策略,点击 右侧圆形按钮
选择 模拟,点击 三角形运行按钮
后策略会以实时行情进行运算,该模式下调用的下单函数(passorder) 不会产生实际交易,仅会记录交易信号在下方的 策略信号
栏中。
实盘交易模式
实盘交易模式需要在策略交易界面,在左侧策略文件栏中选择要进行计算运行的策略,点击 右侧圆形按钮
选择 实盘,点击 三角形运行按钮
后策略会以实时行情进行运算,该模式下调用的下单函数(passorder) 会对账户实际下单,同时交易信号会记录在下方的 策略信号
栏中。
ContextInfo - 上下文对象
ContextInfo.start/ContextInfo.end - 回测开始/结束时间
注意:
-
此属性只在回测模式生效。
-
仅在
init
中设置生效,应在init
中设置完毕。 -
缺省值为策略编辑界面设定的回测时间范围。
-
回测起止时间也可在策略编辑器的回测参数面板中设置,若两处同时设置,则以代码中设置的值为准。
-
结束时间小于等于开始时间则计算范围为空。
释义:可通过此属性设定回测开始/结束的时间,以 %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
