Обсуждение статьи "Какие проверки должен пройти торговый робот перед публикацией в Маркете" - страница 14

 

Всем привет.

Что за ошибка такая непонятная:

test on EURUSD,H1 strategy tester report not found

И как с ней бороться? Какой ещё отчёт?

 
Denis Bogdanov:

Всем привет.

Что за ошибка такая непонятная:

test on EURUSD,H1 strategy tester report not found

И как с ней бороться? Какой ещё отчёт?

привет, возможно где-то возникает бесконечный цикл, поэтому тест не доходит до момента формирования отчета

 

у меня сегодня вообще странности, пишет , что завершено с ошибками, а какими не ясно. Пусто.

 
Alexandr Gavrilin:

у меня сегодня вообще странности, пишет , что завершено с ошибками, а какими не ясно. Пусто.

Приколы автовалидатора, запустите повторно
 
Alexandr Gavrilin:

у меня сегодня вообще странности, пишет , что завершено с ошибками, а какими не ясно. Пусто.

Вроде починили. 
 
Vladislav Andruschenko:
Вроде починили. 

точно починили, прошел проверку робот.

 
Покупка происходит по цене Ask     Продажа происходит по цене Bid
TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL
Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL
Ask - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

Так в статье написано. Но, разве не так надо -

  Покупка происходит по цене Ask     Продажа происходит по цене Bid
TakeProfit - Ask >= SYMBOL_TRADE_STOPS_LEVEL
Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL

Bid - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

А так же в коде функции -


// ...

switch(type)
     {
      //--- операция покупка
      case  ORDER_TYPE_BUY:
        {
         //--- проверим StopLoss
         SL_check=(Bid-SL>stops_level*_Point);
         if(!SL_check)
            PrintFormat("For order %s StopLoss=%.5f must be less than %.5f"+
                        " (Bid=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d пунктов)",
                        EnumToString(type),SL,Bid-stops_level*_Point,Bid,stops_level);
         //--- проверим TakeProfit
         TP_check=(TP-Ask>stops_level*_Point);
         if(!TP_check)
            PrintFormat("For order %s TakeProfit=%.5f must be greater than %.5f"+
                        " (Bid=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d пунктов)",
                        EnumToString(type),TP,Bid+stops_level*_Point,Bid,stops_level);
         //--- вернем результат проверки
         return(SL_check&&TP_check);
        }
      //--- операция продажа
      case  ORDER_TYPE_SELL:
        {
         //--- проверим StopLoss
         SL_check=(SL-Ask>stops_level*_Point);
         if(!SL_check)
            PrintFormat("For order %s StopLoss=%.5f must be greater than %.5f "+
                        " (Ask=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d пунктов)",
                        EnumToString(type),SL,Ask+stops_level*_Point,Ask,stops_level);
         //--- проверим TakeProfit
         TP_check=(Bid-TP>stops_level*_Point);
         if(!TP_check)
            PrintFormat("For order %s TakeProfit=%.5f must be less than %.5f "+
                        " (Ask=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d пунктов)",
                        EnumToString(type),TP,Ask-stops_level*_Point,Ask,stops_level);
         //--- вернем результат проверки
         return(TP_check&&SL_check);
        }
      break;
     }

// ...

???

Если делать как в статье мы просто теряем пункты из спреда в прибыли! Мб я что то не понимаю?

 
Oleg Arsentev #:
Покупка происходит по цене Ask     Продажа происходит по цене Bid
TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL
Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL
Ask - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

Так в статье написано. Но, разве не так надо -

  Покупка происходит по цене Ask     Продажа происходит по цене Bid
TakeProfit - Ask >= SYMBOL_TRADE_STOPS_LEVEL
Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL

Bid - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

А так же в коде функции -


???

Если делать как в статье мы просто теряем пункты из спреда в прибыли! Мб я что то не понимаю?

Прибыль теряем, конечно. Но ближе ставить стопы нельзя:

Поэтому уровни TakeProfit и StopLoss необходимо сравнивать с текущей ценой, по которой можно совершить операцию противоположного направления:

  • Покупка совершается по цене Ask — уровни TakeProfit и StopLoss нужно сравнивать с текущей ценой продажи Bid.
  • Продажа совершается по цене Bid — уровни TakeProfit и StopLoss нужно сравнивать с текущей ценой покупки Ask.
[Удален]  
Да *** проверку не проходят,половина роботов на маркете не рабочие
 
dryun777 #:
Да *** проверку не проходят,половина роботов на маркете не рабочие

Это статья для тех, кто ПИШЕТ советников. Вам нужны статьи из цикла "Как тестировать".