Вот здесь https://www.mql5.com/ru/articles/239 подзаголовок "Обработка событий в тестере". Указано, что обработка событий в тестере работает. Так ведь нет! В лайве работают и клики и движения, а в тесте никак.
Основы тестирования в MetaTrader 5
- 2011.03.28
- MetaQuotes Software Corp.
- www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
События "OnChartEvent" не отслеживаются в тестере, а вот нажатие кнопки отслеживается и работает:
//=========================================== MQL4 ============================================== void OnTick() { // создадим кнопку ButtonCreate("Button",50,50,30,30,0,"Жми","","Arial",8,clrBlack,C'236,233,216',clrGray,false); // и проверим нажатие Comment( ObjectGetInteger(0,"Button",OBJPROP_STATE)?"Нажата":"Отжата" ); } //=============================================================================================== //--------------------------------------- Создает кнопку ---------------------------------------+ //=============================================================================================== void ButtonCreate(string nm="Button",int xd=0,int yd=0,int width=50,int height=18,int cr=0, string text="Button",string tooltip="Button",string font="Arial",int font_size=9, color cl=clrBlack,color back_cl=C'236,233,216',color border_cl=clrNONE,bool state=false) { if(ObjectFind(0,nm)==-1) { ObjectCreate(0,nm,OBJ_BUTTON,0,0,0); ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,xd); ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,yd); ObjectSetInteger(0,nm,OBJPROP_XSIZE,width); ObjectSetInteger(0,nm,OBJPROP_YSIZE,height); ObjectSetInteger(0,nm,OBJPROP_CORNER,cr); ObjectSetString(0,nm,OBJPROP_TEXT,text); ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltip); ObjectSetString(0,nm,OBJPROP_FONT,font); ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,font_size); ObjectSetInteger(0,nm,OBJPROP_COLOR,cl); ObjectSetInteger(0,nm,OBJPROP_BGCOLOR,back_cl); ObjectSetInteger(0,nm,OBJPROP_BORDER_COLOR,border_cl); ObjectSetInteger(0,nm,OBJPROP_BACK,false); ObjectSetInteger(0,nm,OBJPROP_STATE,state); ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,nm,OBJPROP_SELECTED,false); ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false); } }
Mql4 работает. Mql5 не работает, я об этом
Это очень странно. Столько написали про новый метатрейдер. Думаешь, ну конфетка. Обязательно надо сделать советник, и все его купят. А интерфейс в тесте не работает. Ну и как купят?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В mql4 в режиме тестирования можно отследить состояние объекта-кнопки OBJPROP_STATE. Если нажата, выполнить действие, отжата - не выполнить. В mql5 это не доступно? Пробую и так и сяк, визуально не видно, что кнопка нажимается в режиме теста. Время в тесте тикает и даже сделку открывает.