Hesap Özellikleri

Mevcut hesap hakkında bilgi almak için birkaç fonksiyon bulunmaktadır: AccountInfoInteger(), AccountInfoDouble() ve AccountInfoString(). Fonksiyon parametreleri, karşılık gelen ENUM_ACCOUNT_INFO sayımlarından gelen değerleri alabilirler.

AccountInfoInteger() fonksiyonu için

ENUM_ACCOUNT_INFO_INTEGER

Tanıtıcı

Açıklama

Tip

ACCOUNT_LOGIN

Hesap numarası

long

ACCOUNT_TRADE_MODE

Hesap alım-satım modu

ENUM_ACCOUNT_TRADE_MODE

ACCOUNT_LEVERAGE

Hesap kaldıracı

long

ACCOUNT_LIMIT_ORDERS

İzin verilen maksimum bekleyen emir sayısı

int

ACCOUNT_MARGIN_SO_MODE

İzin verilen en küçük teminat için ayar modu

ENUM_ACCOUNT_STOPOUT_MODE

ACCOUNT_TRADE_ALLOWED

Mevcut hesap için izin verilen alım-satım

bool

ACCOUNT_TRADE_EXPERT

Uzman Danışman için izin verilen alım-satım

bool

ACCOUNT_MARGIN_MODE

Teminat hesaplama modu

ENUM_ACCOUNT_MARGIN_MODE

ACCOUNT_CURRENCY_DIGITS

İşlem sonuçlarının doğru bir şekilde gösterilmesi için gerekli olan hesap para birimindeki ondalık basamak sayısı

int

ACCOUNT_FIFO_CLOSE

Pozisyonların yalnızca FIFO kuralıyla kapatılabileceğini belirten bir işaret. Özellik değeri true olarak ayarlanırsa, her bir sembolde pozisyonlar en eskisinden başlayarak, açıldıkları sırayla kapatılır. Pozisyonların farklı bir sırayla kapatılmasının denenmesi durumunda, yatırımcı bir hata alır.

 

Hedgingsiz pozisyon muhasebe modu olan hesaplar için (ACCOUNT_MARGIN_MODE!=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), özellik değeri her zaman false olur.

bool

AccountInfoDouble() fonksiyonu için

ENUM_ACCOUNT_INFO_DOUBLE

Tanıtıcı

Açıklama

Tip

ACCOUNT_BALANCE

Mevduat dövizi cinsinden hesap bakiyesi

double

ACCOUNT_CREDIT

Mevduat dövizi cinsinden hesap kredisi

double

ACCOUNT_PROFIT

Bir hesabın mevduat dövizi cinsinden mevcut karı

double

ACCOUNT_EQUITY

Mevduat dövizi cinsinden hesaptaki net varlık değeri

double

ACCOUNT_MARGIN

Mevduat dövizi cinsinden kullanılan teminat

double

ACCOUNT_MARGIN_FREE

Mevduat döviz birimi cinsinden serbest teminat

double

ACCOUNT_MARGIN_LEVEL

Yüzde olarak, hesap teminat seviyesi

double

ACCOUNT_MARGIN_SO_CALL

Teminat çağrısı seviyesi. ACCOUNT_MARGIN_SO_MODE'a bağlı olarak, yüzdelik şekilde veya hesap para birimi cinsiyle ifade edilir

double

ACCOUNT_MARGIN_SO_SO

Teminat StopOut seviyesi. ACCOUNT_MARGIN_SO_MODE'a bağlı olarak, yüzdelik şekilde veya hesap para birimi cinsiyle ifade edilir

double

ACCOUNT_MARGIN_INITIAL

Başlangıç teminatı. Hesap üzerindeki tüm bekleyen emirleri karşılamak için ayrılan teminat miktarı

double

ACCOUNT_MARGIN_MAINTENANCE

Sürdürme teminatı. Hesap üzerindeki tüm açık pozisyonları karşılamak için ayrılan minimum teminat miktarı

double

ACCOUNT_ASSETS

Hesaptaki mevcut aktifler

double

ACCOUNT_LIABILITIES

Hesaptaki mevcut pasifler

double

ACCOUNT_COMMISSION_BLOCKED

Hesapta bloke edilmiş mevcut komisyon miktarı

double

AccountInfoString() fonksiyonu için

ENUM_ACCOUNT_INFO_STRING

Tanıtıcı

Açıklama

Tip

ACCOUNT_NAME

Müşteri ismi

string

ACCOUNT_SERVER

Alım-satım sunucusunun ismi

string

ACCOUNT_CURRENCY

Mevduat dövizinin cinsi

string

ACCOUNT_COMPANY

Hesaba hizmet veren firmanın ismi

string

Bir alım-satım sunucusunda açılabilecek birkaç hesap tipi bulunmaktadır. Bir MQL5 programının çalıştırıldığı hesap tipi ENUM_ACCOUNT_TRADE_MODE sayımı ile bulunabilir.

ENUM_ACCOUNT_TRADE_MODE

Tanıtıcı

Açıklama

ACCOUNT_TRADE_MODE_DEMO

Deneme hesabı

ACCOUNT_TRADE_MODE_CONTEST

Yarışma hesabı

ACCOUNT_TRADE_MODE_REAL

Gerçek hesap

Net varlık, açık pozisyonları korumak için yeterli değilse, StopOut durumu, yani zorla durdurma durumu gerçekleşir. StopOut seviyesinin gerçekleşeceği minimum teminat seviyesi, yüzdelik olarak veya parasal terimlerle ayarlanmış olabilir. Hesap için modu öğrenmek amacıyla, ENUM_ACCOUNT_STOPOUT_MODE sayımını kullanın.

ENUM_ACCOUNT_STOPOUT_MODE

Tanıtıcı

Açıklama

ACCOUNT_STOPOUT_MODE_PERCENT

Yüzdelik olarak hesap StopOut modu

ACCOUNT_STOPOUT_MODE_MONEY

Parasal olarak hesap StopOut modu

ENUM_ACCOUNT_MARGIN_MODE

Tanıtıcı

Açıklama

ACCOUNT_MARGIN_MODE_RETAIL_NETTING

Yirmidört saat işlem gören (OTC) piyasalarda, netleştirme (netting modu: belli bir sembol üzerinde sadece bir açık pozison bulunabilir) ile açılan pozisyonları ifade etmek kullanılır. Teminat değeri sembol tipine göre hesaplanır (SYMBOL_TRADE_CALC_MODE).

ACCOUNT_MARGIN_MODE_EXCHANGE

Hisse senedi piyasaları için kullanılır. Teminat değeri sembol ayarlarında belirtilen iskontoya göre heaplanır. İskontolar borsada belirlenen değerden az olmamak koşuluyla aracı kurumlar tarafından ayarlanır.

ACCOUNT_MARGIN_MODE_RETAIL_HEDGING

Çoklu pozisyon imkanı tanınan piyasalarda kullanılır (hedge'li sistem, bir sembol üzerinde birden çok açık pozisyon bulunabilir). Teminat değeri sembol tipine göre hesaplanır (SYMBOL_TRADE_CALC_MODE) ve hedge'li teminat değeri hesaplamaya dahil edilir (SYMBOL_MARGIN_HEDGED).

Hesap bilgisinin özetini çıktılayan bir betik örneği.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Firma ismi
   string company=AccountInfoString(ACCOUNT_COMPANY);
//--- Müşteri ismi
   string name=AccountInfoString(ACCOUNT_NAME);
//--- Hesap ismi
   long login=AccountInfoInteger(ACCOUNT_LOGIN);
//--- Sunucu ismi
   string server=AccountInfoString(ACCOUNT_SERVER);
//--- Mevduat dövizinin cinsi
   string currency=AccountInfoString(ACCOUNT_CURRENCY);
//--- Demo, yarışma veya gerçek hesap
   ENUM_ACCOUNT_TRADE_MODE account_type=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
//--- Şimdi sayım değerini anlaşılır bir şekle dönüştür
   string trade_mode;
   switch(account_type)
     {
      case  ACCOUNT_TRADE_MODE_DEMO:
         trade_mode="demo";
         break;
      case  ACCOUNT_TRADE_MODE_CONTEST:
         trade_mode="contest";
         break;
      default:
         trade_mode="real";
         break;
     }
//--- StopOut, yüzdelik olarak mı, yoksa parasal olarak mı ayarlanmış
   ENUM_ACCOUNT_STOPOUT_MODE stop_out_mode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
//--- StopOut ve teminat çağrısının gerçekleştiği seviye değerlerini al 
   double margin_call=AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
   double stop_out=AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);
//--- Özet hesap bilgisini göster
   PrintFormat("'%s' #%d %s müşterisinin hesabı, '%s' firmasıyla '%s' sunucusunda açılmıştır",
               name,login,trade_mode,company,server);
   PrintFormat("Hesap para birimi - %s, teminat çağrısı ve StopOut seviyeleri %s cinsinden ayarlanmıştır",
               currency,(stop_out_mode==ACCOUNT_STOPOUT_MODE_PERCENT)?"yüzdelik":" parasal");
   PrintFormat("teminat çağrısı=%G, StopOut=%G",margin_call,stop_out);
  }