|
Информация об инструменте
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно.
Для функции SymbolInfoInteger()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_SELECT |
Признак того, что символ выбран в Market Watch |
bool |
SYMBOL_SESSION_DEALS |
Количество сделок в текущей сессии |
long |
SYMBOL_SESSION_BUY_ORDERS |
Общее число ордеров на покупку в текущий момент |
long |
SYMBOL_SESSION_SELL_ORDERS |
Общее число ордеров на продажу в текущий момент |
long |
SYMBOL_VOLUME |
Volume - объем в последней сделке |
long |
SYMBOL_VOLUMEHIGH |
Максимальный Volume за день |
long |
SYMBOL_VOLUMELOW |
Минимальный Volume за день |
long |
Время последней котировки |
datetime |
|
SYMBOL_DIGITS |
Количество знаков после запятой |
int |
SYMBOL_SPREAD |
Размер спреда в пунктах |
int |
SYMBOL_SPREAD_FLOAT |
Признак плавающего спреда |
bool |
SYMBOL_TICKS_BOOKDEPTH |
Максимальное количество показываемых заявок в стакане. Для инструментов, не имеющих очереди заявок, значение равно 0 |
int |
SYMBOL_TRADE_CALC_MODE |
Способ вычисления стоимости контракта |
|
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 |
Режим заключения сделок |
|
SYMBOL_SWAP_MODE |
Модель расчета свопа |
|
SYMBOL_SWAP_ROLLOVER3DAYS |
День недели для начисления тройного свопа |
|
SYMBOL_EXPIRATION_MODE |
Флаги разрешенных режимов истечения ордера |
int |
SYMBOL_FILLING_MODE |
Флаги разрешенных режимов заливки ордера |
int |
SYMBOL_ORDER_MODE |
Флаги разрешенных типов ордера |
int |
Для функции SymbolInfoDouble()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_BID |
Bid - лучшее предложение на продажу |
double |
SYMBOL_BIDHIGH |
Максимальный Bid за день |
double |
SYMBOL_BIDLOW |
Минимальный Bid за день |
double |
SYMBOL_ASK |
Ask - лучшее предложение на покупку |
double |
SYMBOL_ASKHIGH |
Максимальный Ask за день |
double |
SYMBOL_ASKLOW |
Минимальный Ask за день |
double |
SYMBOL_LAST |
Цена, по которой совершена последняя сделка |
double |
SYMBOL_LASTHIGH |
Максимальный Last за день |
double |
SYMBOL_LASTLOW |
Минимальный Last за день |
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 |
Максимально допустимый для данного символа совокупный объем открытой позиции и отложенных ордеров в одном направлении (покупка или продажа). Например, при ограничении в 5 лотов можно иметь открытую позицию на покупку объемом 5 лотов и выставить отложенный ордер Sell Limit объемом 5 лотов. Но при этом нельзя выставить отложенный ордер Buy Limit (поскольку совокупный объем в одном направлении превысит ограничение) или выставить Sell Limit объемом более 5 лотов. |
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 |
Коэффициент взимания маржи по Limit ордерам |
double |
SYMBOL_MARGIN_STOP |
Коэффициент взимания маржи по Stop ордерам |
double |
SYMBOL_MARGIN_STOPLIMIT |
Коэффициент взимания маржи по Stop Limit ордерам |
double |
SYMBOL_SESSION_VOLUME |
Cуммарный объём сделок в текущую сессию |
double |
SYMBOL_SESSION_TURNOVER |
Cуммарный оборот в текущую сессию |
double |
SYMBOL_SESSION_INTEREST |
Cуммарный объём открытых позиций |
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()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_CURRENCY_BASE |
Базовая валюта инструмента |
string |
SYMBOL_CURRENCY_PROFIT |
Валюта прибыли |
string |
SYMBOL_CURRENCY_MARGIN |
Валюта в которой вычисляется залоговые средства |
string |
SYMBOL_BANK |
Источник текущей котировки |
string |
SYMBOL_DESCRIPTION |
Строковое описание символа |
string |
SYMBOL_ISIN |
Имя торгового символа в системе международных идентификационных кодов ценных бумаг — ISIN (International Securities Identification Number). Международный идентификационный код ценной бумаги — это 12-разрядный буквенно-цифровой код, однозначно идентифицирующий ценную бумагу. Наличие данного свойства символа определяется на стороне торгового сервера. |
string |
SYMBOL_PATH |
Путь в дереве символов |
string |
Для каждого финансового инструмента могут быть указаны несколько режимов срока действия (истечения) отложенных ордеров. Каждому режиму сопоставлен флаг, флаги могут комбинироваться операцией логического ИЛИ (|), например, SYMBOL_EXPIRATION_GTC|SYMBOL_EXPIRATION_SPECIFIED. Чтобы проверить разрешенность конкретного режима для инструмента, необходимо результат логического И (&) сравнить с флагом режима.
Если для символа указан флаг SYMBOL_EXPIRATION_SPECIFIED, то при отправке отложенного ордера можно конкретно указать, до какого момента действует данный отложенный ордер.
Идентификатор |
Значение |
Описание |
SYMBOL_EXPIRATION_GTC |
1 |
Ордер действителен неограниченно по времени до явной его отмены |
SYMBOL_EXPIRATION_DAY |
2 |
Ордер действителен до конца дня |
SYMBOL_EXPIRATION_SPECIFIED |
4 |
Срок истечения указывается в ордере |
SYMBOL_EXPIRATION_SPECIFIED_DAY |
8 |
День истечения указывается в ордере |
Пример:
//+------------------------------------------------------------------+ |
При отправке ордера можно указать политику заполнения заявленного в торговом приказе объема. Допустимые варианты исполнения ордера по объему для каждого символа указаны таблице. Для каждого инструмента может быть установлен не один режим, а несколько через комбинацию флагов. Комбинация флагов выражается операцией логического ИЛИ (|), например, SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC. Чтобы проверить разрешенность конкретного режима для инструмента, необходимо результат логического И (&) сравнить с флагом режима.
Политика заполнения |
Идентификатор |
Значение |
Описание |
Все/Ничего |
SYMBOL_FILLING_FOK |
1 |
Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме. Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен. Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке. |
Все/Частично |
SYMBOL_FILLING_IOC |
2 |
В данном случае трейдер соглашается совершить сделку по максимально доступному на рынке объему в пределах указанного в ордере. В случае невозможности полного исполнения ордер будет исполнен на доступный объем, а неисполненный объем ордера будет отменен. Возможность использования IOC ордеров определяется на торговом сервере. |
Вернуть |
Идентификатор отсутствует |
|
Данный режим используется для рыночных (Buy и Sell), лимитных и стоп-лимитных ордеров и только в режимах "Исполнение по рынку" и "Биржевое исполнение". В случае частичного исполнения рыночный или лимитный ордер с остаточным объемом не снимается, а продолжает действовать. |
В режимах исполнения "По запросу" и "Немедленный" для рыночных ордеров всегда используется политика заполнения Все/Ничего, а для лимитных ордеров - режим "Вернуть". В данном случае, при от отсылке ордеров функциями OrderSend или OrderSendAsync тип заполнения для них можно не указывать.
В режимах исполнения "По рынку" и "Биржевой" политика заполнения "Вернуть" всегда разрешена для всех типов ордеров. Разрешенность остальных типов проверяется при помощи свойств SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC.
Пример:
//+------------------------------------------------------------------+ |
При отправке торгового запроса функцией OrderSend() для некоторых операций необходимо указать тип ордера из перечисления ENUM_ORDER_TYPE. Не все типы ордеров могут быть разрешены для конкретного финансового инструмента, свойство SYMBOL_ORDER_MODE описывает флаги разрешенных типов ордеров.
Идентификатор |
Значение |
Описание |
SYMBOL_ORDER_MARKET |
1 |
Разрешены рыночные ордера (Buy и Sell) |
SYMBOL_ORDER_LIMIT |
2 |
Разрешены лимитные ордера (Buy Limit и Sell Limit) |
SYMBOL_ORDER_STOP |
4 |
Разрешены стоп-ордера (Buy Stop и Sell Stop) |
SYMBOL_ORDER_STOP_LIMIT |
8 |
Разрешены стоп-лимит ордера (Buy Stop Limit и Sell Stop Limit) |
SYMBOL_ORDER_SL |
16 |
Разрешена установка Stop Loss |
SYMBOL_ORDER_TP |
32 |
Разрешена установка Take Profit |
Пример:
//+------------------------------------------------------------------+ |
Для получения информации о способе вычисления величины залоговых средств по инструменту (размера маржинальных требований) предназначено перечисление ENUM_SYMBOL_CALC_MODE.
Идентификатор |
Описание |
Формула |
SYMBOL_CALC_MODE_FOREX |
Forex mode – расчет прибыли и маржи для Форекс |
Margin: Lots*Contract_Size/Leverage Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_FUTURES |
Futures mode – расчет залога и прибыли для фьючерсов |
Margin: Lots *InitialMargin*Percentage/100 Profit: (close_price-open_price)*TickPrice/TickSize*Lots |
SYMBOL_CALC_MODE_CFD |
CFD mode – расчет залога и прибыли для CFD |
Margin: Lots *ContractSize*MarketPrice*Percentage/100 Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_CFDINDEX |
CFD index mode – расчет залога и прибыли для CFD на индексы |
Margin: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_CFDLEVERAGE |
CFD Leverage mode – расчет залога и прибыли для CFD при торговле с плечом |
Margin: (Lots*ContractSize*MarketPrice*Percentage)/Leverage Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_EXCH_STOCKS |
Exchange mode – расчет залога и прибыли для торговли ценными бумагами на бирже |
Margin: Lots*ContractSize*OpenPrice Profit: (close_price-open_price)*Contract_Size*Lots |
SYMBOL_CALC_MODE_EXCH_FUTURES |
Futures mode – расчет залога и прибыли для торговли фьючерсными контрактами на бирже |
Margin: Lots*InitialMargin или Lots*MaintenanceMargin Profit: (close_price-open_price)*Lots*TickPrice/TickSize |
SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS |
FORTS Futures mode – расчет залога и прибыли для торговли фьючерсными контрактами на FORTS. Размер маржи может уменьшаться на величину отклонения MarginDiscount по следующим правилам: 1. Если цена длинной позиции (ордера на покупку) меньше расчетной цены, то MarginDiscount = Lots*((PriceSettle-PriceOrder)*TickPrice/TickSize) 2. Если цена короткой позиций (ордера на продажу) больше расчетной цены, то MarginDiscount = Lots*((PriceOrder-PriceSettle)*TickPrice/TickSize) где: oPriceSettle – расчетная (клиринговая) цена предыдущей сессии; oPriceOrder – средневзвешенная цена позиции или цена открытия, указанная в ордере (заявке); oTickPrice – цена тика (стоимость изменения цены на один пункт); oTickSize – размер тика (минимальный шаг изменения цены) |
Margin: Lots*InitialMargin или Lots*MaintenanceMargin Profit: (close_price-open_price)*Lots*TickPrice/TickSize |
Существует несколько режимов торговли по финансовым инструментам. Информация о режимах торговли по конкретному инструменту отображена в значениях перечисления 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.
Идентификатор |
Описание |
SYMBOL_TRADE_EXECUTION_REQUEST |
Торговля по запросу |
SYMBOL_TRADE_EXECUTION_INSTANT |
Торговля по потоковым ценам |
SYMBOL_TRADE_EXECUTION_MARKET |
Исполнение ордеров по рынку |
SYMBOL_TRADE_EXECUTION_EXCHANGE |
Биржевое исполнение |
Способы начисления свопов при переносе позиции указаны в перечислении ENUM_SYMBOL_SWAP_MODE. Способ начисления свопов определяет единицы измерения параметров SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT. Например, если свопы начисляются в валюте депозита клиента, в параметрах объем начисляемых свопов указывается именно в валюте депозита клиента.
Идентификатор |
Описание |
SYMBOL_SWAP_MODE_DISABLED |
Нет свопов |
SYMBOL_SWAP_MODE_POINTS |
Свопы начисляются в пунктах |
SYMBOL_SWAP_MODE_CURRENCY_SYMBOL |
Свопы начисляются в деньгах в базовой валюте символа |
SYMBOL_SWAP_MODE_CURRENCY_MARGIN |
Свопы начисляются в деньгах в маржинальной валюте символа |
SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT |
Свопы начисляются в деньгах в валюте депозита клиента |
SYMBOL_SWAP_MODE_INTEREST_CURRENT |
Свопы начисляются в годовых процентах от цены инструмента на момент расчета свопа(банковский режим – 360 дней в году) |
SYMBOL_SWAP_MODE_INTEREST_OPEN |
Свопы начисляются в годовых процентах от цены открытия позиции по символу (банковский режим – 360 дней в году) |
SYMBOL_SWAP_MODE_REOPEN_CURRENT |
Свопы начисляются переоткрытием позиции. В конце торгового дня позиция принудительно закрывается. На следующий день позиция переоткрывается по цене закрытия +/- указанное количество пунктов (в параметрах SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT) |
SYMBOL_SWAP_MODE_REOPEN_BID |
Свопы начисляются переоткрытием позиции. В конце торгового дня позиция принудительно закрывается. На следующий день позиция переоткрывается по текущей цене Bid +/- указанное количество пунктов (в параметрах SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT) |
Для указания дня недели предназначены значения перечисления ENUM_DAY_OF_WEEK.
Идентификатор |
Описание |
SUNDAY |
Воскресенье |
MONDAY |
Понедельник |
TUESDAY |
Вторник |
WEDNESDAY |
Среда |
THURSDAY |
Четверг |
FRIDAY |
Пятница |
SATURDAY |
Суббота |