функция OrderSymbol


например, forex

Очень часто перед трейдером стоит задача перебрать все открытые позиции или отложенные ордера ичто-то сделать спозициями или ордерами, которые выставлены поинструменту, ккоторому прикреплен советник. Предположим, что нас интересуют только отложенные ордера.

Используя функцию OrderSymbol(), мыможем получить информация овыделенном спомощью функции OrderSelect() ордере или позиции.

   string OrderSymbol()

Напишем кусочек кода, который просматривает все наши неудаленные отложенные ордера ипроизводит какие-то действия сордерами, которые выставлены поинструменту, ккоторому прикреплен советник.

   int pos;
   for (pos=0; pos=OP_BUYLIMIT)
             {
               // ордер оказался отложенным; проверим инструмент
               if (OrderSymbol()==Symbol())
                 {
                   // делаем что-то с ордером
                   // ...
                 }               
             }
         }
       else
           Print("Ошибка ", GetLastError(), " при выборе ордера номер ", pos);

В этом коде Вам могут быть непонятны два момента.

Во-первых, якак-то странно напервый взгляд провожу определение типа ордера: if(OrderType()>=OP_BUYLIMIT). Насамом деле условие OrderType()>=OP_BUYLIMIT будет истинно втех случаях, когда выбран ордер, иложно втех случаях, когда выбрана позиция. Дело втом, что константы, определяющие тип ордера, имеют следующие числовые значения:

КонстантаЗначениеОписание
OP_BUY0Позиция напокупку
OP_SELL1Продажа
OP_BUYLIMIT2Отложенный ордер BUY LIMIT
OP_SELLLIMIT3Отложенный ордер SELL LIMIT
OP_BUYSTOP4Отложенный ордер BUY STOP
OP_SELLSTOP5Отложенный ордер SELL STOP

Как мывидим, вовсех случаях, когда выделен отложенный ордер, значение функции OrderType() будет больше или равно OP_BUYLIMIT (т.е. больше или равно 2).

Второй непонятный момент вкоде— функция Symbol(). Эта функция возвращает текстовую строку сименем финансового инструмента, ккоторому прикреплен советник:

   string Symbol()


Перейти к главе «функция OrderComment».
 
+7 (495) 710-76-76
8 (800) 200-01-31
по России бесплатно

закрыть

Вход в личный кабинет

Для счета alpari.classic введите номер счета (буква и 4 цифры) и пароль в ЛК.

Для счетов alpari.micro и alpari.partner введите логин и пароль в МТ.

Зарегистрироваться!Забыли пароль?

 
Rambler's Top100