MT5 图表的计算方式:公式、参数和数据要求
直接答案
MT5 图表通过将原始价格数据转换为选定时间框架下的图表点序列(通常是K线),再根据需要应用指标计算(当你查看指标而非仅价格图表时),从而实现“计算”。核心概念很简单:图表需要(1)时间线(时间框架),(2)将多个价格更新映射为单个K线值的规则,以及(3)用于指标的可选转换规则。
机制:图表中的“计算”含义
价格图表通常显示蜡烛图或OHLC K线。对于每根K线,MT5 必须从该K线时间区间内的基础数据中确定四个值:
- 开盘价:区间内的第一个可用价格
- 最高价:区间内的最高价格
- 最低价:区间内的最低价格
- 收盘价:区间内的最后一个可用价格
这些值是从落在K线起止时间内的按时间排序的价格观测值计算得出的。具体观测值集合取决于数据源以及该数据源记录价格的方式(例如逐笔报价或已聚合的K线)。如果你更改时间框架(例如从1分钟改为5分钟),K线边界就会变化,即使市场相同,OHLC 聚合结果也会不同。
关键参数和假设
要解释或重现该计算过程,你需要以下参数和假设:
- 时间框架:K线长度(例如 N 秒/分钟)。这定义了时间的分段方式。
- 价格类型:图表使用的是买价、卖价、最新价还是其他价格流(许多系统允许选择;所选价格流会影响OHLC值)。
- 数据粒度:系统是处理逐笔报价,还是接收已形成的K线。
- 交易时段/时区对齐:哪个时钟和截止点定义每根K线的“开始”。对齐错误可能导致价格落入不同的K线中。
一个简单且可验证的OHLC K线形成模型是:
- 将时间划分为长度为 T 的连续区间。
- 对于第 k 根K线,考虑所有时间 t 落在第 k 个区间内的价格观测值 p(t)。
- 计算:
- 开盘价 = 区间内最早时间 t 的 p
- 收盘价 = 区间内最晚时间 t 的 p
- 最高价 = 区间内 p 的最大值
- 最低价 = 区间内 p 的最小值
如果某个区间内没有观测值(在数据稀疏时可能发生),系统必须使用回退规则(例如沿用最后一个已知值或留空该K线)。不同的提供商或历史数据源可能在这一行为上有所不同。
可验证的证据或示例
你可以使用“相同数据、相同规则”的方法验证核心OHLC计算。对于选定的时间框架 T:
- 选择一个特定的K线窗口(例如一个5分钟区间)。
- 收集该精确时间窗口内发生的价格观测值,使用与图表相同的价格类型和经纪商/平台数据源。
- 使用上述最大值/最小值/首个/最后一个规则计算OHLC。
- 将计算出的OHLC与该K线在图表上显示的蜡烛进行比较。
此测试有效,因为只要输入流和K线定义固定,OHLC形成就是确定性的。不确定性来自你是否真正匹配了相同的输入流和时间戳。即使是微小差异——例如使用买价而非最新价——也会改变OHLC。
如果你查看的是指标,那么“计算”还包括将指标公式应用于过去K线的滚动窗口。在这种情况下,更改以下任何一项都会改变结果:
- 指标参数(窗口长度、平滑方法)
- K线值(其本身已依赖于时间框架和价格类型)
- 包含的历史数据(缺失K线或不同数据源的历史)
局限性和风险(可能出现的问题)
多种失败模式会影响对“计算”出的图表值的解读:
- 数据可用性和缺口:如果某个时间框架区间内缺少观测值,OHLC可能不完整或由回退规则生成,这使得复现更困难。
- 提供商和数据源差异:两个数据源在时间戳、报价密度以及价格是否插值或截断方面可能存在差异。历史重建可能不匹配。
- K线对齐和时区:K线边界取决于时间的定义方式。一小时的偏移可能完全改变哪些报价属于哪根K线。
- 成本和执行现实:OHLC K线反映的是数据流中的观测价格,不一定代表你交易时可执行的价格。滑点、点差和执行模型与图表计算是分开的。
- 历史关系无法验证未来结果:即使某个指标公式与过去图表行为匹配,也不能保证未来会有类似表现。
验证与后续问题
可靠地独立验证MT5图表计算的方法是首先关注其确定性部分:时间框架、K线OHLC聚合规则(每个区间内的首个/最后一个/最大/最小值),以及图表使用的确切价格流。一旦这些匹配,你就可以通过将公开的公式应用于相同的历史K线序列来验证指标。
如果你愿意,请告诉我你所说的“MT5 图表”具体指哪个图表元素(仅指价格蜡烛图,还是某个特定指标),以及你使用的时间框架和价格类型。然后我可以为你重新说明该特定元素所需的输入和精确计算步骤。