А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.
Alexey Volchanskiy: А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.
Alexey Volchanskiy: А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.
А у меня совершенно наоборот. Правда не мультиплатформенный, а отдельные по одной стратегии.
Алексей, вот если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.
22 млн тиков в режиме по всем тикам. Терминалы запускались с RAMDrive. Только одно ядро задействовано. Выбран лучший результат из Оптимизации в 5 прогонов. Кросс-перерасчет выключен. Время указано в секундах. Hedge, Forex, MaxCustom. Исходный баланс 10 млн. В MT5 кастомный символ (свопы и комиссия отсутствуют).
Amount
MT5-Tester
MT4-Tester
MT5-Virtual (x64)
MT4-Virtual (x32) (w/o strict)
0
02.886
03.432
03.869
06.209
1
08.237
11.247
04.087
06.677
2
14.367
13.089
04.197
08.159
3
17.581
17.036
04.493
10.998
4
20.905
22.215
04.696
10.296
5
23.119
25.616
04.945
13.558
20
61.215
68.858
07.597
35.568
С увеличением одновременно открытых позиций (Amount) заметно растет время выполнения. MT4 проигрывает MT5 по скорости в режиме Тестера
С увеличение количества ордеров, скорости обоих Тестеров катастрофически падают.
А у меня совершенно наоборот. Правда не мультиплатформенный, а отдельные по одной стратегии.
Алексей, вот если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.
Я не очень понял, почему он должен упасть. Для работы с ордерами я использую либу от fxsaber, индюки я не использую. Точнее, они переработаны и портирован в код скальпера, снаружи ничего не нужно. Ну, а остальные различия, как обычно, через #ifdef __MQL5__ и т.д.
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006inputint inRange = 0; // 1 .. 5inputint inAmount = 1; // Amount of positionsinputint iTakeProfit = 10000; // TakeProfit in pipsuint iStartTime;
voidOnInit()
{
iStartTime = GetTickCount(); // Начинается замер специально в OnInit, а не снаружиconstdouble Price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
for (int i = 0; i < inAmount; i++)
OrderSend(_Symbol, OP_BUY, 0.1, Price, 100, 0, Price + iTakeProfit * _Point);
}
doubleOnTester()
{
return(GetTickCount() - iStartTime);
}
ЗЫ После замеров понял, что в MT4 не использовал strict-режим. Перезамерять не стал
Как видите, код выполнялся только в OnInit один раз. Других On-функций во время прогона тиков Тестером нет. Но даже если бы и было, MT4Orders не уступила бы. А местами даже превзошла бы по скорости "чистый MQL5".
Отличный выход! Действительно если сначала нажать на паузу - то последующий клик по Стоп нажимается и ничего не зависает. Спасибо!
Да? А у меня в любом случае виснет. Спасает только закрытие тестера.
А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.
Профайлер.
А вообще есть способы как-то ускорить тестирование в визуальном режиме? У меня скальпер на МТ4 в визуалке тестируется с вполне нормальной скоростью, тот же код в МТ5 (скальпер мультиплатформенный) еле-еле ползет, хотя в невизуальном все ОК.
А у меня совершенно наоборот. Правда не мультиплатформенный, а отдельные по одной стратегии.
Алексей, вот если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.
если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.
Не упадет. MT4x32 примерно в паритете с MT5x64
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2018.11.16 01:33
22 млн тиков в режиме по всем тикам. Терминалы запускались с RAMDrive. Только одно ядро задействовано. Выбран лучший результат из Оптимизации в 5 прогонов. Кросс-перерасчет выключен. Время указано в секундах. Hedge, Forex, MaxCustom. Исходный баланс 10 млн. В MT5 кастомный символ (свопы и комиссия отсутствуют).
С увеличением одновременно открытых позиций (Amount) заметно растет время выполнения. MT4 проигрывает MT5 по скорости в режиме Тестера
С увеличение количества ордеров, скорости обоих Тестеров катастрофически падают.
С увеличение количества ордеров, скорости обоих Тестеров катастрофически падают.
А у меня совершенно наоборот. Правда не мультиплатформенный, а отдельные по одной стратегии.
Алексей, вот если написать библиотеку для работы кода mql5 в тестере mql4 мне кажется, тестер МТ4 вообще упадёт.
Я не очень понял, почему он должен упасть. Для работы с ордерами я использую либу от fxsaber, индюки я не использую. Точнее, они переработаны и портирован в код скальпера, снаружи ничего не нужно. Ну, а остальные различия, как обычно, через #ifdef __MQL5__ и т.д.
Недоработки библиотеки
Короткий исходник для заполнения таблицы, что выше
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2018.11.16 01:33
Тестовый советник
ЗЫ После замеров понял, что в MT4 не использовал strict-режим. Перезамерять не стал
Как видите, код выполнялся только в OnInit один раз. Других On-функций во время прогона тиков Тестером нет. Но даже если бы и было, MT4Orders не уступила бы. А местами даже превзошла бы по скорости "чистый MQL5".
Билд 1972.
Запуск из Редактора тестирования на исторических данных. В коде поставлены точки останова:
После остановки на любой из точек останова выполняю ОДНО из перечисленных действий:
Получается при остановке на точке останова нельзя кликать на Стоп в Редакторе - так как будет зависание на минуту.