- Пожелания к MQL5
- Вопрос о времени...
- Пожелание...
Ответ правильный, приз в студию!
Всем участникам спасибо и досвидания!
Я делаю таким образом:
int BeginTest; // Время начала теста //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ void init() { if (IsTesting()) BeginTest=GetTickCount(); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ void deinit() { if (IsTesting()) Print("Продолжительность прогона ", NormalizeDouble((GetTickCount()-BeginTest)/1000.0, 1), " сек."); }
Не буду уж новую ветку заводить - т.к. тоже есть по тестированию вопрос. Вот у меня эксперт есть в двух версиях. Одна "тестовая". А вторая рабочая. - ТАК МНЕ СКАЗАЛИ.
Вторая версия "рабочая" - не желает оптимизироваться в тестере. При этом все внешние признаки текущей оптимизации имеются. Полоска зеленая идет - прогоны отмечены цифрами. Нр результаты пустые. Хотя заведомо я знаю - что должны быть ПОЛОЖИТЕЛЬНЫЕ результаты . Но при одиночных прогонах (без оптимизирования) работает.
Я не могу усмотреть в коде - где стоит запрет на оптимизацию. Да и возможно ли такое? Может кто, - знает в чем тут дело?
Я не могу усмотреть в коде - где стоит запрет на оптимизацию. Да и возможно ли такое? Может кто, - знает в чем тут дело?
Можно запретить оптимизацию влепив в начале эксперта например такое,
if(IsOptimization()) return(0);
Да вроде нет такого. Эксперт устроен непривычно и странно для меня. Там в функции int start() нет привычных операций. А есть только команды на выполнение различных функций - на открытие позиций; на трейлинг стоп; на комментарии на графике и даже на муз. сопровождение некоторых операций.
//------------------------------------------------------- int start() { if(Bars<NumberBars) return(0); if(DayOfWeek()==0 || DayOfWeek()==6) return(0); if(FirstTickExpert) InitStateOrders(); ControlStateOrders(); if(BuyTicket<0 || SellTicket<0) { SetMainOrders(); return(0); } if(BuyType==OP_BUY) if(BuyOrderTrailing()) return(0); if(SellType==OP_SELL) if(SellOrderTrailing()) return(0); if(BuyTicket==0 && SellTicket==0 && NumberCycle>0) SetNewOrders(); return(0); }И лишь в одном только месте есть нечто похожее на запрет:
for(int t=WaitTime; t>0; t--) { if(IsStopped()) return; Comment("До начала установки ордеров осталось ",t," сек."); Sleep(1000); } PlaySound(ControlLevelsSound);
Все нормально - при выполнении условий , вызываются функции. Функции должны быть либо тут же, либо вызываться через инклюдники.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования