首页 / 交易学院 / 用 Tick 数据做订单流指标(含文件持久化)
用 Tick 数据做订单流指标(含文件持久化)
📈

用 Tick 数据做订单流指标(含文件持久化)

把逐笔报价画成线或等量烛形,并写文件重启可恢复

MQL5 编程 难度 · 进阶 2026-07-15 10 分钟阅读
#MQL5#Tick#订单流#等量K线#文件持久化

Tick 是经纪商实时推送的买卖报价(Bid/Ask),是价格变动的最小信息单元。把 Tick 画成线或等量烛形,能看到时间周期 K 线看不到的微结构。

一、Tick 是什么,为什么要画它

常规 K 线按时间聚合,Tick 指标按逐笔报价呈现,能反映成交节奏与买卖价微动,是订单流分析的入口。

二、两种 Tick 指标

三、指标缓冲区与属性

四、文件持久化与重启恢复

每次报价把 时间 Bid Ask 写进 MQL5/Files 的 txt;OnCalculate 首次从文件读历史,之后追加新 tick;只保留最近 rates_total/2 行,旧数据半量淘汰防溢出。

✦ 共享读 + 高效拼串
用 FileOpen(FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ) 共享读,配 StringConcatenate 拼串比字符串加法高效;重启用历史恢复图表。

五、等量烛形的 OHLC 逻辑

按 floor(i / ticks_in_candle) 分组,同组更新收盘/高/低,新组定开盘;颜色由收闭对比决定;可切 Bid 或 Ask 作应用价。

常见问题

数据来源是逐笔报价而非周期收盘;等量烛形按 tick 数聚合,能呈现成交节奏,不受固定时间框架限制。
终端重启后内存缓冲清空,写文件能在重开时读回历史,图表不断片;也方便别的程序读取 tick 流。
文用 16,但取决于品种流动性;流动性高的品种可加大,让每根烛代表更有意义的成交量级。
避免频繁创建临时字符串,减少 GC 压力,在每 tick 都执行的写文件逻辑里更稳。
防止长期运行内存/文件无限增长导致性能下降,rates_total/2 是兼顾能恢复与不爆内存的折中。