- Запрос истории баров на mql4
- РАЗРАБОТЧИКАМ!!! Ограничение тестера периодом тестирование в 4 года. Что делать?
- Проблема в преобразовании типов и не только...
Обратите внимание на динамику файла подкачки. Возможно, алгоритм жрет память, и замедление происходит из-за перекидывания из ОЗУ на винт.
Или просто, как уже написали, сам алгоритм неоптимален. Сложно сказать - все хорошие алгоритмы счастливы одинаковы, а кривые - мучаются по-своему...)))
Я понимаю, что в оптимизации алгоритма есть значительный резерв для увеличения скорости. Но все же не понятно как алгоритм может влиять на замедление расчетов на каждой последующей итерации (комбинации параметров). Вот отрывок лога для расчета со 162-й итерации (по прошествии значительного времени с момента запуска скрипта):
16:00:19 gran_ver GBPUSD,M15: p1,p2,p3,p4,p5= 6,13,1,1,1
16:04:26 gran_ver GBPUSD,M15: p1,p2,p3,p4,p5= 6,14,1,1,1
16:07:33 gran_ver GBPUSD,M15: p1,p2,p3,p4,p5= 6,15,1,1,1
видно, что расчет одной итерации занимает около 4-х минут. А вот лог для "прогона" по тем же параметрам, но с 1-й итерации (с начала запуска скрипта):
19:54:17 gran_ver GBPUSD,M15: p1,p2,p3,p4,p5= 6,13,1,1,1
19:54:25 gran_ver GBPUSD,M15: p1,p2,p3,p4,p5= 6,14,1,1,1
19:54:36 gran_ver GBPUSD,M15: p1,p2,p3,p4,p5= 6,15,1,1,1 расчет одной итерации занимает секунды. Почему такая разница?
Хотя, скорее всего, дело в "забивании" ОЗУ..
Вот простой советник, запустите его на тестирование на минутках и увидите как будет падать скорость .
//+------------------------------------------------------------------+ //| ConsumptionEA.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| https://forum.mql4.com/cn/17189 | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "https://forum.mql4.com/ru/22936" //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- double sum=0; for (int i=0;i<Bars;i++) sum+=Close[i]; sum/=Bars; //---- return(0); } //+------------------------------------------------------------------+
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования