Build 1970 Тестер - страница 2

 
Vladimir Karputov:

Отличный выход! Действительно если сначала нажать на паузу - то последующий клик по Стоп нажимается и ничего не зависает. Спасибо!

Да? А у меня в любом случае виснет. Спасает только закрытие тестера.

 
А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.
 
Alexey Volchanskiy:
А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.

Профайлер.

 
Alexey Volchanskiy:
А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.

А у меня совершенно наоборот. Правда не мультиплатформенный, а отдельные по одной стратегии.

Алексей, вот если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.

 
Alexey Viktorov:

если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.

Не упадет. MT4x32 примерно в паритете с MT5x64

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Virtual

fxsaber, 2018.11.16 01:33

22 млн тиков в режиме по всем тикам. Терминалы запускались с RAMDrive. Только одно ядро задействовано. Выбран лучший результат из Оптимизации в 5 прогонов. Кросс-перерасчет выключен. Время указано в секундах. Hedge, Forex, MaxCustom. Исходный баланс 10 млн. В MT5 кастомный символ (свопы и комиссия отсутствуют).

AmountMT5-TesterMT4-TesterMT5-Virtual (x64) MT4-Virtual (x32) (w/o strict)
002.88603.43203.86906.209
108.23711.24704.08706.677
214.36713.08904.19708.159
317.58117.03604.49310.998
420.90522.21504.69610.296
523.11925.61604.94513.558
2061.21568.85807.59735.568


С увеличением одновременно открытых позиций (Amount) заметно растет время выполнения. MT4 проигрывает MT5 по скорости в режиме Тестера

С увеличение количества ордеров, скорости обоих Тестеров катастрофически падают.

 
fxsaber:

С увеличение количества ордеров, скорости обоих Тестеров катастрофически падают.

Недоработки библиотеки
 
Alexey Viktorov:

А у меня совершенно наоборот. Правда не мультиплатформенный, а отдельные по одной стратегии.

Алексей, вот если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.

Я не очень понял, почему он должен упасть. Для работы с ордерами я использую либу от fxsaber, индюки я не использую. Точнее, они переработаны и портирован в код скальпера, снаружи ничего не нужно. Ну, а остальные различия, как обычно, через #ifdef __MQL5__ и т.д.

 
Sergey Chalyshev:
Недоработки библиотеки

Короткий исходник для заполнения таблицы, что выше

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Virtual

fxsaber, 2018.11.16 01:33

Тестовый советник

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

input int inRange = 0;          // 1 .. 5
input int inAmount = 1;         // Amount of positions
input int iTakeProfit  = 10000; // TakeProfit in pips

uint iStartTime;

void OnInit()
{  
  iStartTime = GetTickCount(); // Начинается замер специально в OnInit, а не снаружи
  
  const double Price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
  
  for (int i = 0; i < inAmount; i++)
    OrderSend(_Symbol, OP_BUY, 0.1, Price, 100, 0, Price + iTakeProfit * _Point);
}

double OnTester()
{
  return(GetTickCount() - iStartTime);
}


ЗЫ После замеров понял, что в MT4 не использовал strict-режим. Перезамерять не стал


Как видите, код выполнялся только в OnInit один раз. Других On-функций во время прогона тиков Тестером нет. Но даже если бы и было, MT4Orders не уступила бы. А местами даже превзошла бы по скорости "чистый MQL5".

 

Билд 1972.

2019.01.17 06:35:50.707 MetaTrader 5 x64 build 1972 started (MetaQuotes Software Corp.)
2019.01.17 06:35:50.708 Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i3-3120M  @ 2.50GHz, Memory: 4289 / 8077 Mb, Disk: 88 / 415 Gb, GMT+2
2019.01.17 06:35:50.708 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

Запуск из Редактора тестирования на исторических данных. В коде поставлены точки останова:

точки останова

После остановки на любой из точек останова выполняю ОДНО из перечисленных действий:

  • если кликнуть на Стоп в Редакторе - Редактор зависает примерно на минуту
  • если перейти в окно визуального тестирования и кликнуть Стоп - всё работает отлично: тестирование останавливается мгновенно.


Получается при остановке на точке останова нельзя кликать на Стоп в Редакторе - так как будет зависание на минуту.

Файлы:
 
Причина обращения: