Информация об инструменте
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно.
Для функции SymbolInfoInteger()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_SELECT |
Признак того, что символ выбран в Market Watch |
bool |
SYMBOL_VOLUME |
Volume - объем в последней сделке |
long |
SYMBOL_VOLUMEHIGH |
Максимальный Volume за день |
long |
SYMBOL_VOLUMELOW |
Минимальный Volume за день |
long |
SYMBOL_VOLUMEBID |
Объем в текущем Bid |
long |
SYMBOL_VOLUMEASK |
Объем в текущем Ask |
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 |
Для функции 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 |
Максимально допустимый совокупный объем открытой позиции и отложенных ордеров (вне зависимости от направления) на одном символе |
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 |
Для функции SymbolInfoString()
Идентификатор |
Описание |
Тип свойства |
SYMBOL_CURRENCY_BASE |
Базовая валюта инструмента |
string |
SYMBOL_CURRENCY_PROFIT |
Валюта прибыли |
string |
SYMBOL_CURRENCY_MARGIN |
Валюта в которой вычисляется залоговые средства |
string |
SYMBOL_BANK |
Источник текущей котировки |
string |
SYMBOL_DESCRIPTION |
Строковое описание символа |
string |
SYMBOL_PATH |
Путь в дереве символов |
string |
Для каждого финансового инструмента могут быть указаны несколько режимов срока действия (истечения) отложенных ордеров. Каждому режиму сопоставлен флаг, флаги могут комбинироваться операцией логического ИЛИ (|), например, SYMBOL_EXPIRATION_GTC|SYMBOL_EXPIRATION_SRECIFIED. Чтобы проверить разрешенность конкретного режима для инструмента, необходимо результат логического И (&) сравнить с флагом режима.
Если для символа указан флаг SYMBOL_EXPIRATION_SRECIFIED, то при отправке отложенного ордера можно конкретно указать, до какого момента действует данный отложенный ордер.
Идентификатор |
Значение |
Описание |
SYMBOL_EXPIRATION_GTC |
1 |
Ордер действителен неограниченно по времени до явной его отмены |
SYMBOL_EXPIRATION_DAY |
2 |
Ордер действителен до конца дня |
SYMBOL_EXPIRATION_SRECIFIED |
4 |
Срок истечения указывается в ордере |
Пример:
//+------------------------------------------------------------------+ |
При отправке ордера можно указать политику заполнения заявленного в торговом приказе объема. Допустимые варианты исполнения ордера по объему для каждого символа указаны таблице. Для каждого инструмента может быть установлен не один режим, а несколько через комбинацию флагов. Комбинация флагов выражается операцией логического ИЛИ (|), например, SYMBOL_FILLING_ALL_OR_NONE|SYMBOL_CANCEL_REMAIND. Чтобы проверить разрешенность конкретного режима для инструмента, необходимо результат логического И (&) сравнить с флагом режима.
Идентификатор |
Значение |
Описание |
SYMBOL_FILLING_ALL_OR_NONE |
1 |
Указано "Все или ничего", если необходимый объем в ордере по указанной цене не набирается, то ордер отменяется и сделка не проводится |
SYMBOL_CANCEL_REMAIND |
2 |
Если по указанной в ордере цене сделку можно заполнить только частично, то совершается сделка на доступный объем. Остаток по ордеру снимается, новый ордер не выставляется |
SYMBOL_RETURN_REMAIND |
4 |
Совершается сделка по указанной в заявке цене в пределах доступного объема. На остаток от заполнения выставляется новый ордер по той же цене |
Пример:
//+------------------------------------------------------------------+ |
Для получения информации о способе вычисления величины залоговых средств по инструменту (размера маржинальных требований) предназначено перечисление 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 |
Существует несколько режимов торговли по финансовым инструментам. Информация о режимах торговли по конкретному инструменту отображена в значениях перечисления 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 |
Исполнение ордеров по рынку |
Способы начисления свопов при переносе позиции указаны в перечислении ENUM_SYMBOL_SWAP_MODE.
Идентификатор |
Описание |
SYMBOL_SWAP_MODE_DISABLED |
Нет свопов |
SYMBOL_SWAP_MODE_BY_POINTS |
Свопы начисляются в пунктах |
SYMBOL_SWAP_MODE_BY_MONEY |
Свопы начисляются в деньгах, размер свопа в свойствах символа указан в валюте депозита клиента. |
SYMBOL_SWAP_MODE_BY_INTEREST |
Свопы начисляются в годовых процентах (банковский режим – 360 дней в году) |
SYMBOL_SWAP_MODE_BY_MARGIN_CURRENCY |
Свопы начисляются в деньгах, размер свопа в свойствах символа указан в маржинальной валюте символа. |
Для указания дня недели предназначены значения перечисления ENUM_DAY_OF_WEEK.
Идентификатор |
Описание |
SUNDAY |
Воскресенье |
MONDAY |
Понедельник |
TUESDAY |
Вторник |
WEDNESDAY |
Среда |
THURSDAY |
Четверг |
FRIDAY |
Пятница |
SATURDAY |
Суббота |
© 2000-2010, MetaQuotes Software Corp.
