Класс COrderInfo

 

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

Пытаюсь в эксперте использовать стандартный класс.

#include <Trade\OrderInfo.mqh>

 COrderInfo  ord;                                 // Объект класса отложенных ордеров

.....

 ulong ticket=0;                                   // переменная для запоминания номера отложенного ордера

 int total=OrdersTotal();                      // получаем общее количество отложенных ордеров

 if(total>0)                                         // есть в наличии хотя бы один отложенный ордер  

 {

  for(int i=0;i<total;i++)                      // Проверим все отложенные ордера                  

  {

   ticket=OrderGetTicket(i);

   ord.Select(ticket);

   if(ord.Symbol()==_Symbol&&ord.Type()==ORDER_TYPE_SELL_STOP) // Торговый инструмент и тип ордера совпадает?

..... 

Пытаюсь "поймать" нужный мне ордер по двум критериям - символ и тип. Но по типу отказывается работать. Когда пишу код всплывающее окно говорит, что на выходе будет int при вызове ord.Type(), а в документации написано ENUM_ORDER_TYPE.

Получается, что надо сравнивать с числом (типа int 1,2 ...) ? А где можно увидеть какой тип ордера какому числу int сопоставляется? В МТ4 помню была информация, а в этом справочнике нет.

Заранее благодарю. 

Взгляни на рынок через готовые классы
Взгляни на рынок через готовые классы
  • 2010.10.26
  • Dmitriy Skub
  • www.mql5.com
Не секрет, что большую часть информации об окружающем мире человек получает при помощи зрения. Справедливо это и в такой области как трейдинг. Новая платформа MetaTrader 5 и язык MQL5 открывают новые возможности для представления визуальной информации трейдеру. В данной статье предлагается универсальная и расширяемая система классов, которая берет на себя всю черновую работу по организации вывода произвольной текстовой информации.
 
RedFish:

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


Для определения типа ордера используйте метод COrderInfo::OrderType()
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
uncleVic:
Для определения типа ордера используйте метод COrderInfo::OrderType()

Спасибо.

Пожалуйста поясните я кажется не понял. Я это в строке должен так написать?

if(ord.Symbol()==_Symbol&&COrderInfo::OrderType()==ORDER_TYPE_SELL_STOP)

 

 
RedFish:

Спасибо.

Пожалуйста поясните я кажется не понял. Я это в строке должен так написать?

if(ord.Symbol()==_Symbol&&COrderInfo::OrderType()==ORDER_TYPE_SELL_STOP)

 


if(ord.Symbol()==_Symbol&&ord.OrderType()==ORDER_TYPE_SELL_STOP)

 
uncleVic:

if(ord.Symbol()==_Symbol&&ord.OrderType()==ORDER_TYPE_SELL_STOP)

К сожалению так не работает. 

Когда прописываю ord.Type() появляется всплывающее окно вот скрин ... 

Там указано, что возвращаемый тип будет int и это по моему не совпадает с типом указанным здесь

 https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/corderinfo/corderinfoordertype

Я этим способом выбора ордера  хотел воспользоваться, когда ознакомился со статьей 

https://www.mql5.com/ru/articles/138

Там в таблице по разделу 1.4 стандартного класса COrderInfo в таблице приводится пример 

myorder.Type()Используется для получения типа ордера (ORDER_TYPE_BUY_STOP и т.п.).
if (myorder.Type() == ORDER_TYPE_BUY_LIMIT)
{
// это ордер Buy Limit order, и т.д.
}

 ... Но у меня не работает. Почему функция возвращает значение int, не ENUM_ORDER_TYPE 

Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / OrderType
Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / OrderType
  • www.mql5.com
Стандартная библиотека / Торговые классы / COrderInfo / OrderType - Документация по MQL5
Файлы:
22.jpg  19 kb
 

Я не знаю где Вы смотрите. Смотрите тут.
 

А, понял. Этой статье полтора года и она немного "отстала от жизни". Справка освежается регулярно.

Имя метода OrderType.

 
uncleVic:

А, понял.

Боюсь мы по прежнему не понимаем друг друга. Вот элементарный скрипт.

 #include <Trade\OrderInfo.mqh>


COrderInfo  ord;                                   // Объект класса отложенных ордеров



void OnStart()

{

 ulong ticket=0;                                   // переменная для запоминания номера отложенного ордера

 int total=OrdersTotal();                          // получаем общее количество отложенных ордеров

 if(total>0)                                       // есть в наличии хотя бы один отложенный ордер  

 {

  Alert("Вижу всего отложенных ордеров - ",total);

  for(int i=0;i<total;i++)                         // Проверим все отложенные ордера                  

  {

   ticket=OrderGetTicket(i);

   ord.Select(ticket);

   if(ord.Type()==ORDER_TYPE_SELL_STOP)            // Тип ордера sell-stop?

    Alert("Ордер sell-stop тикет №",ticket);                                      

   else

    Alert("Ордер тикет №",ticket," не sell-stop.");

  }

 }

 else

 {

  Alert("Вообще не вижу отложенных ордеров.");     // Нет отложенников вообще

 }  

}

Специально написал, скомпилировал. Выставил два отложенника разного типа и результат на скрине ...

Еще раз говорю   if(ord.Type()==ORDER_TYPE_SELL_STOP) -не работает. Почему?

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
Файлы:
44.jpg  286 kb
 

RedFish:

Еще раз говорю   if(ord.Type()==ORDER_TYPE_SELL_STOP) -не работает. Почему?

А я ещё раз говорю (последний): Потому что не:

if(ord.Type()==ORDER_TYPE_SELL_STOP) 

а:

if(ord.OrderType()==ORDER_TYPE_SELL_STOP) 
 
uncleVic:

 (последний)

Огромное спасибо!!! Извините за невнимательность и неуместную настойчивость. Не хотел злить.

Еще раз благодарю. 

 
uncleVic:

А, понял. Этой статье полтора года и она немного "отстала от жизни". Справка освежается регулярно.

Имя метода OrderType.

Текст и коды статьи Как использовать торговые классы Стандартной библиотеки при написании советника обновлены.

Причина обращения: