- 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 确定。用于选择范围的指标在 MqlCommission 结构的 mode_range 字段中指定。
如果使用 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