Müşteri Terminali Özellikleri

Müşteri terminali hakkında bilgi almak için iki fonksiyon bulunmaktadır: TerminalInfoInteger() ve TerminalInfoString(). Fonksiyon parametreleri sırasıyla ENUM_TERMINAL_INFO_INTEGER ve ENUM_TERMINAL_INFO_STRING sayımlarının değerlerini alır.

ENUM_TERMINAL_INFO_INTEGER

Tanımlayıcı

Açıklama

Tip

TERMINAL_BUILD

Müşteri terminalinin kurulum numarası

int

TERMINAL_COMMUNITY_ACCOUNT

Bayrak, terminalde MQL5.community yetkilendirme verisinin bulunduğunu belirtir.

bool

TERMINAL_COMMUNITY_CONNECTION

MQL5.community'e bağlanma

bool

TERMINAL_CONNECTED

Bir alım-satım sunucusuna yapılan bağlantı

bool

TERMINAL_DLLS_ALLOWED

DLL kullanım izni

bool

TERMINAL_TRADE_ALLOWED

Alım-satım yapma izni

bool

TERMINAL_EMAIL_ENABLED

SMTP sunucusu ve terminal ayarlarında belirtilmiş giriş bilgisini (login) kullanılarak, e-mail gönderme izni

bool

TERMINAL_FTP_ENABLED

FTP sunucusu ve terminal ayarlarında belirtilmiş giriş bilgisini (login) kullanılarak, rapor gönderme izni

bool

TERMINAL_NOTIFICATIONS_ENABLED

Akıllı telefona bildirim gönderme izni

bool

TERMINAL_MAXBARS

Çizelge üzerindeki maksimum çubuk sayısı

int

TERMINAL_MQID

Bayrak Push bildirimlerini göndermek için MetaQuotes ID verilerinin varlığını gösterir.

bool

TERMINAL_CODEPAGE

Müşteri terminalinde yüklü olan dilin kod sayfasının numarası

int

TERMINAL_CPU_CORES

Sistemdeki CPU (işlemci) çekirdeklerinin sayısı

int

TERMINAL_DISK_SPACE

Terminal biriminin MQL5\Files klasörü için kullanılabilecek serbest disk alanı, MB

int

TERMINAL_MEMORY_PHYSICAL

Sistemdeki mevcut fiziksel bellek, MB

int

TERMINAL_MEMORY_TOTAL

Terminal birimi işlemleri için kullanılabilir bellek büyüklüğü, MB

int

TERMINAL_MEMORY_AVAILABLE

Terminal birimi işlemlerindeki serbest bellek, MB

int

TERMINAL_MEMORY_USED

Temsilci tarafından kullanılan bellek miktarı, MB

int

TERMINAL_X64

"64-bitlik terminal" gösterimi

bool

TERMINAL_OPENCL_SUPPORT

Desteklenen OpenCL versiyonu, 0x00010002 = 1.2. biçiminde verilir "0" sayısı OpenCL'in desteklenmediği anlamına gelir

int

TERMINAL_SCREEN_DPI

Ekran görüntüleme çözünürlüğü, ekran üzerindeki bir inçlik çizgideki noktaların sayısıyla (Dots Per Inch – DPI) ölçülür.

Bu parametrenin değerini bilirseniz, grafiksel nesnelerin boyutlarını farklı çözünürlük özelliklerine sahip ekranlarda aynı görüntülenecek şekilde ayarlayabilirsiniz.

int

TERMINAL_SCREEN_LEFT

Sanal ekranın sol koordinatı. Sanal ekran tüm monitörleri kaplayan bir diktörtgendir. Eğer sistem sağdan sola dizili iki monitöre sahipse, o zaman sanal ekranın sol koordinatı iki monitörün sınırında bulunabilir.

int

TERMINAL_SCREEN_TOP

Sanal ekranın üst koordinatı

int

TERMINAL_SCREEN_WIDTH

Terminal genişlik

int

TERMINAL_SCREEN_HEIGHT

Terminal yükseklik

int

TERMINAL_LEFT

Sanal ekrana göre terminalin sol koordinatı

int

TERMINAL_TOP

Sanal ekrana göre terminalin üst koordinatı

int

TERMINAL_RIGHT

Sanal ekrana göre terminalin sağ koordinatı

int

TERMINAL_BOTTOM

Sanal ekrana göre terminalin alt koordinatı

int

TERMINAL_PING_LAST

Alım-satım sunucusuna gönderilen son ping sinyalinin mikrosaniye cinsinden değeri. Bir saniye, bir milyon mikrosaniyeden oluşur

int

TERMINAL_VPS

Terminalin MetaTrader Sanal Hosting sunucusunda (MetaTrader VPS) başlatıldığını gösterir.

bool

Anahtar Tanıtıcısı

Açıklama

 

TERMINAL_KEYSTATE_LEFT

"Sol ok" tuşunun durumu

int

TERMINAL_KEYSTATE_UP

"Yukarı ok" tuşunun durumu

int

TERMINAL_KEYSTATE_RIGHT

"Sağ ok" tuşunun durumu

int

TERMINAL_KEYSTATE_DOWN

"Aşağı ok" tuşunun durumu

int

TERMINAL_KEYSTATE_SHIFT

"Shift" tuşunun durumu

int

TERMINAL_KEYSTATE_CONTROL

"Ctrl" tuşunun durumu

int

TERMINAL_KEYSTATE_MENU

"Windows" tuşunun durumu

int

TERMINAL_KEYSTATE_CAPSLOCK

"CapsLock" tuşunun durumu

int

TERMINAL_KEYSTATE_NUMLOCK

"NumLock" tuşunun durumu

int

TERMINAL_KEYSTATE_SCRLOCK

"ScrollLock" tuşunun durumu

int

TERMINAL_KEYSTATE_ENTER

"Enter" tuşunun durumu

int

TERMINAL_KEYSTATE_INSERT

"Insert" tuşunun durumu

int

TERMINAL_KEYSTATE_DELETE

"Delete" tuşunun durumu

int

TERMINAL_KEYSTATE_HOME

"Home" tuşunun durumu

int

TERMINAL_KEYSTATE_END

"End" tuşunun durumu

int

TERMINAL_KEYSTATE_TAB

"Tab" tuşunun durumu

int

TERMINAL_KEYSTATE_PAGEUP

"PageUp" tuşunun durumu

int

TERMINAL_KEYSTATE_PAGEDOWN

"PageDown" tuşunun durumu

int

TERMINAL_KEYSTATE_ESCAPE

"Escape" tuşunun durumu

int

TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) çağrısı MSDN'deki GetKeyState() fonksiyonuyla aynı durum koduna dönüş yapar.

 

Örnek – ölçekleme faktörünün hesaplanması:

//--- Ekranda 1.5 inç genişliğinde bir düğme oluşturma
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // Kullanıcı monitörünün DPI değerini bul
int base_width = 144;                                      // DPI=96 değerine sahip standart mцnitцrler iзin –nokta bazında– temel genişlik
int width      = (button_width * screen_dpi) / 96;         // Kullanıcı monitörü (özel DPI değeri) için düğme genişliğini hesapla
... 
 
//--- Ölçekleme faktörünün yüzdelik olarak hesaplanması
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- Ölçekleme faktörünün yüzdelik olarak hesaplanması
width=(base_width * scale_factor) / 100;

Yukarıdaki örnekteki grafiksel kaynak farklı özelliklere sahip monitörlerde aynı görünecektir. Kontrol bileşenlerinin (düğmeler, dialog pencereleri, vb.) boyutları kişiselleştirme ayarlarına karşılık gelir.

 

ENUM_TERMINAL_INFO_DOUBLE

Tanımlayıcı

Açıklama

Tip

TERMINAL_COMMUNITY_BALANCE

MQL5.community'deki bakiye

double

TERMINAL_RETRANSMISSION

Verilen bilgisayarda çalışan tüm uygulamalar ve hizmetler için TCP/IP protokolündeki yeniden gönderilen ağ paketlerinin yüzdesi. Paket kaybı en hızlı ve doğru yapılandırılmış ağlarda bile gerçekleşir. Bu durumda, alıcı ile gönderen arasında paket iletiminin onaylanması yoktur, bu nedenle kaybedilen paketler yeniden gönderilir.

 

Yüzde, sistem ve arka plan etkinliği dahil olmak üzere tüm ağ etkinliği için hesaplandığı için, belirli bir terminal ile bir trade sunucusu arasındaki bağlantı kalitesinin bir göstergesi değildir.

 

TERMINAL_RETRANSMISSION değeri, işletim sisteminden dakikada bir kez istenir. Terminalin kendisi bu değeri hesaplamaz.

double

 

Dosya işlemleri sadece iki dosya konumu içinde gerçekleştirilebilir; karşılık gelen dosya adresleri, TERMINAL_DATA_PATH ve TERMINAL_COMMONDATA_PATH özelikleri için istekler kullanılarak elde edilebilir.

ENUM_TERMINAL_INFO_STRING

Tanımlayıcı

Açıklama

Tip

TERMINAL_LANGUAGE

Terminal dili

string

TERMINAL_COMPANY

Firma ismi

string

TERMINAL_NAME

Terminal ismi

string

TERMINAL_PATH

Terminalin başlatıldığı klasör

string

TERMINAL_DATA_PATH

Terminal verisinin saklandığı klasör

string

TERMINAL_COMMONDATA_PATH

Bilgisayara yüklenen tüm terminaller için çoğunlukla kullanılan dosya adresi

string

TERMINAL_CPU_NAME

CPU adı

string

TERMINAL_CPU_ARCHITECTURE

CPU mimarisi

string

TERMINAL_OS_VERSION

Kullanıcının işletim sistemi adı

string

TERMINAL_PATH, TERMINAL_DATA_PATH ve TERMINAL_COMMONDATA_PATH parametrelerinin özelliklerinde saklanan dosya yollarını daha iyi anlayabilmek için, bilgisayarınızda yüklü olan mevcut müşteri terminali kopyası için bu değerlere dönüş yapan bir betiği çalıştırmanız önerilir.

Örnek: Müşteri terminalinin dosya adresleri hakkında bilgi veren script

//+------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script programı başlatma fonksiyonu                              |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }

Betiğin çalıştırılmasının sonucu olarak, Uzmanlar Günlüğünde şuna benzer bir mesaj göreceksiniz:

Kullanılmakta olan bir terminal klasöründen veri alımı