- Советники: RSI_Test
- Советник тестируется, но не оптимизируется
- Проблем с оптимизацией советника
Всем привет! Не работает оптимизация советника... На тестере и в демо счете работает, а вот при оптимизации не открывает сделки.. Помогите пжта)) Код МТ4
Возможно в коде советника стоит запрет на оптимизацию.
int MQLInfoInteger( int property_id // идентификатор свойства ); |
Параметры
property_id
[in] Идентификатор свойства. Может быть одним из значений перечисления ENUM_MQL_INFO_INTEGER.
MQL_OPTIMIZATION | Признак работы запущенной программы в процессе оптимизации | bool |
Возможно в коде советника стоит запрет на оптимизацию.
Параметры
property_id
[in] Идентификатор свойства. Может быть одним из значений перечисления ENUM_MQL_INFO_INTEGER.
MQL_OPTIMIZATION | Признак работы запущенной программы в процессе оптимизации | bool |
Нет, забыл добавить я работаю с графическими объектами! Не могу пока решить проблему, кстати советник в формате mql4)
У меня подозрение, что выполнение некоторых команд, в том числе и графических, тестер отключает для ускорения работы, если не включен режим визуализации. Однако трудно себе представить оптимизацию в режиме визуализации.
Конечно же это не правильно. Нужно попросить у разработчиков чек-бокс типа "Отключить обработку графики". При этом пользователь будет знать, что тестирование и оптимизация будет происходить гораздо медленнее. Но если пользоателю нужна обработка графики, то он включит.
Вот это "ObjectGetInteger(0,name,OBJPROP_STATE)" при оптимизации всегда выдаст false, аналогично и с выделенными объектами
Я решал так
//=============================================================================================== //-------------------------------- Возвращает состояние кнопки ---------------------------------+ //=============================================================================================== bool ButtonCheck(string name) { if(IsOptimization()) { return(true);} if(ObjectGetInteger(0,name,OBJPROP_STATE)) { return(true);} return(false); }
Вот это "ObjectGetInteger(0,name,OBJPROP_STATE)" при оптимизации всегда выдаст false, аналогично и с выделенными объектами
Я решал так
Внимательно читаем документацию https://docs.mql4.com/ru/runtime/testing#objects
Графические объекты при тестировании
При визуализации тестирования эксперт взаимодействует с реальным графиком. При обычном тестировании без визуализации эксперт работает с "виртуальным" графиком, который не отрисовывается, в этом случае возможны нюансы. При работе тестера в режиме оптимизации работа с графическими объектами не поддерживается.
- docs.mql4.com
Внимательно читаем документацию 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);
а можно как-то заменить их? К примеру
Как то очень давно писал виртуальные функции трендовых линий, специально для тестера, но к сожалению комп полетел и потерял исходники. на память не помню. Но думаю что в инете что-то есть на эту тему.
Как то очень давно писал виртуальные функции трендовых линий, специально для тестера, но к сожалению комп полетел и потерял исходники. на память не помню. Но думаю что в инете что-то есть на эту тему.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования