Скачать MetaTrader 5

Советник не оптимизируется!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Aibek Mugiynov
1908
Aibek Mugiynov  
Всем привет! Не работает оптимизация советника... На тестере и в демо счете работает, а вот при оптимизации не открывает сделки.. Помогите пжта)) Код МТ4
Yuri Evseenkov
2306
Yuri Evseenkov  
Aibek Mugiynov:
Всем привет! Не работает оптимизация советника... На тестере и в демо счете работает, а вот при оптимизации не открывает сделки.. Помогите пжта)) Код МТ4

Возможно в коде советника стоит запрет на оптимизацию.



int  MQLInfoInteger( 
   int  property_id      // идентификатор свойства 
   );

Параметры 

property_id

[in]  Идентификатор свойства. Может быть одним из значений перечисления ENUM_MQL_INFO_INTEGER.

MQL_OPTIMIZATION

Признак работы запущенной программы в процессе оптимизации

bool

Aibek Mugiynov
1908
Aibek Mugiynov  
Yuri Evseenkov:

Возможно в коде советника стоит запрет на оптимизацию.


Параметры 

property_id

[in]  Идентификатор свойства. Может быть одним из значений перечисления ENUM_MQL_INFO_INTEGER.

MQL_OPTIMIZATION

Признак работы запущенной программы в процессе оптимизации

bool

Нет, забыл добавить я работаю с графическими объектами! Не могу пока решить проблему, кстати советник в формате mql4) 
Renat Akhtyamov
5230
Renat Akhtyamov  
Aibek Mugiynov:
Нет, забыл добавить я работаю с графическими объектами! Не могу пока решить проблему, кстати советник в формате mql4) 

У меня подозрение, что выполнение некоторых команд, в том числе и графических, тестер отключает для ускорения работы, если не включен режим визуализации. Однако трудно себе представить оптимизацию в режиме визуализации.

Конечно же это не правильно. Нужно попросить у разработчиков чек-бокс типа "Отключить обработку графики". При этом пользователь будет знать, что тестирование и оптимизация будет происходить гораздо медленнее. Но если пользоателю нужна обработка графики, то он включит.

Vitaly Muzichenko
3919
Vitaly Muzichenko  

Вот это "ObjectGetInteger(0,name,OBJPROP_STATE)" при оптимизации всегда выдаст false, аналогично и с выделенными объектами

Я решал так

//===============================================================================================
//-------------------------------- Возвращает состояние кнопки ---------------------------------+
//===============================================================================================
bool ButtonCheck(string name) {
 if(IsOptimization()) { return(true);}
 if(ObjectGetInteger(0,name,OBJPROP_STATE)) { return(true);}
  return(false);
 }
Aibek Mugiynov
1908
Aibek Mugiynov  
Vitaly Muzichenko:

Вот это "ObjectGetInteger(0,name,OBJPROP_STATE)" при оптимизации всегда выдаст false, аналогично и с выделенными объектами

Я решал так

Че-то я не понял вас... У меня советник работает на трендовых линия... везде работают, кроме оптимизации((
Sergey Gritsay
6558
Sergey Gritsay  

Внимательно читаем документацию https://docs.mql4.com/ru/runtime/testing#objects

 

Графические объекты при тестировании

При визуализации тестирования эксперт взаимодействует с реальным графиком. При обычном тестировании без визуализации эксперт работает с "виртуальным" графиком, который не отрисовывается, в этом случае возможны нюансы. При работе тестера в режиме оптимизации работа с графическими объектами не поддерживается.

 

Особенности работы программ в тестере стратегий - Документация на MQL4
  • docs.mql4.com
Особенности работы программ в тестере стратегий - Документация на MQL4
Aibek Mugiynov
1908
Aibek Mugiynov  
Sergey Gritsay:

Внимательно читаем документацию https://docs.mql4.com/ru/runtime/testing#objects

 

Графические объекты при тестировании

При визуализации тестирования эксперт взаимодействует с реальным графиком. При обычном тестировании без визуализации эксперт работает с "виртуальным" графиком, который не отрисовывается, в этом случае возможны нюансы. При работе тестера в режиме оптимизации работа с графическими объектами не поддерживается.

 

а можно как-то заменить их? К примеру 
  IndicatorBuffers(2);   
   
   SetIndexBuffer(0,upperband);
   SetIndexBuffer(1,lowerband);
  
   
   SetIndexLabel(0,"Upper band");
   SetIndexLabel(1,"Lower band");
   
   SetIndexStyle(0,DRAW_NONE; 
   SetIndexStyle(1,DRAW_NONE);
  
Renat Akhtyamov
5230
Renat Akhtyamov  
Aibek Mugiynov:
а можно как-то заменить их? К примеру 
Вопрос хороший и плавно уходит от темы ветки в режим разработки пользовательского индикатора. Ответ - можно. Здесь два варианта - разработать самому или заказать.
Sergey Gritsay
6558
Sergey Gritsay  

Как то очень давно писал виртуальные функции трендовых линий, специально для тестера, но к сожалению комп полетел и потерял исходники. на память не помню. Но думаю что в инете что-то есть на эту тему.

Aibek Mugiynov
1908
Aibek Mugiynov  
Sergey Gritsay:

Как то очень давно писал виртуальные функции трендовых линий, специально для тестера, но к сожалению комп полетел и потерял исходники. на память не помню. Но думаю что в инете что-то есть на эту тему.

Спасибо! Буду искать)
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий