Tick 数据获取get_full_tick 函数2.1 函数用途与适用场景在交易时段内策略需要实时获取当前最新的行情快照、根据盘口数据即时触发交易逻辑时可调用get_full_tick函数获取指定标的的最新 Tick 数据。2.2 基础调用示例def handlebar(C): # 获取单标的最新Tick数据 tick C.get_full_tick([159919.SZ]) print(tick)输出示例{159919.SZ: { timetag: 20240620 14:13:30, lastPrice: 3.662, open: 3.68, high: 3.69, low: 3.658, lastClose: 3.681 }}2.3 触发方式的灵活选择handlebar事件在盘中默认每 3 秒驱动一次。如果 3 秒的频率不符合策略需求还可以通过另外两种方式按需获取 Tick 数据定时任务触发通过run_time设置固定时间间隔获取 Tick订阅推送触发通过subscribe_quote订阅行情满足条件时回调获取 Tick三种获取逻辑的框架示意# 方式1handlebar 逐K线驱动 def init(C): # 初始化变量 C.bought_list [] def handlebar(C): tick C.get_full_tick([159919.SZ]) # 执行交易逻辑# 方式2run_time 定时任务触发 def init(C): # 启动定时任务 C.run_time(tick_task, nSecond, 09:30:00, 11:30:00, 5) def tick_task(C): tick C.get_full_tick([159919.SZ]) # 执行交易逻辑# 方式3subscribe 订阅推送触发 def callback_func(data): # 行情推送回调中获取数据 print(data) def init(C): C.subscribe_quote( [159919.SZ], periodtick, callbackcallback_func )三、历史 Tick 数据获取get_market_data_ex 函数3.1 前置说明Tick 数据体量极大单只标的单日 Tick 数据约 9 万条做历史回测与研究需预留足够的存储空间。在获取历史 Tick 数据前需要先通过接口下载对应标的的历史 Tick 数据。3.2 完整调用步骤第一步下载历史 Tick 数据def init(C): # 下载指定标的、指定周期的历史数据 C.download_history_data(159919.SZ, tick, 20240619, 20240619)第二步读取历史 Tick 数据def handlebar(C): if not C.is_last_bar(): return # 获取指定日期的历史Tick数据 ticks C.get_market_data_ex( [], [159919.SZ], tick, start_time20240619, end_time20240619, count-1 ) print(ticks)3.3 核心字段说明get_market_data_ex返回的 Tick 数据包含完整字段高频使用的核心字段如下表字段名数据类型含义说明timeint时间戳毫秒级stimestring时间戳字符串形式lastPricefloat最新价openfloat开盘价highfloat最高价lowfloat最低价lastClosefloat前收盘价amountfloat成交总额volumeint成交总量手askPricelist[float]多档委卖价askVollist[int]多档委卖量bidPricelist[float]多档委买价bidVollist[int]多档委买量transactionNumint成交笔数四、Tick 数据的应用场景Tick 数据是盘口类策略的核心数据支撑常见应用方向包括盘口挂单量分析、买卖压力判断高频短差策略、算法交易拆单精准的回测复盘与策略验证成交明细统计与资金流向分析总结QMT 平台提供了完整的 Tick 数据获取能力实时与历史两类接口调用方式简洁字段覆盖全面完全可以满足普通量化交易者的策略开发与回测需求。对于做盘口类、中高频策略的交易者来说熟练掌握 Tick 数据的获取与处理是必备技能。风险提示本文仅为迅投 QMT 平台行情数据接口的技术学习分享不构成任何投资建议、交易指导或策略推荐。证券市场存在固有投资风险量化交易可能面临策略失效、系统故障、行情数据延迟、交易滑点、接口变更等多重潜在风险历史数据表现不代表未来收益。所有实盘操作请务必经过充分的回测验证与模拟交易测试结合自身风险承受能力谨慎决策。文中代码与数据示例仅作功能演示不保证实盘环境下的准确性、完整性与可用性。
QMT 量化交易入门:Tick 数据详解与完整调用指南
Tick 数据获取get_full_tick 函数2.1 函数用途与适用场景在交易时段内策略需要实时获取当前最新的行情快照、根据盘口数据即时触发交易逻辑时可调用get_full_tick函数获取指定标的的最新 Tick 数据。2.2 基础调用示例def handlebar(C): # 获取单标的最新Tick数据 tick C.get_full_tick([159919.SZ]) print(tick)输出示例{159919.SZ: { timetag: 20240620 14:13:30, lastPrice: 3.662, open: 3.68, high: 3.69, low: 3.658, lastClose: 3.681 }}2.3 触发方式的灵活选择handlebar事件在盘中默认每 3 秒驱动一次。如果 3 秒的频率不符合策略需求还可以通过另外两种方式按需获取 Tick 数据定时任务触发通过run_time设置固定时间间隔获取 Tick订阅推送触发通过subscribe_quote订阅行情满足条件时回调获取 Tick三种获取逻辑的框架示意# 方式1handlebar 逐K线驱动 def init(C): # 初始化变量 C.bought_list [] def handlebar(C): tick C.get_full_tick([159919.SZ]) # 执行交易逻辑# 方式2run_time 定时任务触发 def init(C): # 启动定时任务 C.run_time(tick_task, nSecond, 09:30:00, 11:30:00, 5) def tick_task(C): tick C.get_full_tick([159919.SZ]) # 执行交易逻辑# 方式3subscribe 订阅推送触发 def callback_func(data): # 行情推送回调中获取数据 print(data) def init(C): C.subscribe_quote( [159919.SZ], periodtick, callbackcallback_func )三、历史 Tick 数据获取get_market_data_ex 函数3.1 前置说明Tick 数据体量极大单只标的单日 Tick 数据约 9 万条做历史回测与研究需预留足够的存储空间。在获取历史 Tick 数据前需要先通过接口下载对应标的的历史 Tick 数据。3.2 完整调用步骤第一步下载历史 Tick 数据def init(C): # 下载指定标的、指定周期的历史数据 C.download_history_data(159919.SZ, tick, 20240619, 20240619)第二步读取历史 Tick 数据def handlebar(C): if not C.is_last_bar(): return # 获取指定日期的历史Tick数据 ticks C.get_market_data_ex( [], [159919.SZ], tick, start_time20240619, end_time20240619, count-1 ) print(ticks)3.3 核心字段说明get_market_data_ex返回的 Tick 数据包含完整字段高频使用的核心字段如下表字段名数据类型含义说明timeint时间戳毫秒级stimestring时间戳字符串形式lastPricefloat最新价openfloat开盘价highfloat最高价lowfloat最低价lastClosefloat前收盘价amountfloat成交总额volumeint成交总量手askPricelist[float]多档委卖价askVollist[int]多档委卖量bidPricelist[float]多档委买价bidVollist[int]多档委买量transactionNumint成交笔数四、Tick 数据的应用场景Tick 数据是盘口类策略的核心数据支撑常见应用方向包括盘口挂单量分析、买卖压力判断高频短差策略、算法交易拆单精准的回测复盘与策略验证成交明细统计与资金流向分析总结QMT 平台提供了完整的 Tick 数据获取能力实时与历史两类接口调用方式简洁字段覆盖全面完全可以满足普通量化交易者的策略开发与回测需求。对于做盘口类、中高频策略的交易者来说熟练掌握 Tick 数据的获取与处理是必备技能。风险提示本文仅为迅投 QMT 平台行情数据接口的技术学习分享不构成任何投资建议、交易指导或策略推荐。证券市场存在固有投资风险量化交易可能面临策略失效、系统故障、行情数据延迟、交易滑点、接口变更等多重潜在风险历史数据表现不代表未来收益。所有实盘操作请务必经过充分的回测验证与模拟交易测试结合自身风险承受能力谨慎决策。文中代码与数据示例仅作功能演示不保证实盘环境下的准确性、完整性与可用性。