final balance 10007242.00 EUR
TESTER_Censored,M1: 6589567 ticks, 60353 bars generated. Environment synchronized in0:00:00.031. Test passed in0:00:05.101 (including ticks preprocessing 0:00:00.874).
TESTER_Censored,M1: total time from login to stop testing 0:00:05.132 (including 0:00:00.031for history data synchronization)
476 Mb memory used including 27 Mb of history data, 192 Mb of tick data
变为
final balance 10007246.00 EUR
FILTER_Censored,M1: 402622 ticks, 50887 bars generated. Environment synchronized in0:00:00.030. Test passed in0:00:00.516 (including ticks preprocessing 0:00:00.078).
FILTER_Censored,M1: total time from login to stop testing 0:00:00.546 (including 0:00:00.030for history data synchronization)
314 Mb memory used including 27 Mb of history data, 64 Mb of tick data
Баровая история создается с учетом минимальных потерь качества при переходе от режима тестирования "Каждый тик на основе реальных тиков" к "Только цены открытия" - ТС на лимитных ордерах;
两种模式比较:"All ticks "和 "OHLC M1"。
全部点差
final balance 10006150.00 EUR
TESTER4_Censored,M1: 6576734 ticks, 60353 bars generated. Test passed in 0:00:04.587 (including ticks preprocessing 0:00:00.343).
394 Mb memory used including 27 Mb of history data, 128 Mb of tick data
OHLC M1
final balance 10006119.00 EUR
TESTER_Censored,M1: 240366 ticks, 60353 bars generated. Test passed in 0:00:00.359 (including ticks preprocessing 0:00:00.031).
306 Mb memory used including 27 Mb of history data, 64 Mb of tick data
我们应该添加类似的内容:
否则,有时只需要属性,而不需要栏。
该类的 所有方法 都是公共的。因此,要只克隆属性,请调用 CloneProperties()。
库和使用示例已更新。
Пример
在交叉盘上运行回溯测试时,测试器不仅会调用主符号,还会调用辅助符号,以便将主符号的盈利货币转换为账户货币。在单次运行模式,尤其是优化模式下,提取辅助符号、生成其刻度点并使其与主符号同步会占用非常宝贵的计算资源(和时间)。
然而,这种精度几乎总是不必要的。因此,我想绕过 MetaTrader 5 测试程序的这一缺陷。在 MetaTrader 4 中,要做到这一点很容易--可以在测试器中直接更改账户货币。MetaTrader 5 却没有这样的选项。
演示脚本显示了绕过测试器这一限制的方法 - 删除不必要的计算。为此,创建了一个用于回溯测试的符号副本,但利润/保证金的货币被设置为等于账户货币。也就是说,无需重新转换交易结果。利润实际上是以点为单位计算的,这在某些情况下非常明显。
交易结果
通过这种方式,Tester/Optimiser 可以自由加速。
ZЫ 我在EURGBP 上进行了详细测量。 时间收益为 ~2 倍。交易完全匹配。确实是免费的!
下面的说明不仅涉及程序库。
如果需要更改自定义符号的某些属性,在某些情况下应在导入引号之前完成。
因此,为了保证结果的可靠性,我强烈建议先设置符号的所有属性,然后再导入。
例如,如果要设置SYMBOL_TRADE_TICK_VALUE 和 SYMBOL_TRADE_TICK_SIZE,应在导入刻度线/条形图之前完成。
在 MT5 测试仪中(例如外汇),限价订单通常会出现正滑点,从而导致自欺欺人的 情况(有时甚至会出现测试仪在真实点数上的砾石!)。
但有一种方法可以绕过测试器的这一功能。下面是详细的操作说明。
1.如果原始符号(开放图表)不是自定义的,或者账户是对冲的,则在符号图表上运行此脚本
您将看到以下图片
2.如果账户被对冲(终端窗口标题栏中出现对冲字样),转到任何净额结算账户(例如MetaQuotes-Demo)并重新加载终端。
在当前图表上运行此脚本
3.在测试器中选择收到的自定义符号
现在限价订单将不会滑动!
关于交易、自动交易系统和测试交易策略的论坛
错误、漏洞和问题
fxsaber, 2018.02.14 14:41 pm.
丑陋的错误不是终端,而是 MT5 平台在一些移动缓慢的符号上运行 MQ-Demo。例如,EURHUF。
脚本打开一个买入头寸,TP = Bid。也就是说,应立即平仓。但只有在下一个交易日才会检查 TP 是否符合接受条件!
在下一个交易时段之前,不会立即平仓。此外,如果下一个价位的 Bid < TP,则 TP 仍将不被接受。
这同样适用于限价订单(注释线)。在 Tester 中,情况也类似。
关于突出显示,应该说,因为在上一个帖子中有这样的内容
关于交易、自动交易系统和测试交易策略的论坛。
库:符号
fxsaber, 2018.04.06 09:21 pm.
2.如果账户已对冲(终端窗口标题栏中出现对冲字样),请转到任何净额对冲账户(如MetaQuotes-Demo)并重新加载终端。
并非每个人都会注意到,净额结算账户 交易所符号当前价格的限价订单将立即执行(并在测试器中),无需等待下一个刻度线。
请注意,重要的不仅是股票代码,还有净额结算账户。例如,您可以在对冲-MQ-Demo 中使用 MOEX 符号,但它的执行方式(和在测试器中的执行方式)与在同一净额结算-MQ-Demo 中的执行方式(和在测试器中的执行方式)不同。
这就是为什么在完全相同的 MOEX 符号上进行的回溯测试会因账户类型不同而不同的原因之一。
ZЫ 我在自言自语....
ZY 我在自言自语......
不,我只是没什么要补充的。
可惜的是,要实现正常触发命令,您需要与手鼓共舞。
遗憾的是,要实现正常的指令触发,您需要用手鼓跳舞。
我修改了指令,大大简化了舞蹈。例如,在下网时,只需单击启动脚本即可完成所有操作。
我对真实点数进行了简单过滤,在最轻的变量中,过滤掉了 90% 以上的信息。过滤器越强,反向测试结果就越粗糙。
但最弱的过滤器对结果和速度的影响也很有趣。
质量。
曾经是
变为
速度
曾经
曾经
结果
根据实际刻度,刻度数减少了 16 倍(最轻过滤器),优化速度提高了 14 倍,质量没有受到任何影响(此处未包括分析)。当然,只有以特定方式编写 TS 时才能做到这一点。特别是在没有条形分析的情况下。
之前的免费通用加速度 只提高了两倍。现在的也是免费的(质量不受影响),但通用性较差。然而,收益却超过了一个数量级。现在,我只用这种方法优化 TC。没有错。
SZY
同时,对这种实现方式进行简短检查(只有条形价差的计算方式不同)。
关于交易、自动交易系统和交易策略测试的论坛。
脚本: ThirdPartyTicks
Automated-Trading, 2018.03.16 09:35 pm.
Баровая история создается с учетом минимальных потерь качества при переходе от режима тестирования "Каждый тик на основе реальных тиков" к "Только цены открытия" - ТС на лимитных ордерах;
两种模式比较:"All ticks "和 "OHLC M1"。
全部点差
OHLC M1
回溯测试质量相同,第二个变体在单次运行中的性能要好 12 倍。
对于非程序员来说,是否需要将这些脚本写入 Expert Advisor 程序?
将优化速度提高 12 倍是非常诱人的。
通过开仓点进行优化时,会有这样的加速吗?
对于非程序员来说,这些脚本是否需要写入 EA 程序?
将优化速度提高 12 倍是非常诱人的。
在通过开放点进行优化时,会有这样的加速吗?
遗憾的是,很难解释这一过程的所有方面。这可能需要一篇文章。因此,我们不可能简明扼要地解释清楚。