Русский

Справочник MQL4 Константы, перечисления и структуры Состояние окружения Информация об инструменте

Информация об инструменте

Для получения текущей рыночной информации служит функция MarketInfo(). Идентификаторы запроса могут быть одной из следующего величин:

Константа

Значение

Описание

MODE_LOW

1

Минимальная дневная цена

MODE_HIGH

2

Максимальная дневная цена

MODE_TIME

5

Время поступления последней котировки

MODE_BID

9

Последняя поступившая цена предложения. Для текущего инструмента хранится в предопределенной переменной Bid

MODE_ASK

10

Последняя поступившая цена продажи. Для текущего инструмента хранится в предопределенной переменной Ask

MODE_POINT

11

Размер пункта в валюте котировки. Для текущего инструмента хранится в предопределенной переменной Point

MODE_DIGITS

12

Количество цифр после запятой в цене инструмента. Для текущего инструмента хранится в предопределенной переменной Digits

MODE_SPREAD

13

Спрэд в пунктах

MODE_STOPLEVEL

14

Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах.
 
Нулевое значение MODE_STOPLEVEL означает либо отсутствие  ограничения на минимальную дистанцию для стоп-лосса/тейк-профита, либо факт использования торговым сервером внешних механизмов динамического контроля уровней, которые не могут быть транслированы в терминал. Во втором случае GetLastError() может возвращать ошибку 130, так как уровень MODE_STOPLEVEL фактически является "плавающим".

MODE_LOTSIZE

15

Размер контракта в базовой валюте инструмента

MODE_TICKVALUE

16

Размер минимального изменения цены инструмента в валюте депозита

MODE_TICKSIZE

17

Минимальный шаг изменения цены инструмента в пунктах

MODE_SWAPLONG

18

Размер свопа для ордеров на покупку

MODE_SWAPSHORT

19

Размер свопа для ордеров на продажу

MODE_STARTING

20

Календарная дата начала торгов (обычно используется для фьючерсов)

MODE_EXPIRATION

21

Календарная дата конца торгов (обычно используется для фьючерсов)

MODE_TRADEALLOWED

22

Разрешение торгов по указанному инструменту

MODE_MINLOT

23

Минимальный размер лота

MODE_LOTSTEP

24

Шаг изменения размера лота

MODE_MAXLOT

25

Максимальный размер лота

MODE_SWAPTYPE

26

Метод вычисления свопов. 0 - в пунктах; 1 - в базовой валюте инструмента; 2 - в процентах; 3 - в валюте залоговых средств.

MODE_PROFITCALCMODE

27

Способ расчета прибыли. 0 - Forex; 1 - CFD; 2 - Futures

MODE_MARGINCALCMODE

28

Способ расчета залоговых средств. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD на индексы

MODE_MARGININIT

29

Начальные залоговые требования для 1 лота

MODE_MARGINMAINTENANCE

30

Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот

MODE_MARGINHEDGED

31

Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот

MODE_MARGINREQUIRED

32

Размер свободных средств, необходимых для открытия 1 лота на покупку

MODE_FREEZELEVEL

33

Уровень заморозки ордеров в пунктах. Если цена исполнения находится в пределах, определяемых уровнем заморозки, то ордер не может быть модифицирован, отменен или закрыт.

MODE_CLOSEBY_ALLOWED

34

Разрешение на использование OrderCloseBy() для закрытия встречных ордеров на указанном символе

Пример:

//+------------------------------------------------------------------+
//| Скрипт выводит информацию об инструменте                         |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("Symbol=",Symbol());
   Print("Минимальная дневная цена=",MarketInfo(Symbol(),MODE_LOW));
   Print("Максимальная дневная цена=",MarketInfo(Symbol(),MODE_HIGH));
   Print("Время поступления последней котировки=",(MarketInfo(Symbol(),MODE_TIME)));
   Print("Последняя поступившая цена предложения=",MarketInfo(Symbol(),MODE_BID));
   Print("Последняя поступившая цена продажи=",MarketInfo(Symbol(),MODE_ASK));
   Print("Размер пункта в валюте котировки=",MarketInfo(Symbol(),MODE_POINT));
   Print("Количество цифр после запятой в цене инструмента=",MarketInfo(Symbol(),MODE_DIGITS));
   Print("Спрэд в пунктах=",MarketInfo(Symbol(),MODE_SPREAD));
   Print("Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах=",MarketInfo(Symbol(),MODE_STOPLEVEL));
   Print("Размер контракта в базовой валюте инструмента=",MarketInfo(Symbol(),MODE_LOTSIZE));
   Print("Размер минимального изменения цены инструмента в валюте депозита=",MarketInfo(Symbol(),MODE_TICKVALUE));
   Print("Минимальный шаг изменения цены инструмента в пунктах=",MarketInfo(Symbol(),MODE_TICKSIZE)); 
   Print("Размер свопа для ордеров на покупку=",MarketInfo(Symbol(),MODE_SWAPLONG));
   Print("Размер свопа для ордеров на продажу=",MarketInfo(Symbol(),MODE_SWAPSHORT));
   Print("Календарная дата начала торгов (фьючерсы)=",MarketInfo(Symbol(),MODE_STARTING));
   Print("Календарная дата окончания торгов (фьючерсы)=",MarketInfo(Symbol(),MODE_EXPIRATION));
   Print("Разрешение торгов по указанному инструменту=",MarketInfo(Symbol(),MODE_TRADEALLOWED));
   Print("Минимальный размер лота=",MarketInfo(Symbol(),MODE_MINLOT));
   Print("Шаг изменения размера лота=",MarketInfo(Symbol(),MODE_LOTSTEP));
   Print("Максимальный размер лота=",MarketInfo(Symbol(),MODE_MAXLOT));
   Print("Метод вычисления свопов=",MarketInfo(Symbol(),MODE_SWAPTYPE));
   Print("Способ расчета прибыли=",MarketInfo(Symbol(),MODE_PROFITCALCMODE));
   Print("Способ расчета залоговых средств=",MarketInfo(Symbol(),MODE_MARGINCALCMODE));
   Print("Начальные залоговые требования для 1 лота=",MarketInfo(Symbol(),MODE_MARGININIT));
   Print("Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот=",MarketInfo(Symbol(),MODE_MARGINMAINTENANCE));
   Print("Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот=",MarketInfo(Symbol(),MODE_MARGINHEDGED));
   Print("Размер свободных средств, необходимых для открытия 1 лота на покупку=",MarketInfo(Symbol(),MODE_MARGINREQUIRED));
   Print("Уровень заморозки ордеров в пунктах=",MarketInfo(Symbol(),MODE_FREEZELEVEL)); 
  }

Для получения текущей рыночной информации используются функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно.

Для функции SymbolInfoInteger():

ENUM_SYMBOL_INFO_INTEGER

Идентификатор

Описание

Тип свойства

SYMBOL_SELECT

Признак того, что символ выбран в Market Watch.

 

Некоторые символы могут не отображаться в Market Watch, но при этом быть выбранными.

bool

SYMBOL_VISIBLE

Признак того, что выбранный символ отображается в Market Watch.

 

Некоторые символы (как правило, это кросс-курсы, которые необходимы для расчёта маржевых требований и прибыли в валюте депозита) выбираются автоматически, но при этом обычно не отображаются в Market Watch. Для отображения такие символы должны быть выбраны явно.

bool

SYMBOL_SESSION_DEALS

Не поддерживается

long

SYMBOL_SESSION_BUY_ORDERS

Не поддерживается

long

SYMBOL_SESSION_SELL_ORDERS

Не поддерживается

long

SYMBOL_VOLUME

Не поддерживается

long

SYMBOL_VOLUMEHIGH

Не поддерживается

long

SYMBOL_VOLUMELOW

Не поддерживается

long

SYMBOL_TIME

Время последней котировки

datetime

SYMBOL_DIGITS

Количество знаков после запятой

int

SYMBOL_SPREAD

Размер спреда в пунктах

int

SYMBOL_SPREAD_FLOAT

Признак плавающего спреда

bool

SYMBOL_TRADE_CALC_MODE

Способ вычисления стоимости контракта

int

SYMBOL_TRADE_MODE

Тип исполнения ордеров

ENUM_SYMBOL_TRADE_MODE

SYMBOL_START_TIME

Дата начала торгов по инструменту (обычно используется для фьючерсов)

datetime

SYMBOL_EXPIRATION_TIME

Дата окончания торгов по инструменту (обычно используется для фьючерсов)

datetime

SYMBOL_TRADE_STOPS_LEVEL

Минимальный отступ в пунктах от текущей цены закрытия для установки Stop ордеров

int

SYMBOL_TRADE_FREEZE_LEVEL

Дистанция заморозки торговых операций (в пунктах)

int

SYMBOL_TRADE_EXEMODE

Режим заключения сделок

ENUM_SYMBOL_TRADE_EXECUTION

SYMBOL_SWAP_MODE

Модель расчета свопа

int

SYMBOL_SWAP_ROLLOVER3DAYS

День недели для начисления тройного свопа

ENUM_DAY_OF_WEEK

SYMBOL_EXPIRATION_MODE

Не поддерживается

int

SYMBOL_FILLING_MODE

Не поддерживается

int

SYMBOL_ORDER_MODE

Не поддерживается

int

Для функции SymbolInfoDouble():

ENUM_SYMBOL_INFO_DOUBLE

Идентификатор

Описание

Тип свойства

SYMBOL_BID

Bid - лучшее предложение на продажу

double

SYMBOL_BIDHIGH

Не поддерживается

double

SYMBOL_BIDLOW

Не поддерживается

double

SYMBOL_ASK

Ask - лучшее предложение на покупку

double

SYMBOL_ASKHIGH

Не поддерживается

double

SYMBOL_ASKLOW

Не поддерживается

double

SYMBOL_LAST

Не поддерживается

double

SYMBOL_LASTHIGH

Не поддерживается

double

SYMBOL_LASTLOW

Не поддерживается

double

SYMBOL_POINT

Значение одного пункта

double

SYMBOL_TRADE_TICK_VALUE

Значение SYMBOL_TRADE_TICK_VALUE_PROFIT

double

SYMBOL_TRADE_TICK_VALUE_PROFIT

Не поддерживается

double

SYMBOL_TRADE_TICK_VALUE_LOSS

Не поддерживается

double

SYMBOL_TRADE_TICK_SIZE

Минимальное изменение цены

double

SYMBOL_TRADE_CONTRACT_SIZE

Размер торгового контракта

double

SYMBOL_VOLUME_MIN

Минимальный объем для заключения сделки

double

SYMBOL_VOLUME_MAX

Максимальный объем для заключения сделки

double

SYMBOL_VOLUME_STEP

Минимальный шаг изменения объема для заключения сделки

double

SYMBOL_VOLUME_LIMIT

Не поддерживается

double

SYMBOL_SWAP_LONG

Значение свопа в покупку

double

SYMBOL_SWAP_SHORT

Значение свопа в продажу

double

SYMBOL_MARGIN_INITIAL

Начальная (инициирующая) маржа обозначает размер необходимых залоговых средств в маржинальной валюте для открытия ордера объемом в один лот. Используется при проверке средств клиента при входе в рынок.

double

SYMBOL_MARGIN_MAINTENANCE

Поддерживающая маржа по инструменту. В случае если задана – указывает размер маржи в маржинальной валюте инструмента, удерживаемой с одного лота. Используется при проверке средств клиента при изменении состояния счета клиента. Если поддерживающая маржа равна 0, то используется начальная маржа.

double

SYMBOL_MARGIN_LONG

Не поддерживается

double

SYMBOL_MARGIN_SHORT

Не поддерживается

double

SYMBOL_MARGIN_LIMIT

Не поддерживается

double

SYMBOL_MARGIN_STOP

Не поддерживается

double

SYMBOL_MARGIN_STOPLIMIT

Не поддерживается

double

SYMBOL_SESSION_VOLUME

Не поддерживается

double

SYMBOL_SESSION_TURNOVER

Не поддерживается

double

SYMBOL_SESSION_INTEREST

Не поддерживается

double

SYMBOL_SESSION_BUY_ORDERS_VOLUME

Не поддерживается

double

SYMBOL_SESSION_SELL_ORDERS_VOLUME

Не поддерживается

double

SYMBOL_SESSION_OPEN

Не поддерживается

double

SYMBOL_SESSION_CLOSE

Не поддерживается

double

SYMBOL_SESSION_AW

Не поддерживается

double

SYMBOL_SESSION_PRICE_SETTLEMENT

Не поддерживается

double

SYMBOL_SESSION_PRICE_LIMIT_MIN

Не поддерживается

double

SYMBOL_SESSION_PRICE_LIMIT_MAX

Не поддерживается

double

Для функции SymbolInfoString():

ENUM_SYMBOL_INFO_STRING

Идентификатор

Описание

Тип свойства

SYMBOL_CURRENCY_BASE

Базовая валюта инструмента

string

SYMBOL_CURRENCY_PROFIT

Валюта прибыли

string

SYMBOL_CURRENCY_MARGIN

Валюта в которой вычисляется залоговые средства

string

SYMBOL_DESCRIPTION

Строковое описание символа

string

SYMBOL_PATH

Путь в дереве символов

string

Существует несколько режимов торговли по финансовым инструментам. Информация о режимах торговли по конкретному инструменту отображена в значениях перечисления ENUM_SYMBOL_TRADE_MODE.

ENUM_SYMBOL_TRADE_MODE

Идентификатор

Описание

SYMBOL_TRADE_MODE_DISABLED

Торговля по символу запрещена

SYMBOL_TRADE_MODE_LONGONLY

Разрешены только покупки

SYMBOL_TRADE_MODE_SHORTONLY*

Разрешены только продажи

SYMBOL_TRADE_MODE_CLOSEONLY*

Разрешены только операции закрытия позиций

SYMBOL_TRADE_MODE_FULL

Нет ограничений на торговые операции

Возможные режимы заключения сделок по конкретному инструменту определены в перечислении  ENUM_SYMBOL_TRADE_EXECUTION.

ENUM_SYMBOL_TRADE_EXECUTION

Идентификатор

Описание

SYMBOL_TRADE_EXECUTION_REQUEST

Торговля по запросу

SYMBOL_TRADE_EXECUTION_INSTANT

Торговля по потоковым ценам

SYMBOL_TRADE_EXECUTION_MARKET

Исполнение ордеров по рынку

SYMBOL_TRADE_EXECUTION_EXCHANGE*

Биржевое исполнение

*Данные значения не используются в MQL4 (добавлены для совместимости с MQL5).

Для указания дня недели предназначены значения перечисления ENUM_DAY_OF_WEEK.

ENUM_DAY_OF_WEEK

Идентификатор

Описание

SUNDAY

Воскресенье

MONDAY

Понедельник

TUESDAY

Вторник

WEDNESDAY

Среда

THURSDAY

Четверг

FRIDAY

Пятница

SATURDAY

Суббота