SymbolInfoCommissions

Gibt die Regeln zur Kommissionsberechnung für das angegebene Finanzinstrument zurück.

int  SymbolInfoCommissions(
   string           name,              // Symbolname
   MqlCommission&   commissions[]      // Array der Kommissionsregeln
   );

Parameter

name

[in]  Symbolname. Wenn der Parameter NULL ist, wird das aktuelle Symbol verwendet.

commissions

[out]  Dynamisches Array von MqlCommission-Strukturen, in das die Kommissionsregeln für das angegebene Symbol geschrieben werden.

Rückgabewert

Bei erfolgreicher Ausführung gibt die Funktion die Anzahl der in commissions geschriebenen Elemente zurück.

Im Fehlerfall wird -1 zurückgegeben. Um Informationen über den Fehler zu erhalten, verwenden Sie GetLastError().

Hinweis

Jedes Element des Arrays commissions beschreibt eine separate Kommissionsregel. Die allgemeinen Bedingungen für die Anwendung der Kommission werden durch die Felder der Struktur MqlCommission festgelegt, während konkrete Kommissionswerte und Bereiche im Array tiers definiert werden.

Wenn für das Symbol keine Kommissionsregeln angegeben sind, gibt die Funktion 0 zurück.

Wenn name den Namen eines nicht vorhandenen oder nicht verfügbaren Symbols angibt, gibt die Funktion -1 zurück.

Beispiel:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ein dynamisches Array zum Empfangen der Kommissionsregeln deklarieren
   MqlCommission commissions[];
 
//--- Kommissionsregeln für das aktuelle Symbol abrufen.
//--- wenn anstelle von NULL ein Symbolname angegeben wird, gibt die Funktion die Kommissionen für dieses Symbol zurück.
   int total=SymbolInfoCommissions(NULL,commissions);
 
//--- Ergebnis der Funktionsausführung prüfen
   if(total<0)
     {
      //--- im Fehlerfall den Fehlercode ausgeben
      PrintFormat("SymbolInfoCommissions failed. Error %d",GetLastError());
      return;
     }
 
//--- Anzahl der empfangenen Kommissionsregeln ausgeben
   PrintFormat("Commission rules: %d",total);
 
//--- alle Kommissionsregeln durchlaufen
   for(int i=0;i<total;i++)
     {
      //--- Hauptparameter der Kommissionsregel ausgeben:
      //--- Währung, Bereichsauswahlmodus und Berechnungsmodus
      PrintFormat("Rule %d: currency=%s, range mode=%d, charge mode=%d",
                  i,
                  commissions[i].currency,
                  commissions[i].mode_range,
                  commissions[i].mode_charge);
 
      //--- Anzahl der Kommissionsstufen in der aktuellen Regel abrufen
      int tiers_total=ArraySize(commissions[i].tiers);
 
      //--- Kommissionsstufen durchlaufen
      for(int j=0;j<tiers_total;j++)
        {
         //--- Parameter der Kommissionsstufe ausgeben:
         //--- Berechnungsmodus, Wert, anwendbarer Bereich und Währung
         PrintFormat("  Tier %d: mode=%d, value=%G, range=%G - %G, currency=%s",
                     j,
                     commissions[i].tiers[j].mode,
                     commissions[i].tiers[j].value,
                     commissions[i].tiers[j].range_from,
                     commissions[i].tiers[j].range_to,
                     commissions[i].tiers[j].currency);
        }
     }
  }

 

Symbolkommissionen

Dieser Abschnitt beschreibt Enumerationen und Strukturen, die zur Darstellung von Kommissionsregeln für ein Finanzinstrument verwendet werden.

Die Kommission kann als Geldbetrag, Punkte, Prozentsatz oder Prozentsatz des Gewinns angegeben und außerdem nach Volumen-, Umsatz-, Geschäftswert- oder Gewinnbereichen berechnet werden. Eine einzelne Kommissionsregel kann mehrere Stufen, MqlCommissionTier, enthalten.

ENUM_SYMBOL_COMMISSION_MODE

Die Enumeration ENUM_SYMBOL_COMMISSION_MODE definiert die Methode zur Kommissionsberechnung.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_DISABLED

Die Kommission ist deaktiviert.

SYMBOL_COMMISSION_MONEY_DEPOSIT

Die Kommission wird in der Einzahlungswährung der Handelsgruppe/des Kontos angegeben.

SYMBOL_COMMISSION_MONEY_SYMBOL_BASE

Die Kommission wird in der Basiswährung des Finanzinstruments angegeben.

SYMBOL_COMMISSION_MONEY_SYMBOL_PROFIT

Die Kommission wird in der Gewinnwährung des Finanzinstruments angegeben.

SYMBOL_COMMISSION_MONEY_SYMBOL_MARGIN

Die Kommission wird in der Margin-Währung des Finanzinstruments angegeben.

SYMBOL_COMMISSION_PIPS

Die Kommission wird in Punkten angegeben.

SYMBOL_COMMISSION_PERCENT

Die Kommission wird als Prozentsatz angegeben.

SYMBOL_COMMISSION_MONEY_SPECIFIED

Die Kommission wird in der angegebenen Währung angegeben. Die Währung wird im entsprechenden Feld der Kommissionsstruktur oder Kommissionsstufe angegeben.

SYMBOL_COMMISSION_PERCENT_PROFIT

Die Kommission wird als Prozentsatz des Gewinns angegeben.

ENUM_SYMBOL_COMMISSION_VOLUME_TYPE

Die Enumeration ENUM_SYMBOL_COMMISSION_VOLUME_TYPE definiert, wie der Kommissionswert auf einen Handelsvorgang angewendet wird.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_VOLUME_TYPE_TRADE

Die Kommission wird pro Geschäft berechnet.

SYMBOL_COMMISSION_VOLUME_TYPE_VOLUME

Die Kommission wird proportional zum Geschäftsvolumen berechnet.

SYMBOL_COMMISSION_VOLUME_TYPE_TURNOVER

Die Kommission wird nach Umsatz berechnet.

ENUM_SYMBOL_COMMISSION_RANGE_MODE

Die Enumeration ENUM_SYMBOL_COMMISSION_RANGE_MODE definiert den Indikator zur Auswahl des Kommissionsbereichs.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_RANGE_VOLUME

Der Bereich wird durch das Geschäftsvolumen bestimmt.

SYMBOL_COMMISSION_RANGE_TURNOVER_MONEY

Der Bereich wird durch den Geldumsatz bestimmt.

SYMBOL_COMMISSION_RANGE_TURNOVER_VOLUME

Der Bereich wird durch den Volumenumsatz bestimmt.

SYMBOL_COMMISSION_RANGE_VALUE

Der Bereich wird durch den Geschäftswert bestimmt.

SYMBOL_COMMISSION_RANGE_PROFIT

Der Bereich wird durch den Gewinn bestimmt.

ENUM_SYMBOL_COMMISSION_CHARGE_MODE

Die Enumeration ENUM_SYMBOL_COMMISSION_CHARGE_MODE definiert, wann die Kommission berechnet wird.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_CHARGE_DAILY

Die Kommission wird am Ende des Tages berechnet.

SYMBOL_COMMISSION_CHARGE_MONTHLY

Die Kommission wird am Ende des Monats berechnet.

SYMBOL_COMMISSION_CHARGE_INSTANT

Die Kommission wird sofort berechnet, wenn das Geschäft ausgeführt wird.

ENUM_SYMBOL_COMMISSION_ENTRY_MODE

Die Enumeration ENUM_SYMBOL_COMMISSION_ENTRY_MODE definiert, in welcher Phase eines Handelsvorgangs die Kommission berechnet wird.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_ENTRY_INOUT

Die Kommission wird beim Einstieg und beim Ausstieg aus einer Position berechnet.

SYMBOL_COMMISSION_ENTRY_IN

Die Kommission wird beim Einstieg in eine Position berechnet.

SYMBOL_COMMISSION_ENTRY_OUT

Die Kommission wird beim Ausstieg aus einer Position berechnet.

ENUM_SYMBOL_COMMISSION_DIRECTION_MODE

Die Enumeration ENUM_SYMBOL_COMMISSION_DIRECTION_MODE definiert die Richtung der Geschäfte, auf die die Kommission angewendet wird.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_DIRECTION_BOTH

Die Kommission gilt für Kauf- und Verkaufsgeschäfte.

SYMBOL_COMMISSION_DIRECTION_BUY

Die Kommission gilt nur für Kaufgeschäfte.

SYMBOL_COMMISSION_DIRECTION_SELL

Die Kommission gilt nur für Verkaufsgeschäfte.

ENUM_SYMBOL_COMMISSION_PROFIT_MODE

Die Enumeration ENUM_SYMBOL_COMMISSION_PROFIT_MODE definiert, ob die Kommission abhängig vom finanziellen Ergebnis des Geschäfts angewendet wird.

Bezeichner

Beschreibung

SYMBOL_COMMISSION_PROFIT_ALL

Die Kommission gilt für alle Geschäfte.

SYMBOL_COMMISSION_PROFIT_PROFIT

Die Kommission gilt nur für profitable Geschäfte.

SYMBOL_COMMISSION_PROFIT_LOSS

Die Kommission gilt nur für verlustreiche Geschäfte.

 

MqlCommissionTier

Die Struktur MqlCommissionTier beschreibt eine Kommissionsstufe.

struct MqlCommissionTier
  {
   ENUM_SYMBOL_COMMISSION_MODE           mode;
   ENUM_SYMBOL_COMMISSION_VOLUME_TYPE    volume_type;
   double                                value;
   double                                min_value;
   double                                max_value;
   double                                range_from;
   double                                range_to;
   string                                currency;
  };

Feldbeschreibung

Feld

Typ

Beschreibung

mode

ENUM_SYMBOL_COMMISSION_MODE

Methode zur Kommissionsberechnung für diese Stufe.

volume_type

ENUM_SYMBOL_COMMISSION_VOLUME_TYPE

Methode zur Anwendung des Kommissionswerts: pro Geschäft, nach Volumen oder nach Umsatz.

value

double

Kommissionswert. Die Interpretation des Wertes hängt vom Feld mode ab: Geldbetrag, Anzahl der Punkte, Prozentsatz oder Prozentsatz des Gewinns.

min_value

double

Minimaler Kommissionswert für diese Stufe.

max_value

double

Maximaler Kommissionswert für diese Stufe.

range_from

double

Untere Grenze des Bereichs, für den diese Kommissionsstufe gilt.

range_to

double

Obere Grenze des Bereichs, für den diese Kommissionsstufe gilt.

currency

string

Kommissionswährung. Wird für Modi verwendet, in denen die Kommission in einer ausdrücklich festgelegten Währung angegeben wird, zum Beispiel SYMBOL_COMMISSION_MONEY_SPECIFIED.

Hinweis

Der Bereich der Kommissionsstufe wird durch range_from und range_to bestimmt. Der zur Auswahl des Bereichs verwendete Indikator wird im Feld mode_range der Struktur MqlCommission angegeben.

Wenn die Kommission mit SYMBOL_COMMISSION_DISABLED deaktiviert ist, werden die übrigen Stufenparameter nicht zur Kommissionsberechnung verwendet.

 

MqlCommission

Die Struktur MqlCommission beschreibt eine Kommissionsregel für ein Finanzinstrument.

struct MqlCommission
  {
   string                                   currency;
   ENUM_SYMBOL_COMMISSION_RANGE_MODE        mode_range;
   ENUM_SYMBOL_COMMISSION_CHARGE_MODE       mode_charge;
   ENUM_SYMBOL_COMMISSION_ENTRY_MODE        mode_entry;
   ENUM_SYMBOL_COMMISSION_DIRECTION_MODE    mode_direction;
   ENUM_SYMBOL_COMMISSION_PROFIT_MODE       mode_profit;
   MqlCommissionTier                        tiers[];
  };

Feldbeschreibung

Feld

Typ

Beschreibung

currency

string

Für die Kommissionsregel angegebene Währung. Wird bei der Kommissionsberechnung in Modi verwendet, die eine ausdrücklich festgelegte Währung erfordern.

mode_range

ENUM_SYMBOL_COMMISSION_RANGE_MODE

Indikator zur Auswahl des Kommissionsbereichs: Volumen, Geldumsatz, Volumenumsatz, Geschäftswert oder Gewinn.

mode_charge

ENUM_SYMBOL_COMMISSION_CHARGE_MODE

Zeitpunkt der Kommissionsberechnung: am Ende des Tages, am Ende des Monats oder sofort bei Ausführung des Geschäfts.

mode_entry

ENUM_SYMBOL_COMMISSION_ENTRY_MODE

Phase des Handelsvorgangs, in der die Kommission berechnet wird: Einstieg, Ausstieg oder Einstieg und Ausstieg.

mode_direction

ENUM_SYMBOL_COMMISSION_DIRECTION_MODE

Richtung der Geschäfte, auf die die Kommission angewendet wird: Kauf, Verkauf oder beide Richtungen.

mode_profit

ENUM_SYMBOL_COMMISSION_PROFIT_MODE

Bedingung für die Anwendung der Kommission abhängig vom finanziellen Ergebnis des Geschäfts.

tiers

MqlCommissionTier[]

Dynamisches Array von Kommissionsstufen. Jedes Arrayelement beschreibt einen separaten Bereich und die Parameter zur Kommissionsberechnung für diesen Bereich.

Hinweis

Die Struktur MqlCommission legt die allgemeinen Bedingungen für die Anwendung der Kommission fest, während das Array tiers Kommissionsstufen mit konkreten Werten und Bereichen enthält.

Bei der Kommissionsberechnung werden zuerst die allgemeinen Regelbedingungen geprüft: Geschäftsrichtung, Einstiegs- oder Ausstiegsphase, finanzielles Ergebnis, Berechnungszeitpunkt und Berechnungsgrund. Danach wird anhand des Wertes mode_range die passende Stufe aus dem Array tiers ausgewählt.

Wenn das Array tiers leer ist, sind für diese Regel keine Kommissionsstufen angegeben.

 

Siehe auch

SymbolsTotal, SymbolSelect, SymbolInfoMarginRate