оптимировать оптимизацию тестера

 

Привет всем !

я оптимирую свой советник на 5 последних лет, и слившись, за пару первых месяцев торговли, оптимизация не переходит на следующие параметры, а так и продолжает что-то считать до достижения этих 5 лет и только потом меняет параметры.

Можно как нибудь из OnTick() или OnTester() подействовать на то, что бы тестер переходил на новые параметры ?

Спасибо

 
 if(MQLInfoInteger(MQL_OPTIMIZATION))
{
   if(Эквити Или Баланс<5.0)
     {
      ExpertRemove();
     }
}


 

Можно конечно, сделайте остановку торговли если убыток превысил допустимый

OnTick()

{

double Bal=AccountInfoDouble(ACCOUNT_BALANCE);
if (Bal<1000)return;

И после указанного убытка тест быстро окончится

 

Спасибо за быстрые ответы !

структура у меня такая

double Lot=0.02;

void OnTick()
{

if (Lot<0.01)return;


Lot=...вычисление лота..;

Buy....
Sell....

}

разницы нет что с

if (Lot<0.01)return;

что без.

Может я делаю что-то не правильно, но и так:

double Lot=0.02;

void OnTick()
{


if(MQLInfoInteger(MQL_OPTIMIZATION))
{
   if (Lot<0.01)
     {
      ExpertRemove();
     }
}

Lot=...вычисление лота..;

Buy....
Sell....

}

без изменений.

Странно

 
L0rdy:


Мой код работает только в режиме оптимизации

А вы в каком режиме проверяли?

 

... в режиме оптимизации конечно, с птичкой у "оптимизации" и в настойках перед параметрами которые хочу оптимировать.

Советник работает, я только закончил оптимизацию на двух недельный срок, что длилось часов 10.

А вот один проход 5и лет длится у меня 9минут 35 секунд, еслиб стало быстрее я бы заметил, так как в начале на первых проходах советник сливается за 15 секунд.


Может в настройках MT4 надо что-то выставить ? или декларировать ?

 
L0rdy:

я оптимирую свой советник на 5 последних лет, и слившись, за пару первых месяцев торговли, оптимизация не переходит на следующие параметры, а так и продолжает что-то считать до достижения этих 5 лет и только потом меняет параметры.

Есть решение: https://www.mql5.com/ru/forum/227400

Ускорить оптимизацию по всем тикам в 100 раз
Ускорить оптимизацию по всем тикам в 100 раз
  • 2018.02.11
  • www.mql5.com
Тестирование советников по всем тикам занимает очень много времени (до завершения теста 5000 часов), тем более если при тестировании ведётся поиск...
 
FXwin:

Есть решение: https://www.mql5.com/ru/forum/227400

Спасибо конечно, но это тоже самое что уже было предложено выше.


Это мне тоже известно и я этим пользуюсь, давно.

https://c.mql5.com/3/172/2__4.PNG?0.24069903421977812


это решение которое я искал(Спасибо Евгению), но оно почему-то не работает у меня

if(MQLInfoInteger(MQL_OPTIMIZATION))
{
   if (Lot<0.01)
     {
      ExpertRemove();
     }
}
 
L0rdy:

Спасибо конечно, но это тоже самое что уже было предложено выше.


Это мне тоже известно и я этим пользуюсь, давно.

https://c.mql5.com/3/172/2__4.PNG?0.24069903421977812


это решение которое я искал(Спасибо Евгению), но оно почему-то не работает у меня

Не работает у Вас это условие, явно:

 if (Lot<0.01)

Попробуйте:

 if (Lot<=0.01)
 
L0rdy:

Привет всем !

я оптимирую свой советник на 5 последних лет, и слившись, за пару первых месяцев торговли, оптимизация не переходит на следующие параметры, а так и продолжает что-то считать до достижения этих 5 лет и только потом меняет параметры.

Можно как нибудь из OnTick() или OnTester() подействовать на то, что бы тестер переходил на новые параметры ?

Спасибо

Надо использовать ExpertRemove по условию, что депозит или эквити меньше ...
 

Lot я расчитываю с учётом баланса и StopOut 100%


я тут с Print() поработал и заметил, что при работе советник не запрыгивает в if(..) потому что Lot не успевает стать меньше 0,01 как советник вырубается сам c StopOut либо с Error 134.

StopOut это ещё понятно.

А вот что тестер при балансе 170 EUR не может открыть сделку в 0,01 лот и вылетает с Error 134 мне не понятно.

Причина обращения: