Советники: ManualTradeOnStrategyTester - страница 2

 

Мило и идеально. Excel работает отлично.
НО через 2 дня приходит это спамерское сообщение

2016.08.16 16:19:08.052 2016.01.04 00:25:00 EA detected error: 1004 -- EA Aborted!!! Pls. close EA now and attend to your open entry/ies.

that block orders

HELP!


 
Andrasdudu:

Мило и идеально. Excel работает отлично.
НО через 2 дня приходит это спамерское сообщение

2016.08.16 16:19:08.052 2016.01.04 00:25:00 EA detected error: 1004 -- EA Aborted!!! Pls. close EA now and attend to your open entry/ies.

that block orders

HELP!


Ошибка, которую вы получили, возникла, когда советник получил командный приказ от вашей кнопки Excel... каким-то образом советник не смог выполнить приказ, должно было появиться сообщение "Order Not Sent":

//+------------------------------------+
//| Выполнить сделку |
//+------------------------------------+ 
bool ExecuteTrade(string Entry,double ThePrice,double lot) // Вход = покупка или продажа / возвращает true в случае успеха.
  {
   bool success;

   success=true;

   MqlTradeRequest mreq; // для отправки торгового запроса.
   MqlTradeResult mresu; // получить результат торговли.
   ZeroMemory(mreq); // Инициализируйте запрос на отправку торговых операций.

   Print("Order Initialized");
   mreq.action = TRADE_ACTION_DEAL;                                   // немедленное исполнение приказа
   if(Entry=="buy") mreq.price = NormalizeDouble(ThePrice,_Digits);   // должна быть последняя цена предложения
   if(Entry=="sell") mreq.price = NormalizeDouble(ThePrice,_Digits);  // должна быть последняя цена спроса
   mreq.symbol = _Symbol;                                             // валютная пара
   mreq.volume = lot;                                                 // количество лотов для торговли
   mreq.magic = 11119;                                                // Магическое число заказа
   if(Entry=="sell") mreq.type = ORDER_TYPE_SELL;                     // Заказ на продажу
   if(Entry=="buy") mreq.type = ORDER_TYPE_BUY;                       // Заказ на покупку
   mreq.type_filling = ORDER_FILLING_FOK;                             // Тип исполнения заказа
   mreq.deviation=100;                                                // Отклонение от текущей цены
//--- отправить заказ
   if(!OrderSend(mreq,mresu))
     {
      Alert("Order Not Sent: ",GetLastError());
      ResetLastError();
      success=false;
     }
.
.
.
.
   if(success==false)
     {
      Alert("Error ORDER FAILED!!! - error:1004");
      Arun_error=1004;
     }
   return(success);
  }

... не уверен, что пошло не так в вашем процессе... но единственная причина ошибки, о которой я могу думать, это что-то в настройках MT5 ... или ... в исходной папке команд, куда вы отправили текст командных файлов, возможно, текстовые команды не удаляются должным образом после использования или сообщения советнику. Проверьте эту папку "common" источника команд, если она отвечает должным образом на ваш Excel и этого советника... если это так, тогда должно быть что-то в вашем тестере стратегий MT5, который не может обнаружить запрошенный ордер.

 

Здравствуйте, спасибо за советник.

Когда я нажимаю старт в тестере стратегий, визуализатор открывается и показывает большое сообщение "Ожидание обновления" и ничего не происходит.

Как я могу решить эту проблему?


Спасибо.

 


Привет,

Я тоже пытался использовать этот индикатор, но получил то же сообщение.

Журнал пишет:

1. 2020.04.18 21:14:44.766 strategytesterpracticetrade не является пользовательским индикатором и будет удален

2. 2020.04.18 21:14:44.766 невозможно создать индикатор


Кто-нибудь может решить эту проблему?

 


Итак, решение следующее (см. рисунок).

Щелкните правой кнопкой мыши на ExpertMACD, чтобы открыть контекстное меню в Navigator-> выберите "Testen" или "Test".



Но теперь у меня другая проблема.


Если есть файл .txt с именами "sell.txt", "buy.txt" или "close.txt", расположенный на

Win10:

C:\Users\[User]\AppData\Roaming\MetaQuotes\Terminal\Common\Files

MT5 открывается каждый раз, когда появляется новый ордер! Он не закрывает ордер, если есть close.txt, расположенный на пути.

Я думаю, что проблема здесь, в коде:


// если найден файл close.txt, это приведет к закрытию любой открытой позиции с максимальным размером объема, указанным для данной позиции. 
   if(FileIsExist("close.txt",FILE_COMMON))
     {

      FileDelete("sell.txt",FILE_COMMON);
      FileDelete("buy.txt",FILE_COMMON);
      FileDelete("close.txt",FILE_COMMON);

      if(OpenPosition()=="buy")
        {
         PositionSelect(_Symbol);
         JustifySize=NormalizeDouble(PositionGetDouble(POSITION_VOLUME),2);
         ExecuteTrade("sell",CurP,JustifySize);
        }

      if(OpenPosition()=="sell")
        {
         PositionSelect(_Symbol);
         JustifySize=NormalizeDouble(PositionGetDouble(POSITION_VOLUME),2);
         ExecuteTrade("buy",CurP,JustifySize);
        }
     }


Похоже, что MT5 реагирует на эту строку иначе, чем хотелось бы

if(OpenPosition()=="buy")

Файлы:
pic.jpg  98 kb
 
Я получил сообщение EA aborted!
Файлы:
the_PR.png  38 kb
 
Здравствуйте, доброго времени суток
Возможно ли отправить это приложение или файл excel мне
Потому что я ничего не делаю.