在MetaTrader 5策略测试器中分析测试结果并进行优化 - 页 5

 
Anatoli Kazharski:

现在正在做的事情也是如此。在测试过程中加载符号。

或者在测试开始前,立即定义并附加到列表中的测试的选定符号,如果这样的列表会存在的话。另外,如果确定缓存中的符号不再需要,那么就不要在测试中使用它们。

在任何情况下,我都不能有一个明确的答案,而只能在假设和建议的层面上进行选择。

好的。

专家不做交易。但是,由于似乎要检查进入市场的可能性,在计算保证金要求时,除了主要的货币对之外,还要再加载一个货币对。两对数据被缓存起来,这样在下一次测试时就不会在拆包和准备数据上浪费时间。

专家顾问开始进行交易。第二个缺失的对子被加载以计算利润。这些数据被再次缓存起来,这样在下一次测试时就不会在解压和准备数据方面浪费时间。

就个人而言,你不喜欢把时间浪费在 "不必要的 "对历史的应用上。其他人都非常不喜欢在重新打包和准备数据上损失更多的时间。

好吧,你来回答。只要没有要求,为什么不应用 "多余的 "工具标记?"好问题"(ts)而到了这个时刻,即请求的时刻,你必须建立历史,(而且要有刻度,因为有人也可以请求)。时间上的损失将比我们逐步建立历史(就像我们现在所做的那样)还要大。

不能保证使用某个特定故事的专家不会在其他通行证上使用这个故事。99%的概率,随后的通行证上的故事将与之前的通行证上使用的故事相同

 
我同意Slava的观点--这个例子是球形的。
 
Slava:

好的。

专家顾问不做交易。但由于它似乎要检查进入市场的可能性,在计算保证金要求时,在主要货币对之外再加载一个货币对。两对数据被缓存起来,这样在下一次测试时就不会在拆包和准备数据上浪费时间。

专家顾问开始进行交易。第二个缺失的对子被加载以计算利润。这些数据被再次缓存起来,这样在下一次测试时就不会在解压和准备数据方面浪费时间。

就个人而言,你不喜欢把时间浪费在 "不必要的 "对历史的应用上。其他人都非常不喜欢在重新打包和准备数据上损失更多的时间。

好吧,你来回答。只要没有要求,为什么不应用 "多余的 "工具标记?"好问题"(ts)而到了这个时刻,即请求的时刻,你必须建立历史,(而且要有刻度,因为有人也可以请求)。时间上的损失将比我们逐步建立历史(就像我们现在所做的那样)还要大。

你不能可靠地预测,使用某些历史的专家顾问不会在其他通行证上使用相同的历史。后续测试中使用的历史记录有99%的机会与之前的测试中使用的历史记录相同

我并不是真的坚持。你本可以马上开始澄清的。如果你确定你的选择是最好的,那么你就可以节省时间,而不必浪费时间去讨论它。但如果可以的话,我需要澄清一下,因为我不确定我是否被理解了。

这些都是关于优化过程的澄清吗?

如果只是关于单一的测试过程呢?为什么只有欧元兑美元被测试,而英镑兑美元和澳元兑美元却在之前的测试中出现刻度?

我根本不知道在什么情况下我们可能需要其他符号(GBPUSD和AUDUSD)的刻度,而只需要一个符号(EURUSD)。需要一些具体的例子和数字。

如果我以前一次测试过20个符号怎么办?如果我只需要测试一个符号,为什么我需要所有这些符号的刻度线?前一个单项测试中使用的角色越多,只测试一个角色的时间就越长。 我毕竟可以从一个完全不同的角色组转到角色测试。而且我现在根本不需要以前的角色组的数据。

而我们谈论的是什么样的时间(解包/准备)? 解包和准备数据需要多长时间?而在多符号测试之后,单次测试的时间会增加多少?

我现在就进行测试,给你看结果。我需要对一个具体的例子进行澄清。

 
Anatoli Kazharski:
丢失了 "重置缓存 "复选框。
 

1个符号:EURUSD

2018.01.29 19:30:33.875 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:00:27.266 (including ticks preprocessing 0:00:01.282).
2018.01.29 19:30:33.875 Core 1  EURUSD,M5: total time from login to stop testing 0:00:27.344 (including 0:00:00.078 for history data synchronization)
2018.01.29 19:30:33.875 Core 1  837 Mb memory used including 8 Mb of history data, 512 Mb of tick data

//---

5个符号:EURUSD,GBPUSD,USDJPY,AUDUSD,USDCAD

2018.01.29 19:59:39.750 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:11:52.156.
2018.01.29 19:59:39.750 Core 1  EURUSD,M5: total time from login to stop testing 0:11:52.234 (including 0:00:00.078 for history data synchronization)
2018.01.29 19:59:39.750 Core 1  130637614 total ticks for all symbols
2018.01.29 19:59:39.750 Core 1  AUDUSD: passed to tester 20717720 ticks
2018.01.29 19:59:39.750 Core 1  EURUSD: passed to tester 26169180 ticks
2018.01.29 19:59:39.750 Core 1  GBPUSD: passed to tester 27742039 ticks
2018.01.29 19:59:39.750 Core 1  USDCAD: passed to tester 23409978 ticks
2018.01.29 19:59:39.750 Core 1  USDJPY: passed to tester 32598697 ticks
2018.01.29 19:59:39.750 Core 1  1574 Mb memory used including 44 Mb of history data, 1088 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

现在我们需要在一个单一的符号上再次测试。

1个符号:EURUSD

2018.01.29 20:04:25.737 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:01:34.203.
2018.01.29 20:04:25.737 Core 1  EURUSD,M5: total time from login to stop testing 0:01:34.281 (including 0:00:00.078 for history data synchronization)
2018.01.29 20:04:25.737 Core 1  130637614 total ticks for all symbols
2018.01.29 20:04:25.737 Core 1  AUDUSD: passed to tester 20717720 ticks
2018.01.29 20:04:25.737 Core 1  EURUSD: passed to tester 26169180 ticks
2018.01.29 20:04:25.737 Core 1  GBPUSD: passed to tester 27742039 ticks
2018.01.29 20:04:25.737 Core 1  USDCAD: passed to tester 23409978 ticks
2018.01.29 20:04:25.737 Core 1  USDJPY: passed to tester 32598697 ticks
2018.01.29 20:04:25.737 Core 1  1288 Mb memory used including 44 Mb of history data, 1024 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

在这种情况下,我们为什么需要这些符号的刻度?由于这种额外的负载,一个符号的测试时间增加了3 倍多。时间范围是一年。如果我需要在5年内进行测试怎么办?

 
fxsaber:
丢失了 "重置缓存 "复选框。
也许根本就可以不使用该复选框。它只是需要被发现。
 
fxsaber:
丢失了 "重置缓存 "复选框。

我们在四人中有这样一个(类似)的勾当。我们删除了它。因为大部分 用户有误解,有很多问题。

 
Slava:

我们在四人中有这样一个(类似)的勾当。我们删除了它。因为在大部分用户中存在误解,而且有很多问题。

总是有终端.ini:)
 

接下来将发表三个帖子。

  1. 策略 测试器中的一个EA测试能持续多长时间?
  2. 在电脑上优化参数需要多长时间?
  3. 在云中优化参数需要多长时间?

我将使用我自己的专家顾问进行测试。你可以进行同样的系列测试并提出你的结果。在我的例子中,我在一年中得到了几万个交易。


1.在策略测试器中,专家顾问的一次测试是多长时间?

让我们以仅开放价格 模式的测试结果为例。M5 时间框架(5分钟的数据)。账户类型对冲。时间范围为一年(2017.01.01-2018.01. 01)。

符号:欧元兑美元

EURUSD,M5: 281877 ticks, 74300 bars generated. Test passed in 0:00:01.453.
282883 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
466 Mb memory used including 8 Mb of history data, 64 Mb of tick data

根据上面的测试结果,我们可以看到,对一个符号的测试持续1-1.5秒,为期一年。

现在让我们尝试测试一个没有账户货币的货币对。例如,如果你的账户是美元,那么为了测试,让我们采取一个没有美元的符号。例如,EURCHF。原因是为了正确计算保证金要求和利润,在这种情况下,测试将使用符号EURUSD和USDCHF,而这又增加了测试时间。

符号:EURCHF

EURCHF,M5: 281063 ticks, 74273 bars generated. Test passed in 0:00:01.860.
846826 total ticks for all symbols
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
USDCHF: passed to tester 281475 ticks
467 Mb memory used including 8 Mb of history data, 64 Mb of tick data

我们可以看到,交叉率的测试时间大约是两倍。在这种情况下,测试需要1.5-2秒。现在让我们试着在几个符号上测试一下。

符号:EURUSD,GBPUSD,USDJPY

EURUSD,M5: 282881 ticks, 74300 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:00:07.172.
EURUSD,M5: total time from login to stop testing 0:00:07.203 (including 0:00:00.031 for history data synchronization)
853054 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
GBPUSD: passed to tester 285067 ticks
USDJPY: passed to tester 285104 ticks
628 Mb memory used including 26 Mb of history data, 64 Mb of tick data

符号:EURCHF,AUDCAD,AUDNZD

EURCHF,M5: 282465 ticks, 74273 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:00:12.109.
EURCHF,M5: total time from login to stop testing 0:00:12.140 (including 0:00:00.031 for history data synchronization)
2264405 total ticks for all symbols
AUDCAD: passed to tester 284995 ticks
AUDNZD: passed to tester 285398 ticks
AUDUSD: passed to tester 282069 ticks
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
NZDUSD: passed to tester 282153 ticks
USDCAD: passed to tester 282964 ticks
USDCHF: passed to tester 281475 ticks
854 Mb memory used including 26 Mb of history data, 192 Mb of tick data

当测试多个符号时,测试速度会减慢。不幸的是,现在不可能以不同的方式进行,而不失去测试的准确性。但是,如前所述,在接下来的更新中,终端的开发者将扩大MQL5的功能,增加执行多符号测试的能力,使其速度更快。

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

2.在我的电脑上优化参数需要多长时间?

作为一个例子,让我们尝试在Alpari 经纪商的数据上优化不同符号的参数,在仅开放价格 模式下。M5 时间框架(5分钟数据)。对冲 账户类型。时间范围为一年(2017.01.01-2018.01. 01)。

符号:欧元兑美元

result cache used 7953 times
genetic optimization finished on pass 15616 (of 504330836375520000)
optimization done in 28 minutes 56 seconds
local 7663 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

符号:EURCHF

result cache used 2507 times
genetic optimization finished on pass 8704 (of 504330836375520000)
optimization done in 32 minutes 50 seconds
local 6197 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

符号:EURUSD,GBPUSD,USDJPY

result cache used 9892 times
genetic optimization finished on pass 18176 (of 504330836375520000)
optimization done in 2 hours 15 minutes 03 seconds
local 8284 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

符号:EURCHF,AUDCAD,AUDNZD

result cache used 7281 times
genetic optimization finished on pass 13312 (of 504330836375520000)
optimization done in 3 hours 13 minutes 37 seconds
local 6031 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

在不久的将来,MetaTrader 5 终端将被更新,测试和优化的速度将大大加快。也许这样就有可能在 "所有刻度"模式下进行优化。此外,使用MQL5云计算网络服务 将变得更加有利可图,因为优化的速度会提高。

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
原因: