- 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