Обсуждение статьи "Торговые операции на MQL5 - это просто" - страница 2

 
Valmars:
Надо всё таки просматривать код перед публикацией.

Это уже давно исправлено, еще в день публикации.
 
Valmars:

Согласен, сейчас уже торговые классы достаточно стабилизировались. Так почему, пропагандируя их применение, в примерах фигурируют функции получения свойств инструмента вместо применения методов класса CSymbolInfo. Как то непоследовательно.

Уточните, что имеется в виду. Если призываете везде писать классы, то некоторым новичкам это может показаться сложным и непонятным.
 
Rosh:
Это уже давно исправлено, еще в день публикации.
Извиняюсь, открыл статью сразу, а прочитал только сейчас.
 
Rosh:
Уточните, что имеется в виду. Если призываете везде писать классы, то некоторым новичкам это может показаться сложным и непонятным.

Собственно, это не я призываю, а Вы призываете использовать классы 'Стандартной библиотеки' в приведённой цитате, я только соглашаюсь. Конечно, дело вкуса.

В мало-мальски сложном советнике масса обращений к свойствам символа и, создав единожды экземпляр класса CSymbolInfo, мы значительно упрощаем обращения к ним и восприятие программы. Моё имхо.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Прошу прощения, не знал где задать этот вопрос и решил здесь, мне кажется, тема подходит.

Как закрыть сразу все ордера, открытые либо только на продажу, либо только на покупку?

 
nskforward:

Прошу прощения, не знал где задать этот вопрос и решил здесь, мне кажется, тема подходит.

Как закрыть сразу все ордера, открытые либо только на продажу, либо только на покупку?

В MetaTrader 5 по каждому инструменту может быть только одна открытая позиция. Возможно, вы имеет в виду, закрыть все позиции по всем инструментам?
 

Здравствуйте,
При использовании в коде функции BuyStop для торговли фьючерсом RTS-3.13 (RIH3) постоянно возникает ошибка : 
10022 TRADE_RETCODE_INVALID_EXPIRATION - Неверная дата истечения ордера

В спецификации фьючерса  RTS-3.13 указано, что тип ордеров - Действительные до отмены. http://savepic.org/2499182.jpg
Т.е. можно указывать тип ORDER_TIME_GTC - Ордер будет находится в очереди до тех пор, пока не будет снят.
Пробовал использовать другие типы ORDER_TIME_DAY, ORDER_TIME_SPECIFIED, ORDER_TIME_SPECIFIED_DAY  - ошибка не исчезает. 


Часть кода:

   int    digits = (int)SymbolInfoInteger(Ticket,SYMBOL_DIGITS);// количество знаков после запятой
   double point  = SymbolInfoDouble(Ticket,SYMBOL_POINT);       // пункт
   double ask    = SymbolInfoDouble(Ticket,SYMBOL_ASK);         // текущая цена покупки
   double price= 1000 * point;                                  // не нормализованная цена открытия
   price  = NormalizeDouble(price, digits);                     // нормализуем цену открытия
   //price  = NormalizeDouble(ask + 1000, digits);              // ???
   Print("digits=", IntegerToString(digits), " point=", DoubleToString (point, 0), " ask=", DoubleToString (ask, 0),
         " price=", DoubleToString (price, 0));    
//--- все готово, отправляем на сервер отложенный ордер Buy Stop 
   if(!m_Trade.BuyStop(1, price, Ticket))
     {
      Print("Метод BuyStop() потерпел неудачу. Код возврата=", m_Trade.ResultRetcode(),
            ". Описание кода: ",m_Trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод BuyStop() выполнен успешно. Код возврата=",m_Trade.ResultRetcode(),
            " (",m_Trade.ResultRetcodeDescription(),")");
     }

 В журнале Тестера стратегий записи :

2012.12.18 19:44:59   digits=0 point=1 ask=151830 price=1000
2012.12.18 19:44:59   failed buy stop 1.00 RTS-3.13 at 1000 [Invalid expiration]
2012.12.18 19:44:59   CTrade::OrderSend: buy stop 1.00 RTS-3.13 at 1000 [invalid expiration]
2012.12.18 19:44:59   Метод BuyStop() потерпел неудачу. Код возврата=10022. Описание кода: invalid expiration

В чем м.б. проблема ? Подскажите , пож-та. 
Буду благодарен если ответите на почту nfo52^mail.ru, ICQ UIN: 4002787, skype: osipov52

Спасибо.  

Win7 64 разр.,  МТ5 ,  Демо-счет БД Открытие. 

 
Nikos52:

Здравствуйте,
При использовании в коде функции BuyStop для торговли фьючерсом RTS-3.13 (RIH3) постоянно возникает ошибка : 
10022 TRADE_RETCODE_INVALID_EXPIRATION - Неверная дата истечения ордера

В спецификации фьючерса  RTS-3.13 указано, что тип ордеров - Действительные до отмены. http://savepic.org/2499182.jpg
Т.е. можно указывать тип ORDER_TIME_GTC - Ордер будет находится в очереди до тех пор, пока не будет снят.
Пробовал использовать другие типы ORDER_TIME_DAY, ORDER_TIME_SPECIFIED, ORDER_TIME_SPECIFIED_DAY  - ошибка не исчезает. 


Часть кода:

 В журнале Тестера стратегий записи :

В чем м.б. проблема ? Подскажите , пож-та. 
Буду благодарен если ответите на почту nfo52^mail.ru, ICQ UIN: 4002787, skype: osipov52

Спасибо.  

Win7 64 разр.,  МТ5 ,  Демо-счет БД Открытие. 

Аналогичная проблема на RTS-3.13 Открытие-демо, перепробовал все (приэтом лимит ордера ставятся на ORDER_TIME_SPECIFIED_DAY  как написано в профиле символа) !!!! При том что buy-stop ордер отлично открывается в рынке в ручную. Это глюк терминала, надо писать разработчикам
 
Ага, прям проще не бывает! Намудрили там кучу всего, и при этом с использованием стандартных библиотек, а если без них, так сказать с нуля??? Самое просто и быстро, качественно запрограммировать советника на MQl4!!! У меня советник на mql4 занимает 70 строк, я переписал его на mql5, и получилось 198!!!!!! Так что название со словом "просто" - не уместно.
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 
zlodei:
...У меня советник на mql4 занимает 70 строк, я переписал его на mql5, и получилось 198!!!!!! Так что название со словом "просто" - не уместно.
Это если идея советника несложная. Имхо, чем сложнее идея, тем больше будет разница в числе строк кода между MQL4 и MQL5 в пользу последнего. Так что я бы не был столь категоричным...
Причина обращения: