функция OrderMagicNumber


например, forex

Очень часто трейдеру бывает нужно как-то идентифицировать ордера или позиции. Например, полезно знать, открытли данный ордер именно этим экспертом или накаком периоде графика сработал торговый сигнал. Разработчики MetaTrader 4предусмотрели для таких случаев очень полезную торговую функцию— OrderMagicNumber().

   int OrderMagicNumber()

Функция OrderMagicNumber() возвращает целое число, которое было установлено для этого ордера функцией OrderSend() впараметре magic.

Немного забегая вперед, расскажу оформате функции OrderSend():

   int OrderSend(string symbol, int cmd, double volume, double price, int slippage, 
                          double stoploss, double takeprofit, string comment=NULL, 
                          int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Функция OrderSend() предназначена для размещения отложенного ордера или открытия позиции. Вследующем выпуске ярасскажу оней подробнее.

Как яуже говорил ранее, магическое число для ордера или позиции передается вфункцию через параметр magic.

Предположим, что унас работает несколько экспертов, каждый сосвоим номером (ID). Допустим, что также возможна ситуация, когда один эксперт работает поодному итомуже инструменту, нонаразных периодах графика. Все эти эксперты совершают сделки ивыставляют ордера, нопри этом для последующего управления этими ордерами ипозициями надо уметь определять, каким экспертом инакаком периоде эти позиции были открыты (ордера выставлены), чтобы случайно незакрыть позицию, открытую другим экспертом или этимже экспертом, нонадругом временном промежутке.

Для этих целей нам подойдет следующий формат магического числа: последние 2цифры числа— IDэсперта, первые цифры— период графика.

В языке MetaQuotes Language существуют следующие константы, которые обозначают периоды графиков:

КонстантаЗначениеОписание
PERIOD_M111минута
PERIOD_M555минут
PERIOD_M151515минут
PERIOD_M303030минут
PERIOD_H1601час
PERIOD_H42404часа
PERIOD_D114401день
PERIOD_W1100801неделя
PERIOD_MN1432001месяц
0(ноль)0Период текущего графика

Табл. 1.Периоды графиков

Исходя изэтого мыможем описать 3функции:

   // получить магическое число из периода графика и ID эксперта
   int GetMagicNumber( int chart_period, int expertID )
     {
      return( chart_period * 100 + expertID );
     }
// получить период графика из магического числа int GetPeriod( int magic ) { return( magic / 100 ); }
// получить ID эксперта из магического числа int GetExpertID( int magic ) { return( magic % 100 ); }


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

закрыть

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

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

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

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

 
Rambler's Top100