SymbolInfoCommissions

Belirtilen finansal araç için komisyon tahsilat kurallarını döndürür.

int  SymbolInfoCommissions(
   string           name,              // sembol adı
   MqlCommission&   commissions[]      // komisyon kuralları dizisi
   );

Parametreler

name

[in]  Sembol adı. Parametre NULL ise geçerli sembol kullanılır.

commissions

[out] MqlCommission yapılarından oluşan dinamik dizi. Belirtilen sembolün komisyon tahsilat kuralları buraya yazılır.

Dönüş Değeri

Başarılı olursa, fonksiyon commissions dizisine yazılan öğe sayısını döndürür.

Hata durumunda -1 döndürülür. Hata hakkında bilgi almak için GetLastError() kullanın.

Not

commissions dizisinin her öğesi ayrı bir komisyon tahsilat kuralını açıklar. Komisyonun uygulanmasına ilişkin genel koşullar MqlCommission yapısının alanlarıyla belirlenir, belirli komisyon değerleri ve aralıkları ise tiers dizisinde tanımlanır.

Sembol için komisyon kuralları belirtilmemişse fonksiyon 0 döndürür.

name var olmayan veya kullanılamayan bir sembol adı belirtirse fonksiyon -1 döndürür.

Örnek:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- komisyon tahsilat kurallarını almak için dinamik dizi bildir
   MqlCommission commissions[];
 
//--- geçerli sembol için komisyon kurallarını al.
//--- NULL yerine bir sembol adı belirtilirse fonksiyon bu sembolün komisyonlarını döndürür.
   int total=SymbolInfoCommissions(NULL,commissions);
 
//--- fonksiyon yürütme sonucunu kontrol et
   if(total<0)
     {
      //--- hata durumunda hata kodunu yazdır
      PrintFormat("SymbolInfoCommissions failed. Error %d",GetLastError());
      return;
     }
 
//--- alınan komisyon kurallarının sayısını yazdır
   PrintFormat("Commission rules: %d",total);
 
//--- tüm komisyon kurallarını yinele
   for(int i=0;i<total;i++)
     {
      //--- komisyon kuralının ana parametrelerini yazdır:
      //--- para birimi, aralık seçim modu ve tahsilat modu
      PrintFormat("Rule %d: currency=%s, range mode=%d, charge mode=%d",
                  i,
                  commissions[i].currency,
                  commissions[i].mode_range,
                  commissions[i].mode_charge);
 
      //--- geçerli kuraldaki komisyon kademelerinin sayısını al
      int tiers_total=ArraySize(commissions[i].tiers);
 
      //--- komisyon kademelerini yinele
      for(int j=0;j<tiers_total;j++)
        {
         //--- komisyon kademesi parametrelerini yazdır:
         //--- hesaplama modu, değer, uygulanabilir aralık ve para birimi
         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);
        }
     }
  }

 

Sembol Komisyonları

Bu bölüm, bir finansal araç için komisyon tahsilat kurallarını temsil etmekte kullanılan numaralandırmaları ve yapıları açıklar.

Komisyon para tutarı, puan, yüzde veya kâr yüzdesi olarak belirtilebilir; ayrıca hacim, ciro, işlem değeri veya kâr aralıklarına göre de hesaplanabilir. Tek bir komisyon kuralı birden fazla kademe, MqlCommissionTier, içerebilir.

ENUM_SYMBOL_COMMISSION_MODE

ENUM_SYMBOL_COMMISSION_MODE numaralandırması komisyon hesaplama yöntemini tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_DISABLED

Komisyon devre dışıdır.

SYMBOL_COMMISSION_MONEY_DEPOSIT

Komisyon, işlem grubu/hesabının depozito para biriminde belirtilir.

SYMBOL_COMMISSION_MONEY_SYMBOL_BASE

Komisyon, finansal aracın baz para biriminde belirtilir.

SYMBOL_COMMISSION_MONEY_SYMBOL_PROFIT

Komisyon, finansal aracın kâr para biriminde belirtilir.

SYMBOL_COMMISSION_MONEY_SYMBOL_MARGIN

Komisyon, finansal aracın marjin para biriminde belirtilir.

SYMBOL_COMMISSION_PIPS

Komisyon puan olarak belirtilir.

SYMBOL_COMMISSION_PERCENT

Komisyon yüzde olarak belirtilir.

SYMBOL_COMMISSION_MONEY_SPECIFIED

Komisyon belirtilen para biriminde tanımlanır. Para birimi, komisyon yapısının veya komisyon kademesinin ilgili alanında belirtilir.

SYMBOL_COMMISSION_PERCENT_PROFIT

Komisyon kâr yüzdesi olarak belirtilir.

ENUM_SYMBOL_COMMISSION_VOLUME_TYPE

ENUM_SYMBOL_COMMISSION_VOLUME_TYPE numaralandırması komisyon değerinin bir işlem operasyonuna nasıl uygulanacağını tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_VOLUME_TYPE_TRADE

Komisyon işlem başına tahsil edilir.

SYMBOL_COMMISSION_VOLUME_TYPE_VOLUME

Komisyon işlem hacmiyle orantılı olarak hesaplanır.

SYMBOL_COMMISSION_VOLUME_TYPE_TURNOVER

Komisyon ciroya göre hesaplanır.

ENUM_SYMBOL_COMMISSION_RANGE_MODE

ENUM_SYMBOL_COMMISSION_RANGE_MODE numaralandırması komisyon aralığını seçmek için kullanılan göstergeyi tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_RANGE_VOLUME

Aralık işlem hacmine göre belirlenir.

SYMBOL_COMMISSION_RANGE_TURNOVER_MONEY

Aralık parasal ciroya göre belirlenir.

SYMBOL_COMMISSION_RANGE_TURNOVER_VOLUME

Aralık hacim cirosuna göre belirlenir.

SYMBOL_COMMISSION_RANGE_VALUE

Aralık işlem değerine göre belirlenir.

SYMBOL_COMMISSION_RANGE_PROFIT

Aralık kâra göre belirlenir.

ENUM_SYMBOL_COMMISSION_CHARGE_MODE

ENUM_SYMBOL_COMMISSION_CHARGE_MODE numaralandırması komisyonun ne zaman tahsil edileceğini tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_CHARGE_DAILY

Komisyon gün sonunda tahsil edilir.

SYMBOL_COMMISSION_CHARGE_MONTHLY

Komisyon ay sonunda tahsil edilir.

SYMBOL_COMMISSION_CHARGE_INSTANT

Komisyon işlem gerçekleştiğinde hemen tahsil edilir.

ENUM_SYMBOL_COMMISSION_ENTRY_MODE

ENUM_SYMBOL_COMMISSION_ENTRY_MODE numaralandırması bir işlem operasyonunun hangi aşamasında komisyon tahsil edileceğini tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_ENTRY_INOUT

Komisyon pozisyona girerken ve pozisyondan çıkarken tahsil edilir.

SYMBOL_COMMISSION_ENTRY_IN

Komisyon pozisyona girerken tahsil edilir.

SYMBOL_COMMISSION_ENTRY_OUT

Komisyon pozisyondan çıkarken tahsil edilir.

ENUM_SYMBOL_COMMISSION_DIRECTION_MODE

ENUM_SYMBOL_COMMISSION_DIRECTION_MODE numaralandırması komisyonun uygulanacağı işlem yönünü tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_DIRECTION_BOTH

Komisyon alış ve satış işlemlerine uygulanır.

SYMBOL_COMMISSION_DIRECTION_BUY

Komisyon yalnızca alış işlemlerine uygulanır.

SYMBOL_COMMISSION_DIRECTION_SELL

Komisyon yalnızca satış işlemlerine uygulanır.

ENUM_SYMBOL_COMMISSION_PROFIT_MODE

ENUM_SYMBOL_COMMISSION_PROFIT_MODE numaralandırması komisyonun işlemin finansal sonucuna bağlı olarak uygulanıp uygulanmayacağını tanımlar.

Tanımlayıcı

Açıklama

SYMBOL_COMMISSION_PROFIT_ALL

Komisyon tüm işlemlere uygulanır.

SYMBOL_COMMISSION_PROFIT_PROFIT

Komisyon yalnızca kârlı işlemlere uygulanır.

SYMBOL_COMMISSION_PROFIT_LOSS

Komisyon yalnızca zararlı işlemlere uygulanır.

 

MqlCommissionTier

MqlCommissionTier yapısı bir komisyon kademesini açıklar.

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;
  };

Alan Açıklaması

Alan

Tür

Açıklama

mode

ENUM_SYMBOL_COMMISSION_MODE

Bu kademe için komisyon hesaplama yöntemi.

volume_type

ENUM_SYMBOL_COMMISSION_VOLUME_TYPE

Komisyon değerini uygulama yöntemi: işlem başına, hacme göre veya ciroya göre.

value

double

Komisyon değeri. Değerin yorumu mode alanına bağlıdır: para tutarı, puan sayısı, yüzde veya kâr yüzdesi.

min_value

double

Bu kademe için minimum komisyon değeri.

max_value

double

Bu kademe için maksimum komisyon değeri.

range_from

double

Bu komisyon kademesinin uygulandığı aralığın alt sınırı.

range_to

double

Bu komisyon kademesinin uygulandığı aralığın üst sınırı.

currency

string

Komisyon para birimi. Komisyonun açıkça ayarlanmış bir para biriminde belirtildiği modlarda kullanılır, örneğin SYMBOL_COMMISSION_MONEY_SPECIFIED.

Not

Komisyon kademesi aralığı range_from ve range_to tarafından belirlenir. Aralığı seçmek için kullanılan gösterge MqlCommission yapısının mode_range alanında belirtilir.

SYMBOL_COMMISSION_DISABLED ile komisyon devre dışı bırakılmışsa diğer kademe parametreleri komisyon tahsilatı için kullanılmaz.

 

MqlCommission

MqlCommission yapısı bir finansal araç için komisyon tahsilat kuralını açıklar.

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[];
  };

Alan Açıklaması

Alan

Tür

Açıklama

currency

string

Komisyon kuralı için belirtilen para birimi. Açıkça ayarlanmış bir para birimi gerektiren modlarda komisyon hesaplanırken kullanılır.

mode_range

ENUM_SYMBOL_COMMISSION_RANGE_MODE

Komisyon aralığını seçmek için kullanılan gösterge: hacim, parasal ciro, hacim cirosu, işlem değeri veya kâr.

mode_charge

ENUM_SYMBOL_COMMISSION_CHARGE_MODE

Komisyon tahsilat zamanı: gün sonunda, ay sonunda veya işlem gerçekleştiğinde hemen.

mode_entry

ENUM_SYMBOL_COMMISSION_ENTRY_MODE

Komisyonun tahsil edildiği işlem operasyonu aşaması: giriş, çıkış veya giriş ve çıkış.

mode_direction

ENUM_SYMBOL_COMMISSION_DIRECTION_MODE

Komisyonun uygulandığı işlem yönü: alış, satış veya her iki yön.

mode_profit

ENUM_SYMBOL_COMMISSION_PROFIT_MODE

İşlemin finansal sonucuna bağlı olarak komisyon uygulama koşulu.

tiers

MqlCommissionTier[]

Komisyon kademelerinden oluşan dinamik dizi. Her dizi öğesi ayrı bir aralığı ve bu aralık için komisyon hesaplama parametrelerini açıklar.

Not

MqlCommission yapısı komisyonun uygulanmasına ilişkin genel koşulları belirlerken tiers dizisi belirli değer ve aralıklara sahip komisyon kademelerini içerir.

Komisyon hesaplanırken önce kuralın genel koşulları kontrol edilir: işlem yönü, giriş veya çıkış aşaması, finansal sonuç, tahsilat zamanı ve tahsilat nedeni. Ardından mode_range değerine göre uygun kademe tiers dizisinden seçilir.

tiers dizisi boşsa, bu kural için komisyon kademesi belirtilmemiştir.

 

Ayrıca bakınız

SymbolsTotal, SymbolSelect, SymbolInfoMarginRate