Суббота, 04.05.2024, 08:20 Вы вошли как Гость | Группа "Гости" | RSS | Главная | функция OrderMagicNumber. | Мой профиль | Выход | Вход
Вы смотрели фильм-расследование Алексея Навального "Дворец президента"?
Всего ответов: 2
» Меню сайта

» РАЗНОЕ

» Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

функция OrderMagicNumber.

Очень часто трейдеру бывает нужно как-то идентифицировать ордера или позиции. Например, полезно знать, открыт ли данный ордер именно этим экспертом или на каком периоде графика сработал торговый сигнал. Разработчики 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_M1 1 1 минута
PERIOD_M5 5 5 минут
PERIOD_M15 15 15 минут
PERIOD_M30 30 30 минут
PERIOD_H1 60 1 час
PERIOD_H4 240 4 часа
PERIOD_D1 1440 1 день
PERIOD_W1 10080 1 неделя
PERIOD_MN1 43200 1 месяц
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 ); }
» Поиск


гороскоп
» Мини-чат

» Наш опрос
Оцените мой сайт
Всего ответов: 46

» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • » Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Copyright MyCorp © 2024
    Бесплатный хостинг uCoz