- SymbolsTotal
- SymbolExist
- SymbolName
- SymbolSelect
- SymbolIsSynchronized
- SymbolInfoCommissions
- SymbolInfoDouble
- SymbolInfoInteger
- SymbolInfoString
- SymbolInfoMarginRate
- SymbolInfoTick
- SymbolInfoSessionQuote
- SymbolInfoSessionTrade
- MarketBookAdd
- MarketBookRelease
- MarketBookGet
SymbolInfoCommissions
Возвращает правила начисления комиссии для указанного торгового инструмента.
int SymbolInfoCommissions(
|
Параметры
name
[in] Имя символа. Если параметр равен NULL, используется текущий символ.
commissions
[out] Динамический массив структур MqlCommission, в который будут записаны правила начисления комиссии для указанного символа.
Возвращаемое значение
В случае успешного выполнения функция возвращает количество элементов, записанных в массив commissions.
В случае ошибки возвращается -1. Для получения информации об ошибке можно использовать функцию GetLastError().
Примечание
Каждый элемент массива commissions описывает отдельное правило начисления комиссии. Общие условия применения комиссии задаются полями структуры MqlCommission, а конкретные значения и диапазоны комиссии — массивом уровней tiers.
Если для символа не заданы правила комиссии, функция возвращает 0.
Если в параметре name указано имя несуществующего или недоступного символа, функция возвращает -1.
Пример:
//+------------------------------------------------------------------+
|
Комиссии торгового инструмента
В этом разделе описаны перечисления и структуры, используемые для представления правил начисления комиссии по торговому инструменту.
Комиссия может задаваться в денежном выражении, пунктах, процентах, процентах от прибыли, а также рассчитываться по диапазонам объема, оборота, стоимости сделки или прибыли. Для одного правила комиссии может быть задано несколько уровней — MqlCommissionTier.
Перечисление ENUM_SYMBOL_COMMISSION_MODE определяет способ расчета комиссии.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_DISABLED |
Комиссия отключена. |
SYMBOL_COMMISSION_MONEY_DEPOSIT |
Комиссия задается в валюте депозита торговой группы/счета. |
SYMBOL_COMMISSION_MONEY_SYMBOL_BASE |
Комиссия задается в базовой валюте торгового инструмента. |
SYMBOL_COMMISSION_MONEY_SYMBOL_PROFIT |
Комиссия задается в валюте прибыли торгового инструмента. |
SYMBOL_COMMISSION_MONEY_SYMBOL_MARGIN |
Комиссия задается в валюте маржи торгового инструмента. |
SYMBOL_COMMISSION_PIPS |
Комиссия задается в пунктах. |
SYMBOL_COMMISSION_PERCENT |
Комиссия задается в процентах. |
SYMBOL_COMMISSION_MONEY_SPECIFIED |
Комиссия задается в указанной валюте. Валюта указывается в соответствующем поле структуры комиссии или уровня комиссии. |
SYMBOL_COMMISSION_PERCENT_PROFIT |
Комиссия задается как процент от прибыли. |
ENUM_SYMBOL_COMMISSION_VOLUME_TYPE
Перечисление ENUM_SYMBOL_COMMISSION_VOLUME_TYPE определяет, как значение комиссии применяется к торговой операции.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_VOLUME_TYPE_TRADE |
Комиссия начисляется за сделку. |
SYMBOL_COMMISSION_VOLUME_TYPE_VOLUME |
Комиссия рассчитывается пропорционально объему сделки. |
SYMBOL_COMMISSION_VOLUME_TYPE_TURNOVER |
Комиссия рассчитывается по обороту. |
ENUM_SYMBOL_COMMISSION_RANGE_MODE
Перечисление ENUM_SYMBOL_COMMISSION_RANGE_MODE определяет показатель, по которому выбирается диапазон комиссии.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_RANGE_VOLUME |
Диапазон определяется по объему сделки. |
SYMBOL_COMMISSION_RANGE_TURNOVER_MONEY |
Диапазон определяется по денежному обороту. |
SYMBOL_COMMISSION_RANGE_TURNOVER_VOLUME |
Диапазон определяется по объемному обороту. |
SYMBOL_COMMISSION_RANGE_VALUE |
Диапазон определяется по стоимости сделки. |
SYMBOL_COMMISSION_RANGE_PROFIT |
Диапазон определяется по прибыли. |
ENUM_SYMBOL_COMMISSION_CHARGE_MODE
Перечисление ENUM_SYMBOL_COMMISSION_CHARGE_MODE определяет момент начисления комиссии.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_CHARGE_DAILY |
Комиссия начисляется в конце дня. |
SYMBOL_COMMISSION_CHARGE_MONTHLY |
Комиссия начисляется в конце месяца. |
SYMBOL_COMMISSION_CHARGE_INSTANT |
Комиссия начисляется сразу при выполнении сделки. |
ENUM_SYMBOL_COMMISSION_ENTRY_MODE
Перечисление ENUM_SYMBOL_COMMISSION_ENTRY_MODE определяет, на каком этапе торговой операции начисляется комиссия.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_ENTRY_INOUT |
Комиссия начисляется при входе в позицию и при выходе из позиции. |
SYMBOL_COMMISSION_ENTRY_IN |
Комиссия начисляется при входе в позицию. |
SYMBOL_COMMISSION_ENTRY_OUT |
Комиссия начисляется при выходе из позиции. |
ENUM_SYMBOL_COMMISSION_DIRECTION_MODE
Перечисление ENUM_SYMBOL_COMMISSION_DIRECTION_MODE определяет направление сделок, к которым применяется комиссия.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_DIRECTION_BOTH |
Комиссия применяется к сделкам покупки и продажи. |
SYMBOL_COMMISSION_DIRECTION_BUY |
Комиссия применяется только к сделкам покупки. |
SYMBOL_COMMISSION_DIRECTION_SELL |
Комиссия применяется только к сделкам продажи. |
ENUM_SYMBOL_COMMISSION_PROFIT_MODE
Перечисление ENUM_SYMBOL_COMMISSION_PROFIT_MODE определяет, применяется ли комиссия в зависимости от финансового результата сделки.
Идентификатор |
Описание |
|---|---|
SYMBOL_COMMISSION_PROFIT_ALL |
Комиссия применяется ко всем сделкам. |
SYMBOL_COMMISSION_PROFIT_PROFIT |
Комиссия применяется только к прибыльным сделкам. |
SYMBOL_COMMISSION_PROFIT_LOSS |
Комиссия применяется только к убыточным сделкам. |
Структура MqlCommissionTier описывает один уровень комиссии.
struct MqlCommissionTier
|
Описание полей
Поле |
Тип |
Описание |
|---|---|---|
mode |
ENUM_SYMBOL_COMMISSION_MODE |
Способ расчета комиссии для данного уровня. |
volume_type |
ENUM_SYMBOL_COMMISSION_VOLUME_TYPE |
Способ применения значения комиссии: за сделку, по объему или по обороту. |
value |
double |
Значение комиссии. Интерпретация значения зависит от поля mode: денежная сумма, количество пунктов, процент или процент от прибыли. |
min_value |
double |
Минимальное значение комиссии для данного уровня. |
max_value |
double |
Максимальное значение комиссии для данного уровня. |
range_from |
double |
Нижняя граница диапазона, для которого применяется данный уровень комиссии. |
range_to |
double |
Верхняя граница диапазона, для которого применяется данный уровень комиссии. |
currency |
string |
Валюта комиссии. Используется для режимов, в которых комиссия задается в явно указанной валюте, например SYMBOL_COMMISSION_MONEY_SPECIFIED. |
Примечание
Диапазон уровня комиссии определяется полями range_from и range_to. Показатель, по которому выбирается диапазон, задается в поле mode_range структуры MqlCommission.
Если комиссия отключена с помощью SYMBOL_COMMISSION_DISABLED, остальные параметры уровня не используются для начисления комиссии.
Структура MqlCommission описывает правило начисления комиссии по торговому инструменту.
struct MqlCommission
|
Описание полей
Поле |
Тип |
Описание |
|---|---|---|
currency |
string |
Валюта, заданная для правила комиссии. Используется при расчете комиссии в режимах, где требуется явно указанная валюта. |
mode_range |
ENUM_SYMBOL_COMMISSION_RANGE_MODE |
Показатель, по которому выбирается диапазон комиссии: объем, денежный оборот, объемный оборот, стоимость сделки или прибыль. |
mode_charge |
ENUM_SYMBOL_COMMISSION_CHARGE_MODE |
Момент начисления комиссии: в конце дня, в конце месяца или сразу при выполнении сделки. |
mode_entry |
ENUM_SYMBOL_COMMISSION_ENTRY_MODE |
Этап торговой операции, на котором начисляется комиссия: вход, выход или вход и выход. |
mode_direction |
ENUM_SYMBOL_COMMISSION_DIRECTION_MODE |
Направление сделок, к которым применяется комиссия: покупка, продажа или оба направления. |
mode_profit |
ENUM_SYMBOL_COMMISSION_PROFIT_MODE |
Условие применения комиссии в зависимости от финансового результата сделки. |
tiers |
MqlCommissionTier[] |
Динамический массив уровней комиссии. Каждый элемент массива описывает отдельный диапазон и параметры расчета комиссии для этого диапазона. |
Примечание
Структура MqlCommission задает общие условия применения комиссии, а массив tiers содержит уровни комиссии с конкретными значениями и диапазонами.
При расчете комиссии сначала проверяются общие условия правила: направление сделки, этап входа или выхода, финансовый результат, момент начисления и причина начисления. Затем по значению mode_range выбирается подходящий уровень из массива tiers.
Если массив tiers пуст, уровни комиссии для данного правила не заданы.
Смотри также
SymbolsTotal, SymbolSelect, SymbolInfoMarginRate