请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
11
等级:
(3)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

在为回测结果感到高兴之前,了解自己每笔交易的实际成本是有益的。 交易终端会记录历史数据中每个K线的点差,但这一信息通常会被忽略:在回测工具中显示的是“当前”点差,而决策却往往基于一条漂亮的净值曲线。

脚本的功能

SpreadAudit 脚本会遍历指定天数的 M1 历史数据,提取每个K线中的点差字段,并计算:

  • 点差的中位数、第90百分位数和第99百分位数——以价格单位和点数为单位;
  • 以 ATR(H1) 百分比表示的相同数值,以便在不同交易品种间进行比较;
  • 每日各小时的平均点差和最大点差——将结果导出为 CSV 文件并保存至 MQL5\Files 文件夹中。

输入参数

  • InpDays- 分析M1历史数据的天数(1..3650,默认60);
  • InpAtrPeriod- 用于标准化处理的H1周期ATR(默认值为24);
  • InpSaveCSV- 是否将每小时数据表保存为 CSV 文件。

输出示例

=== SpreadAudit: XAUUSD | 实际波动范围 2026.05.30 ... 2026.07.29 | 86397 根K线(0根不含点差) === 中位数K线点差:0.37(37.0 pts) 第90百分位K线点差: 0.42 (42.0 pts) 第99百分位K线点差:0.45 (45.0 pts) H1 ATR(24) = 6.41 -> 中位数点差 = 0.058 ATR,第90百分位 = 0.066 ATR

SpreadAudit:XAUUSD的每小时点差

附图显示的是XAUUSD过去60天的小时图。平均点差维持在0.40左右,但在日间结转时段,点差峰值会飙升至近1.80,即比平时高出四倍多。 针对这一时间窗口设计的交易策略,其实际成交价格与账户平均价格相去甚远。

这在实践中有什么用

举个简单的例子。假设你在M5图表上的交易模式平均每笔交易产生0.28个价格单位——这在统计学上具有显著性,效果是真实存在的。 如果该交易品种的点差中位数为0.37,那么该系统在真实账户中就会亏损,尽管在没有交易成本的历史数据中表现得非常出色。 “没有效果”与“有效果,但成本更高”之间的区别至关重要:在前者情况下,该交易策略会被舍弃;在后者情况下,则需要寻找点位或交易结构,使收益能够覆盖点差。

小时图显示了点差在哪些时段会扩大。 通常是在隔夜持仓时段以及交易时段开盘后的最初几分钟——如果您的策略正是在这些时段入场,建议设置点差过滤器,且最好以ATR的分数为单位而非点数来设定:当波动性模式发生变化时,绝对阈值会失效。

重要说明

MetaTrader在K线柱中保存的是该K线柱的最低点差。这意味着,所有计算出的数值都是您实际支付成本的乐观下限。 逻辑很简单:如果连成本的下限都足以让策略崩盘,那就没什么好讨论的了。

如果您的经纪商在 M1 历史数据中“点差”字段未填充(部分经纪商该处显示为零),脚本会如实报告这一情况,并不会基于空数据进行统计计算。

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/75450

Clock (Spread) Clock (Spread)

该指标的功能 Clock (Spread).mq5 是一款 MetaTrader 5 图表指标,会在图表角落显示一个小型文本标签,内容包括: 倒计时至当前K线收盘(格式为 HH:MM:SS 或 MM:SS,具体取决于时间周期) 当前点差(卖价 − 买价,单位为点),显示在计时器旁边的括号内。 更新日志: 2.20 版: - 点差颜色现根据方向动态变化(绿色 = 上升,红色 = 下降) - 添加了可配置的点差颜色输入参数

Inside Bar Inside Bar

自动检测“内部K线”形态、绘制投影矩形并接收实时警报——这一切都集成于一个功能强大的指标中。 波段交易者和全额保证金交易者

加速震荡(AC) 加速震荡(AC)

加速/减速技术指标(AC)用于衡量当前驱动力的加速和减速。

离散 离散

离散技术指标由价格和交易量的变化决定。