Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сотни статей помогут создать торгового робота. Заходи и изучай!
Aleksey
2438
Aleksey 2012.08.04 11:04 
Собственно сабж. Логично, ведь, их обработать, сделка-то произошла.
Валерий
1433
Валерий 2012.08.04 15:15  
pronych:
Собственно сабж. Логично, ведь, их обработать, сделка-то произошла.
Потому, что они выходят за пределы интервала тестирования. Раньше, точно также, OnTrade не обрабатывала эти события.
Aleksey
2438
Aleksey 2012.08.04 15:58  
Valmars:
Потому, что они выходят за пределы интервала тестирования. Раньше, точно также, OnTrade не обрабатывала эти события.

А как же лучше поступить? В OnTester эмулировать?

Догадываюсь, разработчики уже в курсе  этого, не побоюсь этого слова -  'бага'

Может включить эти события в интервал  тестирования? Этот вопрос разработчикам

Валерий
1433
Валерий 2012.08.04 22:06  
pronych:

А как же лучше поступить? В OnTester эмулировать?

Догадываюсь, разработчики уже в курсе  этого, не побоюсь этого слова -  'бага'

Может включить эти события в интервал  тестирования? Этот вопрос разработчикам

Тоже столкнулся с этим при подсчёте суммарной прибыли по инструментам при тестировании мультивалютников. Для учёта сделок 'end of test' и 'so' и однозначного соответствия результатов отчёту тестера, учитываю их в Deinit-e:

   if(MQL5InfoInteger(MQL5_TESTING))
     { 
       if(HistorySelect(0,TimeTradeServer()))   // Поправка для 'end of test'
        {
         int DeelsTotal=HistoryDealsTotal();
         for(int i=0;i<SymbolsNumber;i++)
           {
            ulong ticket=HistoryDealGetTicket(DeelsTotal-1-i);
            string comment=HistoryDealGetString(ticket,DEAL_COMMENT);
            if(comment!="end of test"&&StringSubstr(comment,0,3)!="so ")
               break;
            for(int j=0;j<SymbolsNumber;j++)
              {
               if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=m_expert[j].Name())
                continue;
               m_Profit[j]=m_Profit[j]+HistoryDealGetDouble(ticket,DEAL_PROFIT)+  // Добавим профит закрытой позиции для "end of test" и "so"
                           HistoryDealGetDouble(ticket,DEAL_SWAP)+HistoryDealGetDouble(ticket,DEAL_COMMISSION);
              }
           }
        }
     } 
Aleksey
2438
Aleksey 2012.08.05 08:34  
Придется и мне опять огород городить
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий