如何用量化QMT软件获取行情数据?全推数据是什么?

QMT 里面获取行情数据的函数常用的有:

ContextInfo.get_market_data_ex- 获取行情数据 ,

ContextInfo.get_full_tick - 获取全推数据,

ContextInfo.subscribe_quote - 订阅行情数据。

这三个函数都是用来获取行情数据的,但是根据运行机制的不一样,选择的函数也有所区别。

QMT有三种运行机制,分别是分别是逐K线运行(handlebar),订阅推送(subscribe)、定时任务(run_time)。

逐K线驱动:handlebar

handlebar是主图历史 k 线+盘中订阅推送。运行开始时,所选周期历史 k 线从左向右每根触发一次handlebar函数调用。盘中时,主图品种每个新分笔数据到达,触发一次handlebar函数调用。

事件驱动 :subscribe 订阅推送

盘中订阅指定品种的分笔数据,新分笔到达时,触发指定的回调函数。

定时任务 :run_time 定时运行

指定固定的时间间隔,持续触发指定的回调函数。

ContextInfo.get_market_data_ex- 获取行情数据,可以获取实时行情和历史数据

ContextInfo.get_market_data_ex( fields=[], stock_code=[], period='follow', start_time='', end_time='', count=-1, dividend_type='follow', fill_data=True, subscribe=True)

Field 数据类型为list,可以选择的数据如下:

stock_list数据类型也是list,储存的是合约代码列表。

period数据类型为str,可以选择:

"tick";"1m":1分钟线;"5m":5分钟线;"15m":15分钟线;"30m":30分钟线;"1h"小时线、"1d":日线;"1w":周线;"1mon":月线;"1q":季线;"1hy":半年线;"1y":年线;

'l2quote':Level2行情快照;'l2quoteaux':Level2行情快照补充;'l2order':Level2逐笔委托;'l2transaction':Level2逐笔成交;'l2transactioncount':Level2大单统计;'l2orderqueue':Level2委买委卖队列

选择L2的周期是需要开通L2权限的,这个不是指手机端或者通达信端的L2行情,而是量化软件的L2行情,数据收费QMT是两三千一年。

start_time 数据类型str,数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天

end_time数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天

Count 表示数据个数,数据类型为int

dividend_type除权方式,数据类型str,可选值为:'none':不复权'front':前复权'back':后复权'front_ratio': 等比前复权'back_ratio': 等比后复权

fill_data是否填充数据,数据类型为布尔值。

subscribe订阅数据开关,默认为True,设置为False时不做数据订阅,只读取本地已有数据。

比如获取股票的开盘价和收盘价就可以这么写代码

运行出来的数据结果如下,但是可以看到14号的开盘价和收盘价是为0的,这个是因为本地没有补充数据,所以读取不出来,在数据管理里面补充一下数据即可。

数据补充完成之后,再运行就可以读取到正确的数据了,在做量化交易的时候,程序编写是一方面,另一方面核对数据的准确性也是非常重要的。

ContextInfo.get_full_tick - 获取全推数据,不能用于回测 只能取最新的分笔,不能取历史分笔

ContextInfo.get_full_tick(stock_code=[])

ContextInfo.subscribe_quote - 订阅行情数据。

ContextInfo.subscribe_quote( stock_code, period='follow', dividend_type='follow', result_type='', callback=None)

这两个函数大家可以根据自己的需要去研究编写策略

今天的分享到这里结束了,感谢阅读~想要开通量化交易的朋友欢迎交流

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值