Ошибки, баги, вопросы - страница 922

 
sergeev:
а F9 на терминале вашего ДЦ поломался?

На видео  https://www.youtube.com/watch?v=uEGd4g8xK40 я постарался показать что по F9 все работает.
М.б. я что-то не догоняю... Вы пишите про ДЦ (дилинговый центр)
Я пробую работать на демо счете МТ5 с брокером Открытие.
Сегодня искал, кто еще работает (какие брокеры) на МТ5 с фьючерсами... ни одного российского не нашел ... Все демо , да демо...

 

 
Rone:

2. Есть класс в котором есть такой метод:

Имя файла является свойством и ему присваивается значение при инициализации объекта. То бишь при вызове метода, открываем файл, читаем построчно, и как только находим подходящую строку - возвращаем её подстроку. Если файл не открывается или нет подходящей строки - возвращаем строку, которую подавали на вход.  

Если вызываем метод один раз - всё работает. Но если вызывать несколько раз подряд -  срабатывает только первый раз, а на второй и последующие при попытке открыть файл - INVALID_HANDLE (проверял принтом). В чём может быть проблема?

Файл не всегда закрывается при выходе из функции.
 
На видео  https://www.youtube.com/watch?v=uEGd4g8xK40 я постарался показать что по F9 все работает.

если при обычной установке ордера по F9 время задается,

то и программным способом из MQL5 время тоже задается.

следовательно  ищите ошибку. делайте распринтовку, журналы и кричите.

Но от ДЦ в данном случае вообще ничего не зависит, так как по F9 все отрабатывается

 


Ув. разработчики, вот что было год назад


https://www.mql5.com/ru/forum/1931/17217#comment_17217

Lari333:

Здравствуйте.

 

2. При установке ордера программно с параметром expiration, ордер не ставится и дает ошибку 10022 (Неверная дата истечения ордера в запросе)

      request.action=TRADE_ACTION_PENDING;
      request.symbol=Symbol();
      request.volume=Lots;
      request.price=NormalizeDouble(Price,Digits);
      request.sl=NormalizeDouble(Loss,Digits);
      request.tp=NormalizeDouble(Take,Digits);
      request.type=ORDER_TYPE_SELL_LIMIT;
      request.magic=MagicNumber;
      request.type_time=ORDER_TIME_SPECIFIED;
      request.expiration=TimeTradeServer()+5*60*kol5ot;
      OrderSend(request,result);

Приходится модифицировать установленный без expiration ордер и тогда дата expiration принимается.

         OrderSelect(ticket);
         request.symbol=Symbol();
         request.volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
         request.price=OrderGetDouble(ORDER_PRICE_OPEN);
         request.sl=OrderGetDouble(ORDER_SL);
         request.tp=OrderGetDouble(ORDER_TP);
         request.type=ORDER_TYPE_SELL_LIMIT;
         request.magic=MagicNumber;
         request.order=ticket;
         request.action=TRADE_ACTION_MODIFY;
         request.type_time=ORDER_TIME_SPECIFIED;
         request.expiration=TimeTradeServer()+5*60*kol5ot;
         OrderSend(request,result);   


Похоже что воз и ныне там?

Expiration. Проблема с результатами
Expiration. Проблема с результатами
  • www.mql5.com
При оформлении запроса на установку отложенного ордера пробую использовать такую конструкцию:.
 
sergeev:


Ув. разработчики, вот что было год назад


https://www.mql5.com/ru/forum/1931/17217#comment_17217


Похоже что воз и ныне там?

Вот только что проверил неболшой модификацией приложенного примера. Отложенник выставляется нормально

//--- input parameters
input bool     use_expir=true;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlTradeRequest request;
   MqlTradeResult result;
   double Lots=0.1;
   double Price=SymbolInfoDouble(_Symbol,SYMBOL_BID)+1000*SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   double Loss=Price+1000*SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   double Take=Price-1000*SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   int MagicNumber=55555;
   int kol5ot=PeriodSeconds(PERIOD_D1);
//---
   request.action=TRADE_ACTION_PENDING;
   request.symbol=Symbol();
   request.volume=Lots;
   request.price=NormalizeDouble(Price,_Digits);
   request.sl=NormalizeDouble(Loss,_Digits);
   request.tp=NormalizeDouble(Take,_Digits);
   request.type=ORDER_TYPE_SELL_LIMIT;
   request.magic=MagicNumber;
   request.type_time=ORDER_TIME_SPECIFIED;
   request.expiration=TimeTradeServer()+5*60*kol5ot;
   if(OrderSend(request,result))
     {
      PrintFormat("OrderSend for %s returned true. Expiration date = %s", EnumToString(request.type), TimeToString(request.expiration));
     }
  }
//+------------------------------------------------------------------+

Вывод в журнал "Эксперты"

2013.01.22 16:11:00     Experts AutoTrading is enabled
2013.01.22 16:16:15     CheckExpirationinOrders (EURUSD,H1)     OrderSend for ORDER_TYPE_SELL_LIMIT returned true. Expiration date = 2013.11.18 13:16
 

Nikos52, Запустите и продебажте верхний скрипт

если у вас будет ошибка 1022 - то пишите в сервисдеск со всеми данными вашего брокера.

 
sergeev:

Nikos52, Запустите и продебажте верхний скрипт

если у вас будет ошибка 1022 - то пишите в сервисдеск со всеми данными вашего брокера.

Извините, я слабо владею сленгом - что значит "продебажте" ?  Это от слова debug ?  :)
 
Nikos52:
 Это от слова debug ?  :)

да

теперь и вы владеете сленгом :)

 
sergeev:
да

Картина маслом и вид с боку ...

Только что говорил с тех "спасателями" брокера - говорят, что эта ошибка только на demo счетах, мол на реальных этого не будет.
А как тогда писать советника и проверять на истории ? - Ну мы решаем, переписываемся с разработчиками.

Все как в старом анекдоте про дурдом... Научитесь плавать - воды в бассейн напустим . 

 
Nikos52:

Только что говорил с тех "спасателями" брокера - говорят, что эта ошибка только на demo счетах, мол на реальных этого не будет.

требуйте. если по F9  в демо ставится экспирация, а из под MQL5 нет - отправьте заявку в сервисдеск на форуме со всеми логами и описанием в чем проблема.  без видео.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
Причина обращения: