请观看如何免费下载自动交易
请在Facebook上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
脚本

OHLC Reality Check - at what stop distance does your backtest start lying? - MetaTrader 5脚本

Petr Kostal
Petr Kostal
Petr Kostal — algorithmic trading developer, Czech Republic.
I trade on live accounts myself, so I build EAs the way I'd want to run them.
What I build:
• Expert Advisors and indicators for MetaTrader 4 and 5 (MQL4 / MQL5)
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
19
等级:
(2)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

基于1分钟OHLC数据的每次回测都暗含一个默认假设:在单根K线内部,多头K线的价格走势为“开盘价—最低价—最高价—收盘价”,而空头K线则为“开盘价—最高价—最低价—收盘价”。它必须做出某种假设,因为OHLC数据并不记录价格走势轨迹,而真实的 tick 数据则会记录。

该假设仅在平仓K线同时触及止损位和目标位时才重要。此时,订单的执行结果将决定交易是盈利还是亏损,而回测程序只能进行推测。本脚本用于衡量这种推测出错的频率。

工作原理如下: 在每个M1K蜡烛上, 它会开启一笔虚拟的区间交易——一个止损位设在蜡烛开盘价上方,另一个设在下方,两者距离相等——并向前推进,直到价格触及其中一个止损位。如果收盘蜡烛仅触及其中一个止损位,则无需做出任何判断。 如果价格触及了两个价位,脚本会将测试器的假设与该分钟内实际的报价走势进行对比。

结果完全取决于区间宽度,因此脚本会扫描多种距离并绘制曲线。在XAUUSD上,经过30天和27 844笔虚拟交易:

  • 20点止损——62.6%的交易存在争议,23.84% 以错误方向收盘
  • 50点止损——30.1%的交易出现争议,8.25% 结果错误
  • 100点止损——8.9%的交易出现争议,1.66%的 交易结果错误
  • 200点止损——1.5%的交易出现争议,0.18%的 交易方向错误
  • 500点止损——0.1%的交易出现争议,0.00%的 交易结果错误
  • 1000点止损——无争议,无错误

“有争议”指平仓K线同时触及这两个价位,因此订单决定了交易结果。“错误”指在所有已结算交易中,测试者假设的订单方向与实际价格变动方向相反的比例——即获利被记为亏损,或反之。

因此,客观的结论并非“OHLC总是欺骗人”或“OHLC完全没问题”。这种“欺骗”存在阈值,且该阈值因股票代码而异,与其争论不休,不如花11秒时间亲自测算。

输入参数。 InpSymbol(为空即表示图表符号)、InpDays、InpBrackets(要扫描的止损距离,单位为点)、InpHorizonBars(交易持仓时间超过该值即被视为未解决), InpStepBars(每 N 根K线开仓一次,在运行缓慢的机器上可适当增加该值)以及 InpWriteCSV,该参数会列出所有处理错误的交易,包括其入场时间、平仓K线、模型预测结果与实际 tick 数据,以便您查看具体案例。

该程序仅读取历史数据。它绝不会下单,也绝不会触及持仓头寸。

需要该交易品种的真实 tick 历史数据——请先在“交易品种”窗口中下载,否则无法判定有争议的交易。

根据止损距离,OHLC回测中交易比例的评分方向相反——XAUUSD,30天

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/77063

CGoldSymbol - find the broker's gold and size the position correctly on it CGoldSymbol - find the broker's gold and size the position correctly on it

无论经纪商如何称呼该黄金符号,本程序都能识别;从交易终端读取合约规格,而非自行推测;并将账户货币计价的风险转换为该经纪商对应的正确手数。

Trade Excursion Report: MFE and MAE of every closed trade, to CSV Trade Excursion Report: MFE and MAE of every closed trade, to CSV

针对每笔已平仓交易导出一行CSV数据,其中包含对账单上未显示的数值:该交易曾达到的最高未实现盈利(MFE)、曾承受过的最大未实现亏损(MAE)、实际保留的MFE金额、交易跨过的K线数量以及持仓时长。 该指标的计算方式与“交易波动”指标相同,但将结果写入文件而非绘制在图表上,因为针对这些数据值得探讨的问题,是图表无法解答的:获利率是否取决于入场时间? 我提前平仓的交易是否恰恰是持仓时间最长的?周一的亏损交易达到的MAE是否与周五不同?只要生成CSV文件,这些问题只需通过一个数据透视表即可解答。 输出格式为分号分隔且带标题行,位于 MQL5\Files 目录下;可在任何电子表格软件中打开。测量限制:波动值取自所选时间周期的K线高低点;单根K线内的价格路径无法确定。“K线”列报告了每笔交易的分辨率,汇总统计时将单根K线交易单独计数,而非将其平均计算在内。

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

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

离散 离散

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