MQL4'ten MQL5'e geçiş
Giriş
Birçok geliştirici, MQL4'te yazılmış çok sayıda gösterge ve alım satım stratejisi biriktirmiştir. Bunları Metatrader 5'te kullanmak için MQL5'e dönüştürülmeleri gerekir. MQL5'te tüm programları yeniden yazmak o kadar kolay değil. Bir dönüştürme-referansı olsaydı, onları dönüştürmek çok daha kolay olurdu ve örneklerle bu, daha iyi olurdu.
Bu makalede MQL4'ten MQL5'e geçiş için bir rehber sürümümü önermek istiyorum.
1. Grafik Dönemleri
MQL5 grafiğinde dönem sabitleri değişti ve bazı yeni zaman dilimleri (M2, M3, M4, M6, M10, M12, H2, H3, H6, H8, H12) eklendi. MQL4 zaman dilimlerini dönüştürmek için aşağıdaki işlevi kullanabilirsiniz:
ENUM_TIMEFRAMES TFMigrate(int tf) { switch(tf) { case 0: return(PERIOD_CURRENT); case 1: return(PERIOD_M1); case 5: return(PERIOD_M5); case 15: return(PERIOD_M15); case 30: return(PERIOD_M30); case 60: return(PERIOD_H1); case 240: return(PERIOD_H4); case 1440: return(PERIOD_D1); case 10080: return(PERIOD_W1); case 43200: return(PERIOD_MN1); case 2: return(PERIOD_M2); case 3: return(PERIOD_M3); case 4: return(PERIOD_M4); case 6: return(PERIOD_M6); case 10: return(PERIOD_M10); case 12: return(PERIOD_M12); case 16385: return(PERIOD_H1); case 16386: return(PERIOD_H2); case 16387: return(PERIOD_H3); case 16388: return(PERIOD_H4); case 16390: return(PERIOD_H6); case 16392: return(PERIOD_H8); case 16396: return(PERIOD_H12); case 16408: return(PERIOD_D1); case 32769: return(PERIOD_W1); case 49153: return(PERIOD_MN1); default: return(PERIOD_CURRENT); } }
MQL5'te grafik zaman dilimi sabitlerinin sayısal değerlerinin (H1'den) bir çubuğun dakika sayısına eşit olmadığına dikkat edilmelidir (örneğin, MQL5'te, PERIOD_H1=16385 sabitinin sayısal değeriyken MQL4'te PERIOD_H1=60'tır). MQL4 programlarında MQL4 sabitlerinin sayısal değerleri kullanılıyorsa MQL5'e dönüştürürken bunu dikkate almalısınız.
Grafiğin belirtilen zaman diliminin dakika sayısını belirlemek için, PeriodSaniye işlevinin döndürdüğü değeri 60'a bölün.
2. Sabitleri Bildirme
MQL5'te standart MQL4 sabitlerinden bazıları yoktur; bu nedenle bunların bildirilmesi gerekir:
//+------------------------------------------------------------------+ //| InitMQL4.mqh | //| Copyright DC2008 | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "keiji" #property copyright "DC2008" #property link "https://www.mql5.com" //--- Declaration of constants #define OP_BUY 0 //Buy #define OP_SELL 1 //Sell #define OP_BUYLIMIT 2 //Pending order of BUY LIMIT type #define OP_SELLLIMIT 3 //Pending order of SELL LIMIT type #define OP_BUYSTOP 4 //Pending order of BUY STOP type #define OP_SELLSTOP 5 //Pending order of SELL STOP type //--- #define MODE_OPEN 0 #define MODE_CLOSE 3 #define MODE_VOLUME 4 #define MODE_REAL_VOLUME 5 #define MODE_TRADES 0 #define MODE_HISTORY 1 #define SELECT_BY_POS 0 #define SELECT_BY_TICKET 1 //--- #define DOUBLE_VALUE 0 #define FLOAT_VALUE 1 #define LONG_VALUE INT_VALUE //--- #define CHART_BAR 0 #define CHART_CANDLE 1 //--- #define MODE_ASCEND 0 #define MODE_DESCEND 1 //--- #define MODE_LOW 1 #define MODE_HIGH 2 #define MODE_TIME 5 #define MODE_BID 9 #define MODE_ASK 10 #define MODE_POINT 11 #define MODE_DIGITS 12 #define MODE_SPREAD 13 #define MODE_STOPLEVEL 14 #define MODE_LOTSIZE 15 #define MODE_TICKVALUE 16 #define MODE_TICKSIZE 17 #define MODE_SWAPLONG 18 #define MODE_SWAPSHORT 19 #define MODE_STARTING 20 #define MODE_EXPIRATION 21 #define MODE_TRADEALLOWED 22 #define MODE_MINLOT 23 #define MODE_LOTSTEP 24 #define MODE_MAXLOT 25 #define MODE_SWAPTYPE 26 #define MODE_PROFITCALCMODE 27 #define MODE_MARGINCALCMODE 28 #define MODE_MARGININIT 29 #define MODE_MARGINMAINTENANCE 30 #define MODE_MARGINHEDGED 31 #define MODE_MARGINREQUIRED 32 #define MODE_FREEZELEVEL 33 //--- #define EMPTY -1Not: MQl4 ve MQL5'teki sabitler farklıdır; bu nedenle bunları daha sonra kullanmak üzere ayrı bir initMQ4.mqh dosyasında bildirmek daha iyidir.
3. Önceden Tanımlanmış Değişkenler
MQL4 | MQL5 | Açıklama |
---|---|---|
double Ask | MqlTick last_tick; SymbolInfoTick(_Symbol,last_tick); double Ask=last_tick.ask; | Satış Mevcut sembol için bilinen en son satış fiyatı. SymbolInfoTick |
int Bars | int Bars=Bars(_Symbol,_Period); | Çubuklar Geçerli grafikteki çubuk sayısı. Çubuklar |
double Bid | MqlTick last_tick; SymbolInfoTick(_Symbol,last_tick); double Bid=last_tick.bid; | Alış Mevcut sembolün bilinen en son alış fiyatı. SymbolInfoTick |
double Close[] | double Close[]; int count; // number of elements to copy ArraySetAsSeries(Close,true); CopyClose(_Symbol,_Period,0,count,Close); | Kapanış Mevcut grafiğin her çubuğu için kapanış fiyatlarını içeren seri dizisi. CopyClose, ArraySetAsSeries |
int Digits | int Digits=_Digits; | Basamaklar Mevcut sembol fiyatları için ondalık noktadan sonraki basamak sayısı. _Digits |
double High[] | double High[]; int count; // number of elements to copy ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,count,High); | Yüksek Mevcut grafiğin her bir çubuğunun en yüksek fiyatlarını içeren seri dizisi. CopyHigh, ArraySetAsSeries |
double Low[] | double Low[]; int count; // number of elements to copy ArraySetAsSeries(Low,true); CopyLow(_Symbol,_Period,0,count,Low); | Düşük Mevcut grafiğin her bir çubuğunun en düşük fiyatlarını içeren seri dizisi. CopyLow, ArraySetAsSeries |
double Open[] | double Open[]; int count; // number of elements to copy ArraySetAsSeries(Open,true); CopyOpen(_Symbol,_Period,0,count,Open); | Açılış Mevcut grafiğin her bir çubuğunun açılış fiyatlarını içeren seri dizisi. CopyOpen, ArraySetAsSeries |
double Point | double Point=_Point; | Nokta Fiyat teklifi para birimindeki mevcut sembol noktası değeri. _Point |
datetime Time[] | datetime Time[]; int count; // number of elements to copy ArraySetAsSeries(Time,true); CopyTime(_Symbol,_Period,0,count,Time); | Zaman Mevcut grafiğin her bir çubuğunun açık zamanını içeren seri dizisi. Datetime gibi veriler, 1 Ocak 1970 00:00 a.m.'den bu yana geçen zamanı saniye cinsinden temsil eder. CopyTime, ArraySetAsSeries |
double Volume[] | long Volume[]; int count; // number of elements to copy ArraySetAsSeries(Volume,true); CopyTickVolume(_Symbol,_Period,0,count,Volume); | Hacim Mevcut grafiğin her bir çubuğunun tick hacimlerini içeren seri dizisi. CopyTickVolume, ArraySetAsSeries |
4. Hesap Bilgileri
MQL4 | MQL5 | Açıklama |
---|---|---|
double AccountBalance() | double AccountInfoDouble(ACCOUNT_BALANCE) | AccountBalance Cari hesabın bakiye değerini (hesaptaki para miktarını) döndürür. AccountInfoDouble |
double AccountCredit() | double AccountInfoDouble(ACCOUNT_CREDIT) | AccountCredit Cari hesabın kredi değerini döndürür. AccountInfoDouble |
string AccountCompany() | string AccountInfoString(ACCOUNT_COMPANY) | AccountCompany Cari hesabın kayıtlı olduğu aracı şirket adını döndürür. AccountInfoString |
string AccountCurrency() | string AccountInfoString(ACCOUNT_CURRENCY) | AccountCurrency Cari hesabın para birimi adını döndürür. AccountInfoString |
double AccountEquity() | double AccountInfoDouble(ACCOUNT_EQUITY) | AccountEquity Cari hesabın hisse senedi değerini döndürür. Hisse senedi hesaplaması, alım satım sunucusu ayarlarına bağlıdır. AccountInfoDouble |
double AccountFreeMargin() | double AccountInfoDouble(ACCOUNT_FREEMARGIN) | AccountFreeMargin Cari hesabın serbest marj değerini döndürür. AccountInfoDouble |
double AccountFreeMarginCheck(string symbol, int cmd, double volume) | - | AccountFreeMarginCheck Belirtilen pozisyon cari hesaptaki mevcut fiyatta açıldıktan sonra kalan serbest marjı döndürür. |
double AccountFreeMarginMode() | - | AccountFreeMarginMode Cari hesapta pozisyon açmaya izin verilen serbest marj hesaplama modu. |
int AccountLeverage() | int AccountInfoInteger(ACCOUNT_LEVERAGE) | AccountLeverage Cari hesabın kaldıracını döndürür. AccountInfoInteger |
double AccountMargin() | double AccountInfoDouble(ACCOUNT_MARGIN) | AccountMargin Cari hesabın marj değerini döndürür. AccountInfoDouble |
string AccountName() | string AccountInfoString(ACCOUNT_NAME) | AccountName Cari hesap adını döndürür. AccountInfoString |
int AccountNumber() | int AccountInfoInteger(ACCOUNT_LOGIN) | AccountNumber Cari hesap sayısını döndürür. AccountInfoInteger |
double AccountProfit() | double AccountInfoDouble(ACCOUNT_PROFIT) | AccountProfit Cari hesabın kar değerini döndürür. AccountInfoDouble |
string AccountServer() | string AccountInfoString(ACCOUNT_SERVER) | AccountServer Bağlı sunucu adını döndürür. AccountInfoString |
int AccountStopoutLevel() | double AccountInfoDouble(ACCOUNT_MARGIN_SO_SO) | AccountStopoutLevel Stop Out düzeyinin değerini döndürür. AccountInfoDouble |
int AccountStopoutMode() | int AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE) | AccountStopoutMode Stop Out düzeyi için hesaplama modunu döndürür. AccountInfoInteger |
5. Dizi İşlevleri
MQL4 | MQL5 | Açıklama |
---|---|---|
int ArrayBsearch(double array[], double value, int count=WHOLE_ARRAY, int start=0, int direction=MODE_ASCEND) | int ArrayBsearch(double array[], double searched_value ) | ArrayBsearch İşlev, tek boyutlu bir sayısal dizide belirtilen bir değeri arar. ArrayBsearch |
int ArrayCopy(object&dest[], object source[], int start_dest=0, int start_source=0, int count=WHOLE_ARRAY) | int ArrayCopy(void dst_array[], void src_array[], int dst_start=0, int src_start=0, int cnt=WHOLE_ARRAY ) | ArrayCopy Bir diziyi diğerine kopyalar. Diziler aynı türde olmalıdır, ancak double[], int[], datetime[], color[] ve bool[] türündeki diziler aynı türdeki diziler olarak kopyalanabilir. Kopyalanan öğe miktarını döndürür. ArrayCopy |
int ArrayCopyRates(double&dest_array[], string symbol=NULL, int timeframe=0) | - | ArrayCopyRates Mevcut grafik çubuklarının verilerini iki boyutlu RateInfo[][6] türünün dizisine kopyalar ve kopyalanan çubuk miktarını döndürür veya başarısız olursa -1 değerini döndürür. |
int ArrayCopySeries(double&array[], int series_index, string symbol=NULL, int timeframe=0) | int ArrayCopySeriesMQL4(double &array[], int series_index, string symbol=NULL, int tf=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int count=Bars(symbol,timeframe); switch(series_index) { case MODE_OPEN: return(CopyOpen(symbol,timeframe,0,count,array)); case MODE_LOW: return(CopyLow(symbol,timeframe,0,count,array)); case MODE_HIGH: return(CopyHigh(symbol,timeframe,0,count,array)); case MODE_CLOSE: return(CopyClose(symbol,timeframe,0,count,array)); default: return(0); } return(0); } | ArrayCopySeries Bir zaman serisi dizisini özel bir diziye kopyalar ve kopyalanan öğelerin sayısını döndürür. CopyOpen, CopyLow, CopyHigh, CopyClose, Bars |
int ArrayDimension( object array[]) | - | ArrayDimension Çok boyutlu dizi sıralamasını döndürür. |
bool ArrayGetAsSeries( object array[]) | bool ArrayGetAsSeries(void array) | ArrayGetAsSeries Bir dizi bir zaman serisi dizisi olarak düzenlenmişse (dizi öğeleri sondan birinciye indekslenir) TRUE değerini, aksi takdirde FALSE değerini döndürür. ArrayGetAsSeries |
int ArrayInitialize(double &array[], double value) | int ArrayInitializeMQL4(double &array[], double value) { ArrayInitialize(array,value); return(ArraySize(array)); } | ArrayInitialize Sayısal bir dizinin tüm öğelerini aynı değere ayarlar. Başlatılan öğelerin sayısını döndürür. ArrayInitialize, ArraySize |
bool ArrayIsSeries( object array[]) | bool ArrayIsSeries(void array[]) | ArrayIsSeries Kontrol altındaki dizi bir zaman serisi dizisiyse (Time[],Open[],Close[],High[],Low[] veya Volume[]) TRUE değerini; aksi takdirde FALSE değerini döndürür. ArrayIsSeries |
int ArrayMaximum(double array[], int count=WHOLE_ARRAY, int start=0) | int ArrayMaximumMQL4(double &array[], int count=WHOLE_ARRAY, int start=0) { return(ArrayMaximum(array,start,count)); } | ArrayMaximum Maksimum değere sahip öğeyi arar. İşlev, dizideki bu maksimum öğenin pozisyonunu döndürür. ArrayMaximum |
int ArrayMinimum(double array[], int count=WHOLE_ARRAY, int start=0) | int ArrayMinimumMQL4(double &array[], int count=WHOLE_ARRAY, int start=0) { return(ArrayMinimum(array,start,count)); } | ArrayMinimum Minimum değere sahip öğeyi arar. İşlev, dizideki bu minimum öğenin pozisyonunu döndürür. ArrayMinimum |
int ArrayRange(object array[], int range_index) | int ArrayRange(void array[], int rank_index ) | ArrayRange Dizinin verilen boyutundaki öğelerin sayısını döndürür. ArrayRange |
int ArrayResize(object &array[], int new_size) | int ArrayResize(void array[], int new_size, int allocated_size=0 ) | ArrayResize İlk boyut için yeni bir boyut ayarlar. ArrayResize |
bool ArraySetAsSeries(double &array[], bool set) | bool ArraySetAsSeries(void array[], bool set ) | ArraySetAsSeries Dizinin verilen boyutundaki öğelerin sayısını döndürür. İndeksler sıfır tabanlı olduğu için ebatın boyutu en büyük indeksten 1 değer büyüktür. ArraySetAsSeries |
int ArraySize( object array[]) | int ArraySize(void array[]) | ArraySize Dizide yer alan öğelerin sayısını döndürür. ArraySize |
int ArraySort(double &array[], int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND) | int ArraySortMQL4(double &array[], int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND) { switch(sort_dir) { case MODE_ASCEND: ArraySetAsSeries(array,true); case MODE_DESCEND: ArraySetAsSeries(array,false); default: ArraySetAsSeries(array,true); } ArraySort(array); return(0); } | ArraySort Sayısal dizileri birinci boyuta göre sıralar. Seri dizileri ArraySort() tarafından sıralanamaz. ArraySort, ArraySetAsSeries |
6. Kontrol
MQL4 | MQL5 | Açıklama |
---|---|---|
int GetLastError() | int GetLastError() | GetLastError İşlev, en son oluşan hatayı döndürür, ardından son hata kodunun saklandığı özel last_error değişkeninin değeri sıfırlanır. GetLastError |
bool IsConnected() | bool TerminalInfoInteger(TERMINAL_CONNECTED) | IsConnected İşlev, istemci terminali ile veri alışverişini gerçekleştiren sunucu arasındaki ana bağlantının durumunu döndürür. Sunucuya bağlantı başarıyla kurulduysa TRUE, aksi takdirde FALSE değerini döndürür. TerminalInfoInteger |
bool IsDemo() | bool IsDemoMQL4() { if(AccountInfoInteger(ACCOUNT_TRADE_MODE)==ACCOUNT_TRADE_MODE_DEMO) return(true); else return(false); } | IsDemo Expert, bir demo hesabı üzerinde çalışıyorsa TRUE, aksi takdirde FALSE değerini döndürür. AccountInfoInteger |
bool IsDllsAllowed() | bool TerminalInfoInteger(TERMINAL_DLLS_ALLOWED) | IsDllsAllowed Expert Advisor için işlev DLL çağrısına izin veriliyorsa TRUE, aksi takdirde FALSE değerini döndürür. TerminalInfoInteger |
bool IsExpertEnabled() | bool AccountInfoInteger(ACCOUNT_TRADE_EXPERT) | IsExpertEnabled İstemci terminalinde Expert Advisor'ların kullanımı etkinleştirilmişse TRUE, aksi takdirde FALSE değerini döndürür. AccountInfoInteger |
bool IsLibrariesAllowed() | bool MQLInfoInteger(MQL5_DLLS_ALLOWED) | IsLibrariesAllowed Expert Advisor kitaplık işlevini çağırabiliyorsa TRUE, aksi takdirde FALSE değerini döndürür. MQLInfoInteger |
bool IsOptimization() | bool MQLInfoInteger(MQL5_OPTIMIZATION) | IsOptimization Expert Advisor, strateji test cihazı optimizasyon modunda çalışıyorsa TRUE, aksi takdirde FALSE değerini döndürür. MQLInfoInteger |
bool IsStopped() | bool IsStopped() | IsStopped Programa (Expert Advisor veya script dosyası) çalışmasını durdurma komutu verilmişse TRUE, aksi takdirde FALSE değerini döndürür. IsStopped |
bool IsTesting() | bool MQLInfoInteger(MQL5_TESTING) | IsTesting Expert Advisor test modunda çalışıyorsa TRUE, aksi takdirde FALSE değerini döndürür. MQLInfoInteger |
bool IsTradeAllowed() | bool MQLInfoInteger(MQL5_TRADE_ALLOWED) | IsTradeAllowed Expert Advisor'lar tarafından alım satıma izin veriliyorsa ve alım satım için bir ileti dizisi meşgul değilse TRUE, aksi takdirde FALSE değerini döndürür. MQLInfoInteger |
bool IsTradeContextBusy() | - | IsTradeContextBusy Alım satım için bir ileti dizisi başka bir Expert Advisor tarafından kullanılıyorsa TRUE, aksi takdirde FALSE değerini döndürür. |
bool IsVisualMode() | bool MQLInfoInteger(MQL5_VISUAL_MODE) | IsVisualMode Expert Advisor işaretli "Görsel Mod" düğmesi ile test edilirse TRUE, aksi takdirde FALSE değerini döndürür. MQLInfoInteger |
int UninitializeReason() | int UninitializeReason() | UninitializeReason Expert Advisor'lar, özel göstergeler ve script dosyaları için başlatmayı geri alma nedeninin kodunu döndürür. UninitializeReason |
7. İstemci Terminali
MQL4 | MQL5 | Açıklama |
---|---|---|
string TerminalCompany() | string TerminalInfoString(TERMINAL_COMPANY) | TerminalCompany İstemci terminaline sahip olan şirketin adını döndürür. TerminalInfoString |
string TerminalName() | string TerminalInfoString(TERMINAL_NAME) | TerminalName İstemci terminali adını döndürür. TerminalInfoString |
string TerminalPath() | string TerminalInfoString(TERMINAL_PATH) | TerminalPath İstemci terminalinin başlatıldığı dizini döndürür. TerminalInfoString |
8. Ortak İşlevler
MQL4 | MQL5 | Açıklama |
---|---|---|
void Alert(...) | void Alert(argument,...) | Uyarı Kullanıcı tanımlı verileri içeren bir iletişim kutusu görüntüler. Parametreler herhangi bir türde olabilir. Uyarı |
void Comment(...) | void Comment(argument,...) | Açıklama İşlev, kullanıcı tarafından tanımlanan açıklamayı grafiğin sol üst köşesinde verir. Açıklama |
int GetTickCount() | uint GetTickCount() | GetTickCount GetTickCount() işlevi, sistemin başlatılmasından itibaren geçen milisaniye sayısını alır. GetTickCount |
double MarketInfo(string symbol, int type) | double MarketInfoMQL4(string symbol, int type) { switch(type) { case MODE_LOW: return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW)); case MODE_HIGH: return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH)); case MODE_TIME: return(SymbolInfoInteger(symbol,SYMBOL_TIME)); case MODE_BID: return(Bid); case MODE_ASK: return(Ask); case MODE_POINT: return(SymbolInfoDouble(symbol,SYMBOL_POINT)); case MODE_DIGITS: return(SymbolInfoInteger(symbol,SYMBOL_DIGITS)); case MODE_SPREAD: return(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); case MODE_STOPLEVEL: return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL)); case MODE_LOTSIZE: return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE)); case MODE_TICKVALUE: return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE)); case MODE_TICKSIZE: return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE)); case MODE_SWAPLONG: return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG)); case MODE_SWAPSHORT: return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT)); case MODE_STARTING: return(0); case MODE_EXPIRATION: return(0); case MODE_TRADEALLOWED: return(0); case MODE_MINLOT: return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN)); case MODE_LOTSTEP: return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP)); case MODE_MAXLOT: return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX)); case MODE_SWAPTYPE: return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE)); case MODE_PROFITCALCMODE: return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE)); case MODE_MARGINCALCMODE: return(0); case MODE_MARGININIT: return(0); case MODE_MARGINMAINTENANCE: return(0); case MODE_MARGINHEDGED: return(0); case MODE_MARGINREQUIRED: return(0); case MODE_FREEZELEVEL: return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL)); default: return(0); } return(0); } | MarketInfo Piyasa İzleme penceresinde listelenen menkul kıymetler hakkında çeşitli verileri döndürür. SymbolInfoInteger, SymbolInfoDouble, Bid, Ask |
int MessageBox(string text=NULL, string caption=NULL, int flags=EMPTY) | int MessageBox(string text, string caption=NULL, int flags=0) | MessageBox MessageBox işlevi, mesaj kutusunu oluşturur, görüntüler ve çalıştırır. MessageBox |
void PlaySound(string filename) | bool PlaySound(string filename) | PlaySound İşlev, bir ses dosyası çalar. PlaySound |
void Print(...) | void Print(argument,...) | Yazdır Expertler günlüğüne bir mesaj yazdırır. Yazdır |
bool SendFTP(string filename, string ftp_path=NULL) | bool SendFTP(string filename, string ftp_path=NULL) | SendFTP Dosyayı Araçlar->Seçenekler->Yayıncı sekmesinde ayarlanan FTP sunucusuna gönderir. Deneme başarısız olursa FALSE değerini döndürür. SendFTP |
void SendMail(string subject, string some_text) | bool SendMail(string subject, string some_text) | SendMail Araçlar->Seçenekler->E-posta sekmesinde ayarlanan e-postaya bir mesaj gönderir. SendMail |
void Sleep(int milliseconds) | void Sleep(int milliseconds) | Sleep Sleep() işlevi, belirtilen aralık içinde geçerli expert'in yürütülmesini askıya alır. Sleep |
9. Dönüştürme İşlevleri
MQL4 | MQL5 | Açıklama |
---|---|---|
string CharToStr(int char_code) | string CharToString(int char_code) | CharToStr Sembol kodunu tek karakterli bir dizeye dönüştürür. CharToString |
string DoubleToStr(double value, int digits) | string DoubleToString(double value, int digits=8) | DoubleToStr Belirtilen duyarlık biçimine dönüştürülmüş, belirtilen sayısal değere sahip metin dizesini döndürür. DoubleToString |
double NormalizeDouble(double value, int digits) | double NormalizeDouble(double value, int digits) | NormalizeDouble Kayan nokta değerini verilen duyarlığa yuvarlar. Double türünün normalleştirilmiş değerini döndürür. NormalizeDouble |
double StrToDouble(string value) | double StringToDouble(string value) | StrToDouble Sayının dize gösterimini double türüne dönüştürür (çift duyarlıklı kayan nokta biçimi). StringToDouble |
int StrToInteger(string value) | long StringToInteger(string value) | StrToInteger Değer karakter gösterimini içeren dizeyi int (tamsayı) türünde bir değere dönüştürür. StringToInteger |
datetime StrToTime(string value) | datetime StringToTime(string value) | StrToTime "yyyy.aa.gg ss:dd" biçimindeki dizeyi datetime türüne dönüştürür (1 Ocak 1970'den itibaren geçen saniye miktarı). StringToTime |
string TimeToStr(datetime value, int mode=TIME_DATE|TIME_MINUTES) | string TimeToString(datetime value, int mode=TIME_DATE|TIME_MINUTES) | TimeToStr 1 Ocak 1970'den itibaren geçen süreyi saniye cinsinden içeren değeri "yyyy.aa.gg ss:dd" biçiminde bir dizeye dönüştürür. TimeToString |
10. Özel Göstergeler
MQL4 | MQL5 | Açıklama |
---|---|---|
void IndicatorBuffers(int count) | - | IndicatorBuffers Özel gösterge hesaplamaları için kullanılan arabellekler için bellek ayırır. |
int IndicatorCounted() | int IndicatorCountedMQL4() { if(prev_calculated>0) return(prev_calculated-1); if(prev_calculated==0) return(0); return(0); } | IndicatorCounted İşlev, gösterge en son başlatıldıktan sonra değiştirilmeyen çubuk miktarını döndürür. OnCalculate |
void IndicatorDigits(int digits) | bool IndicatorSetInteger(INDICATOR_DIGITS,digits) | IndicatorDigits Gösterge değerlerini görselleştirmek için duyarlık biçimini (ondalık noktadan sonraki basamak sayısı) ayarlar. IndicatorSetInteger |
void IndicatorShortName(string name) | bool IndicatorSetString(INDICATOR_SHORTNAME,name) | IndicatorShortName DataWindow'da ve grafik alt penceresinde gösterilecek özel bir göstergenin "kısa" adını ayarlar. IndicatorSetString |
void SetIndexArrow(int index, int code) | bool PlotIndexSetInteger(index,PLOT_ARROW,code) | SetIndexArrow DRAW_ARROW türündeki göstergeler satırı için bir ok sembolü ayarlar. PlotIndexSetInteger |
bool SetIndexBuffer(int index, double array[]) | bool SetIndexBuffer(index,array,INDICATOR_DATA) | SetIndexBuffer Genel düzeyde bildirilen dizi değişkenini önceden tanımlanmış özel gösterge arabelleğine bağlar. SetIndexBuffer |
void SetIndexDrawBegin(int index, int begin) | bool PlotIndexSetInteger(index,PLOT_DRAW_BEGIN,begin) | SetIndexDrawBegin Belirli bir gösterge çizgisinin çiziminin başlaması gereken çubuk numarasını (veri başlangıcından itibaren) ayarlar. PlotIndexSetInteger |
void SetIndexEmptyValue(int index, double value) | bool PlotIndexSetDouble(index,PLOT_EMPTY_VALUE,value) | SetIndexEmptyValue Çizim satırı boş değerini ayarlar. PlotIndexSetDouble |
void SetIndexLabel(int index, string text) | bool PlotIndexSetString(index,PLOT_LABEL,text) | SetIndexLabel Çizim satırı açıklamasını DataWindow'da ve araç ipucunda gösterilecek şekilde ayarlar. PlotIndexSetString |
void SetIndexShift(int index, int shift) | bool PlotIndexSetInteger(index,PLOT_SHIFT,shift) | SetIndexShift Çizim satırı için ofseti ayarlar. PlotIndexSetInteger |
void SetIndexStyle(int index, int type, int style=EMPTY, int width=EMPTY, color clr=CLR_NONE) | void SetIndexStyleMQL4(int index, int type, int style=EMPTY, int width=EMPTY, color clr=CLR_NONE) { if(width>-1) PlotIndexSetInteger(index,PLOT_LINE_WIDTH,width); if(clr!=CLR_NONE) PlotIndexSetInteger(index,PLOT_LINE_COLOR,clr); switch(type) { case 0: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE); case 1: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_SECTION); case 2: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_HISTOGRAM); case 3: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_ARROW); case 4: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_ZIGZAG); case 12: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_NONE); default: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE); } switch(style) { case 0: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_SOLID); case 1: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DASH); case 2: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DOT); case 3: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DASHDOT); case 4: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DASHDOTDOT); default: return; } | SetIndexStyle Belirli bir gösterge çizgisi için yeni türü, stili, genişliği ve rengi ayarlar. PlotIndexSetInteger |
void SetLevelStyle(int draw_style, int line_width, color clr=CLR_NONE) | void SetLevelStyleMQL4(int draw_style, int line_width, color clr=CLR_NONE) { IndicatorSetInteger(INDICATOR_LEVELWIDTH,line_width); if(clr!=CLR_NONE) IndicatorSetInteger(INDICATOR_LEVELCOLOR,clr); switch(draw_style) { case 0: IndicatorSetInteger(INDICATOR_LEVELSTYLE,STYLE_SOLID); case 1: IndicatorSetInteger(INDICATOR_LEVELSTYLE,STYLE_DASH); case 2: IndicatorSetInteger(INDICATOR_LEVELSTYLE,STYLE_DOT); case 3: IndicatorSetInteger(INDICATOR_LEVELSTYLE,STYLE_DASHDOT); case 4: IndicatorSetInteger(INDICATOR_LEVELSTYLE,STYLE_DASHDOTDOT); default: return; } } | SetLevelStyle İşlev, ayrı bir pencerede görüntülenecek göstergenin yatay düzeylerinin yeni stilini, genişliğini ve rengini ayarlar. IndicatorSetInteger |
void SetLevelValue(int level, double value) | bool IndicatorSetDouble(INDICATOR_LEVELVALUE,level,value) | SetLevelValue İşlev, göstergenin belirli bir yatay düzeyi için ayrı bir pencerede görüntülenecek bir değer ayarlar. IndicatorSetDouble |
11. Tarih ve Saat İşlevleri
MQL4 | MQL5 | Açıklama |
---|---|---|
int Day() | int DayMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.day); } | Gün Ayın geçerli gününü, yani bilinen son sunucu zamanının ayın gününü döndürür. TimeCurrent, MqlDateTime |
int DayOfWeek() | int DayOfWeekMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.day_of_week); } | DayOfWeek Bilinen son sunucu zamanının haftanın geçerli sıfır tabanlı gününü (0-Pazar,1,2,3,4,5,6) döndürür. TimeCurrent, MqlDateTime |
int DayOfYear() | int DayOfYearMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.day_of_year); } | DayOfYear Yılın geçerli gününü (1, 1 Ocak anlamına gelir,..,365(6) 31 Aralık anlamına gelir); yani bilinen son sunucu zamanının yılın gününü döndürür. TimeCurrent, MqlDateTime |
int Hour() | int HourMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.hour); } | Saat Programın başlatıldığı ana kadar bilinen son sunucu zamanının saatini (0,1,2,..23) döndürür (bu değer, program yürütme süresi içinde değişmez). TimeCurrent, MqlDateTime |
int Minute() | int MinuteMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.min); } | Dakika Programın başlatıldığı ana kadar bilinen son sunucu zamanının geçerli dakikasını (0,1,2,..59) döndürür (bu değer, program yürütme süresi içinde değişmez). TimeCurrent, MqlDateTime |
int Month() | int MonthMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.mon); } | Ay Geçerli ayı sayı (1-Ocak,2,3,4,5,6,7,8,9,10,11,12) - yani bilinen son sunucu zamanının ay sayısı - olarak döndürür. TimeCurrent, MqlDateTime |
int Seconds() | int SecondsMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.sec); } | Saniye Bilinen son sunucu zamanının geçerli dakikasının başlangıcından programın başlatıldığı ana kadar geçen saniye miktarını döndürür (bu değer, program yürütme süresi içinde değişmez). TimeCurrent, MqlDateTime |
datetime TimeCurrent() | datetime TimeCurrent() | TimeCurrent 1 Ocak 1970 00:00'dan geçen saniye sayısı olarak bilinen son sunucu zamanını (en son fiyat teklifinin gelme zamanı) döndürür. TimeCurrent |
int TimeDay(datetime date) | int TimeDayMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.day); } | TimeDay Belirtilen tarih için ayın gününü (1 - 31) döndürür. TimeToStruct, MqlDateTime |
int TimeDayOfWeek(datetime date) | int TimeDayOfWeekMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.day_of_week); } | TimeDayOfWeek Belirtilen tarih için sıfır tabanlı haftanın gününü (0 Pazar,1,2,3,4,5,6 anlamına gelir) döndürür. TimeToStruct, MqlDateTime |
int TimeDayOfYear(datetime date) | int TimeDayOfYearMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.day_of_year); } | TimeDayOfYear Belirtilen tarih için yılın gününü (1, 1 Ocak,..,365(6) 31 Aralık anlamına gelir) döndürür. TimeToStruct, MqlDateTime |
int TimeHour(datetime time) | int TimeHourMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.hour); } | TimeHour Belirtilen süre için saati döndürür. TimeToStruct, MqlDateTime |
datetime TimeLocal() | datetime TimeLocal() | TimeLocal Yerel bilgisayar saatini 1 Ocak 1970 00:00'dan itibaren geçen saniye sayısı olarak döndürür. TimeLocal |
int TimeMinute(datetime time) | int TimeMinuteMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.min); } | TimeMinute Belirtilen süre için dakikayı döndürür. TimeToStruct, MqlDateTime |
int TimeMonth(datetime time) | int TimeMonthMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.mon); } | TimeMonth Belirtilen zaman için ay sayısını döndürür. TimeToStruct, MqlDateTime |
int TimeSeconds(datetime time) | int TimeSecondsMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.sec); } | TimeSeconds Belirtilen zaman için dakikanın başlangıcından itibaren geçen saniye miktarını döndürür. TimeToStruct, MqlDateTime |
int TimeYear(datetime time) | int TimeYearMQL4(datetime date) { MqlDateTime tm; TimeToStruct(date,tm); return(tm.year); } | TimeYear Belirtilen tarih için yılı döndürür. Döndürülen değer, 1970 ile 2037 aralığında olabilir. TimeToStruct, MqlDateTime |
int Year() | int YearMQL4() { MqlDateTime tm; TimeCurrent(tm); return(tm.year); } | Yıl Geçerli yılı, yani bilinen son sunucu zamanının yılını döndürür. TimeCurrent, MqlDateTime |
12. Dosya İşlevleri
MQL4 | MQL5 | Açıklama |
---|---|---|
void FileClose(int handle) | void FileClose(int file_handle) | FileClose FileOpen() işlevi tarafından önceden açılmış dosyayı kapatır. FileClose |
void FileDelete(string filename) | bool FileDelete(string file_name int common_flag=0) | FileDelete Belirtilen dosya adını kaldırır. FileDelete |
void FileFlush(int handle) | void FileFlush(int file_handle) | FileFlush Dosya arabelleğinde depolanan tüm verileri diske boşaltır. FileFlush |
bool FileIsEnding(int handle) | bool FileIsEnding(int file_handle) | FileIsEnding Dosya işaretçisi dosyanın sonundaysa mantıksal true, aksi takdirde false değerini döndürür. FileIsEnding |
bool FileIsLineEnding(int handle) | bool FileIsLineEnding(int file_handle) | FileIsLineEnding CSV dosyası için, dosya işaretçisi satırın sonundaysa mantıksal true, aksi takdirde false değerini döndürür. FileIsLineEnding |
int FileOpen(string filename, int mode, int delimiter=';') | int FileOpen(string ile_name, int pen_flags, short delimiter='\t' uint codepage=CP_ACP) | FileOpen Giriş ve/veya çıkış için dosyayı açar. Açılan dosya için bir dosya tanıtıcısını veya -1 (işlev başarısız olursa) değerini döndürür. FileOpen |
int FileOpenHistory(string filename, int mode, int delimiter=';') | - | FileOpenHistory Dosyayı geçerli geçmiş dizininde (terminal_directory\history\server_name) veya alt klasörlerinde açar. Açılan dosya için dosya tanıtıcısını döndürür. İşlev başarısız olursa döndürülen değer -1'dir. |
int FileReadArray(int handle, object &array[], int start, int count) | uint FileReadArray(int file_handle, void array[], int start_item=0, int items_count=WHOLE_ARRAY) | FileReadArray İkili dosyadan belirtilen miktarda öğeyi diziye okur. FileReadArray |
double FileReadDouble(int handle, int size=DOUBLE_VALUE) | double FileReadDoubleMQL4(int handle, int size=DOUBLE_VALUE) { return(FileReadDouble(handle)); } | FileReadDouble Geçerli ikili dosya pozisyonundan kayan noktalı çift duyarlıklı sayıyı okur. FileReadDouble |
int FileReadInteger(int handle, int size=LONG_VALUE) | int FileReadInteger(int file_handle, int size=INT_VALUE) | FileReadInteger İşlev, geçerli ikili dosya pozisyonundan tamsayıyı okur. FileReadInteger |
double FileReadNumber(int handle) | double FileReadNumber(int file_handle) | FileReadNumber Sınırlayıcıdan önceki geçerli dosya pozisyonundan sayıyı okur. Yalnızca CSV dosyaları içindir. FileReadNumber |
string FileReadString(int handle, int length=0) | string FileReadString(int file_handle, int size=-1) | FileReadString Функция читает строку с текущей позиции файла. FileReadString |
bool FileSeek(int handle, int offset, int origin) | bool FileSeekMQL4(long handle, int offset, ENUM_FILE_POSITION origin) { FileSeek(handle,offset,origin); return(true); } | FileSeek İşlev, dosya işaretçisini başlangıçtan, sondan veya geçerli dosya pozisyonundan bayt cinsinden bir ofset olan yeni bir pozisyona taşır. FileSeek |
int FileSize(int handle) | ulong FileSize(int file_handle) | FileSize İşlev, dosya boyutunu bayt cinsinden döndürür. FileSize |
int FileTell(int handle) | ulong FileTell(int file_handle) | FileTell Dosya işaretçisinin geçerli pozisyonunu döndürür. FileTell |
int FileWrite(int handle,...) | uint FileWrite(int file_handle,...) | FileWrite İşlev, sınırlayıcı otomatik olarak eklenerek bir CSV dosyasına veri yazmak için tasarlanmıştır. FileWrite |
int FileWriteArray(int handle, object array[], int start, int count) | int FileWriteArray(int file_handle, void array[], int start_item=0, int items_count=WHOLE_ARRAY) | FileWriteArray İşlev, diziyi bir ikili dosyaya yazar. FileWriteArray |
int FileWriteDouble(int handle, double value, int size=DOUBLE_VALUE) | uint FileWriteDouble(int file_handle, double dvalue) | FileWriteDouble İşlev, kayan noktalı bir çift değeri ikili bir dosyaya yazar. FileWriteDouble |
int FileWriteInteger(int handle, int value, int size=LONG_VALUE) | uint FileWriteInteger(int file_handle, int ivalue, int size=INT_VALUE) | FileWriteInteger İşlev, tamsayı değerini ikili bir dosyaya yazar. FileWriteInteger |
int FileWriteString(int handle, string value, int size) | uint FileWriteString(int file_handle, string svalue, int size=-1) | FileWriteString İşlev, dizeyi geçerli dosya pozisyonundan ikili bir dosyaya yazar. FileWriteString |
13. Genel Değişkenler
MQL4 | MQL5 | Açıklama |
---|---|---|
bool GlobalVariableCheck(string name) | bool GlobalVariableCheck(string name) | GlobalVariableCheck Genel değişken varsa TRUE, aksi takdirde FALSE değerini döndürür. GlobalVariableCheck |
bool GlobalVariableDel(string name) | bool GlobalVariableDel(string name) | GlobalVariableDel Genel değişkeni siler. GlobalVariableDel |
double GlobalVariableGet(string name) | double GlobalVariableGet(string name) | GlobalVariableGet Varolan bir genel değişkenin değerini veya bir hata oluşursa 0'ı döndürür. GlobalVariableGet |
string GlobalVariableName(int index) | string GlobalVariableName(int index) | GlobalVariableName İşlev, genel değişkenler listesinde indeksine göre genel bir değişkenin adını döndürür. GlobalVariableName |
datetime GlobalVariableSet(string name, double value) | datetime GlobalVariableSet(string name, double value) | GlobalVariableSet Genel değişkenin yeni bir değerini ayarlar. Mevcut değilse, sistem yeni bir genel değişken oluşturur. GlobalVariableSet |
bool GlobalVariableSetOnCondition(string name, double value, double check_value) | bool GlobalVariableSetOnCondition(string name, double value, double check_value) | GlobalVariableSetOnCondition Geçerli değer üçüncü check_value parametresine eşitse mevcut genel değişkenin yeni değerini ayarlar. GlobalVariableSetOnCondition |
int GlobalVariablesDeleteAll(string prefix_name=NULL) | int GlobalVariablesDeleteAll(string prefix_name=NULL datetime limit_data=0) | GlobalVariablesDeleteAll Genel değişkenleri siler. GlobalVariablesDeleteAll |
int GlobalVariablesTotal() | int GlobalVariablesTotal() | GlobalVariablesTotal İşlev, genel değişkenlerin toplam sayısını döndürür. GlobalVariablesTotal |
14. Matematiksel İşlevler
MQL4 | MQL5 | Açıklama |
---|---|---|
double MathAbs(double value) | double MathAbs(double value) | MathAbs Belirtilen sayısal değerin mutlak değerini (modülü) döndürür. MathAbs |
double MathArccos(double x) | double MathArccos(double val) | MathArccos MathArccos işlevi, 0 ila Pi (radyan cinsinden) aralığında x'in arkkosinüsünü döndürür. MathArccos |
double MathArcsin(double x) | double MathArcsin(double val) | MathArcsin MathArcsin işlevi, -Pi/2 ile Pi/2 radyan aralığında x'in arksinüsünü döndürür. MathArcsin |
double MathArctan(double x) | double MathArctan(double value) | MathArctan MathArctan, x'in arktanjantını döndürür. MathArctan |
double MathCeil(double x) | double MathCeil(double val) | MathCeil MathCeil işlevi, x'i aşan veya ona eşit olan en küçük tamsayıyı temsil eden sayısal bir değer döndürür. MathCeil |
double MathCos(double value) | double MathCos(double value) | MathCos Belirtilen açının kosinüsünü döndürür. MathCos |
double MathExp(double d) | double MathExp(double value) | MathExp d'nin kuvvetine yükseltilmiş e değerini döndürür. MathExp |
double MathFloor(double x) | double MathFloor(double val) | MathFloor MathFloor işlevi, x'ten küçük veya ona eşit olan en büyük tamsayıyı temsil eden sayısal bir değer döndürür. MathFloor |
double MathLog(double x) | double MathLog(double val) | MathLog MathLog işlevi, başarılı olursa, x'in doğal logaritmasını döndürür. MathLog |
double MathMax(double value1, double value2) | double MathMax(double value1, double value2) | MathMax İki sayısal değerin maksimum değerini döndürür. MathMax |
double MathMin(double value1, double value2) | double MathMin(double value1, double value2) | MathMin İki sayısal değerin minimum değerini döndürür. MathMin |
double MathMod(double value1, double value2) | double MathMod(double value1, double value2) | MathMod İşlev, iki sayının bölünmesinden kalan kayan noktayı döndürür. MathMod |
double MathPow(double base, double exponent) | double MathPow(double base, double exponent) | MathPow Belirtilen kuvvete yükseltilmiş temel ifadenin değerini döndürür (üs değeri). MathPow |
int MathRand() | int MathRand() | MathRand MathRand işlevi, 0 ile 32767 aralığında bir yalancı rastgele tamsayı döndürür. MathRand |
double MathRound(double value) | double MathRound(double value) | MathRound Belirtilen sayısal değerin en yakın tamsayısına yuvarlanmış değeri döndürür. MathRound |
double MathSin(double value) | double MathSin(double value) | MathSin Belirtilen açının sinüsünü döndürür. MathSin |
double MathSqrt(double x) | double MathSqrt(double value) | MathSqrt MathSqrt işlevi, x'in karekökünü döndürür. MathSqrt |
void MathSrand(int seed) | void MathSrand(int seed) | MathSrand MathSrand() işlevi, bir dizi yalancı rastgele tamsayı oluşturmak için başlangıç noktasını ayarlar. MathSrand |
double MathTan(double x) | double MathTan(double rad) | MathTan MathTan, x'in tanjantını döndürür. MathTan |
15. Nesne İşlevleri
MQL4 | MQL5 | Açıklama |
---|---|---|
bool ObjectCreate(string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0) | bool ObjectCreateMQL4(string name, ENUM_OBJECT type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0) { return(ObjectCreate(0,name,type,window, time1,price1,time2,price2,time3,price3)); } | ObjectCreate Belirtilen pencerede belirtilen ad, tür ve başlangıç koordinatlarına sahip bir nesne oluşturur. ObjectCreate |
bool ObjectDelete(string name) | bool ObjectDeleteMQL4(string name) { return(ObjectDelete(0,name)); } | ObjectDelete Belirtilen ada sahip nesneyi siler. ObjectDelete |
string ObjectDescription(string name) | string ObjectDescriptionMQL4(string name) { return(ObjectGetString(0,name,OBJPROP_TEXT)); } | ObjectDescription Nesne açıklamasını döndür. ObjectGetString |
int ObjectFind(string name) | int ObjectFindMQL4(string name) { return(ObjectFind(0,name)); } | ObjectFind Belirtilen ada sahip bir nesne arar. ObjectFind |
double ObjectGet(string name, int prop_id) | double ObjectGetMQL4(string name, int index) { switch(index) { case OBJPROP_TIME1: return(ObjectGetInteger(0,name,OBJPROP_TIME)); case OBJPROP_PRICE1: return(ObjectGetDouble(0,name,OBJPROP_PRICE)); case OBJPROP_TIME2: return(ObjectGetInteger(0,name,OBJPROP_TIME,1)); case OBJPROP_PRICE2: return(ObjectGetDouble(0,name,OBJPROP_PRICE,1)); case OBJPROP_TIME3: return(ObjectGetInteger(0,name,OBJPROP_TIME,2)); case OBJPROP_PRICE3: return(ObjectGetDouble(0,name,OBJPROP_PRICE,2)); case OBJPROP_COLOR: return(ObjectGetInteger(0,name,OBJPROP_COLOR)); case OBJPROP_STYLE: return(ObjectGetInteger(0,name,OBJPROP_STYLE)); case OBJPROP_WIDTH: return(ObjectGetInteger(0,name,OBJPROP_WIDTH)); case OBJPROP_BACK: return(ObjectGetInteger(0,name,OBJPROP_WIDTH)); case OBJPROP_RAY: return(ObjectGetInteger(0,name,OBJPROP_RAY_RIGHT)); case OBJPROP_ELLIPSE: return(ObjectGetInteger(0,name,OBJPROP_ELLIPSE)); case OBJPROP_SCALE: return(ObjectGetDouble(0,name,OBJPROP_SCALE)); case OBJPROP_ANGLE: return(ObjectGetDouble(0,name,OBJPROP_ANGLE)); case OBJPROP_ARROWCODE: return(ObjectGetInteger(0,name,OBJPROP_ARROWCODE)); case OBJPROP_TIMEFRAMES: return(ObjectGetInteger(0,name,OBJPROP_TIMEFRAMES)); case OBJPROP_DEVIATION: return(ObjectGetDouble(0,name,OBJPROP_DEVIATION)); case OBJPROP_FONTSIZE: return(ObjectGetInteger(0,name,OBJPROP_FONTSIZE)); case OBJPROP_CORNER: return(ObjectGetInteger(0,name,OBJPROP_CORNER)); case OBJPROP_XDISTANCE: return(ObjectGetInteger(0,name,OBJPROP_XDISTANCE)); case OBJPROP_YDISTANCE: return(ObjectGetInteger(0,name,OBJPROP_YDISTANCE)); case OBJPROP_FIBOLEVELS: return(ObjectGetInteger(0,name,OBJPROP_LEVELS)); case OBJPROP_LEVELCOLOR: return(ObjectGetInteger(0,name,OBJPROP_LEVELCOLOR)); case OBJPROP_LEVELSTYLE: return(ObjectGetInteger(0,name,OBJPROP_LEVELSTYLE)); case OBJPROP_LEVELWIDTH: return(ObjectGetInteger(0,name,OBJPROP_LEVELWIDTH)); } } | ObjectGet İşlev, belirtilen nesne özelliğinin değerini döndürür. ObjectGetInteger, ObjectGetDouble |
string ObjectGetFiboDescription(string name, int index) | string ObjectGetFiboDescriptionMQL4(string name, int index) { return(ObjectGetString(0,name,OBJPROP_LEVELTEXT,index)); } | ObjectGetFiboDescription İşlev, bir Fibonacci nesnesinin düzey açıklamasını döndürür. ObjectGetString |
int ObjectGetShiftByValue(string name, double value) | int ObjectGetShiftByValueMQL4(string name, double value) { ENUM_TIMEFRAMES timeframe=TFMigrate(PERIOD_CURRENT); datetime Arr[]; int shift; MqlRates mql4[]; if(ObjectGetTimeByValue(0,name,value)<0) return(-1); CopyRates(NULL,timeframe,0,1,mql4); if(CopyTime(NULL,timeframe,mql4[0].time, ObjectGetTimeByValue(0,name,value),Arr)>0) return(ArraySize(Arr)-1); else return(-1); } | ObjectGetShiftByValue İşlev, belirtilen fiyat için çubuk indeksini (geçerli çubukla ilgili kayma) hesaplar ve döndürür. MqlRates, ObjectGetTimeByValue, CopyRates, CopyTime, ArraySize |
double ObjectGetValueByShift(string name, int shift) | double ObjectGetValueByShiftMQL4(string name, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(PERIOD_CURRENT); MqlRates mql4[]; CopyRates(NULL,timeframe,shift,1,mql4); return(ObjectGetValueByTime(0,name,mql4[0].time,0)); } | ObjectGetValueByShift İşlev, belirtilen çubuk için fiyat değerini (geçerli çubukla ilgili kayma) hesaplar ve döndürür. MqlRates, CopyRates, ObjectGetValueByTime |
bool ObjectMove(string name, int point, datetime time1, double price1) | bool ObjectMoveMQL4(string name, int point, datetime time1, double price1) { return(ObjectMove(0,name,point,time1,price1)); } | ObjectMove İşlev, grafikteki bir nesne koordinatını taşır. Nesneler, türlerine bağlı olarak birden üçe kadar koordinatlara sahip olabilir. ObjectMove |
string ObjectName(int index) | string ObjectNameMQL4(int index) { return(ObjectName(0,index)); } | ObjectName İşlev, nesneler listesindeki indeksine göre nesne adını döndürür. ObjectName |
int ObjectsDeleteAll(int window=EMPTY, int type=EMPTY) | int ObjectsDeleteAllMQL4(int window=EMPTY, int type=EMPTY) { return(ObjectsDeleteAll(0,window,type)); } | ObjectsDeleteAll Belirtilen türdeki ve grafiğin belirtilen alt penceresindeki tüm nesneleri kaldırır. ObjectsDeleteAll |
bool ObjectSet(string name, int prop_id, double value) | bool ObjectSetMQL4(string name, int index, double value) { switch(index) { case OBJPROP_TIME1: ObjectSetInteger(0,name,OBJPROP_TIME,(int)value);return(true); case OBJPROP_PRICE1: ObjectSetDouble(0,name,OBJPROP_PRICE,value);return(true); case OBJPROP_TIME2: ObjectSetInteger(0,name,OBJPROP_TIME,1,(int)value);return(true); case OBJPROP_PRICE2: ObjectSetDouble(0,name,OBJPROP_PRICE,1,value);return(true); case OBJPROP_TIME3: ObjectSetInteger(0,name,OBJPROP_TIME,2,(int)value);return(true); case OBJPROP_PRICE3: ObjectSetDouble(0,name,OBJPROP_PRICE,2,value);return(true); case OBJPROP_COLOR: ObjectSetInteger(0,name,OBJPROP_COLOR,(int)value);return(true); case OBJPROP_STYLE: ObjectSetInteger(0,name,OBJPROP_STYLE,(int)value);return(true); case OBJPROP_WIDTH: ObjectSetInteger(0,name,OBJPROP_WIDTH,(int)value);return(true); case OBJPROP_BACK: ObjectSetInteger(0,name,OBJPROP_BACK,(int)value);return(true); case OBJPROP_RAY: ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,(int)value);return(true); case OBJPROP_ELLIPSE: ObjectSetInteger(0,name,OBJPROP_ELLIPSE,(int)value);return(true); case OBJPROP_SCALE: ObjectSetDouble(0,name,OBJPROP_SCALE,value);return(true); case OBJPROP_ANGLE: ObjectSetDouble(0,name,OBJPROP_ANGLE,value);return(true); case OBJPROP_ARROWCODE: ObjectSetInteger(0,name,OBJPROP_ARROWCODE,(int)value);return(true); case OBJPROP_TIMEFRAMES: ObjectSetInteger(0,name,OBJPROP_TIMEFRAMES,(int)value);return(true); case OBJPROP_DEVIATION: ObjectSetDouble(0,name,OBJPROP_DEVIATION,value);return(true); case OBJPROP_FONTSIZE: ObjectSetInteger(0,name,OBJPROP_FONTSIZE,(int)value);return(true); case OBJPROP_CORNER: ObjectSetInteger(0,name,OBJPROP_CORNER,(int)value);return(true); case OBJPROP_XDISTANCE: ObjectSetInteger(0,name,OBJPROP_XDISTANCE,(int)value);return(true); case OBJPROP_YDISTANCE: ObjectSetInteger(0,name,OBJPROP_YDISTANCE,(int)value);return(true); case OBJPROP_FIBOLEVELS: ObjectSetInteger(0,name,OBJPROP_LEVELS,(int)value);return(true); case OBJPROP_LEVELCOLOR: ObjectSetInteger(0,name,OBJPROP_LEVELCOLOR,(int)value);return(true); case OBJPROP_LEVELSTYLE: ObjectSetInteger(0,name,OBJPROP_LEVELSTYLE,(int)value);return(true); case OBJPROP_LEVELWIDTH: ObjectSetInteger(0,name,OBJPROP_LEVELWIDTH,(int)value);return(true); default: return(false); } return(false); } | ObjectSet Belirtilen nesne özelliğinin değerini değiştirir. ObjectSetInteger, ObjectSetDouble |
bool ObjectSetFiboDescription(string name, int index, string text) | bool ObjectSetFiboDescriptionMQL4(string name, int index, string text) { return(ObjectSetString(0,name,OBJPROP_LEVELTEXT,index,text)); } | ObjectSetFiboDescription İşlev, bir Fibonacci nesnesinin düzeyine yeni bir açıklama atar. ObjectSetString |
bool ObjectSetText(string name, string text, int font_size, string font_name=NULL, color text_color=CLR_NONE) | bool ObjectSetTextMQL4(string name, string text, int font_size, string font="", color text_color=CLR_NONE) { int tmpObjType=(int)ObjectGetInteger(0,name,OBJPROP_TYPE); if(tmpObjType!=OBJ_LABEL && tmpObjType!=OBJ_TEXT) return(false); if(StringLen(text)>0 && font_size>0) { if(ObjectSetString(0,name,OBJPROP_TEXT,text)==true && ObjectSetInteger(0,name,OBJPROP_FONTSIZE,font_size)==true) { if((StringLen(font)>0) && ObjectSetString(0,name,OBJPROP_FONT,font)==false) return(false); if(text_color>-1 && ObjectSetInteger(0,name,OBJPROP_COLOR,text_color)==false) return(false); return(true); } return(false); } return(false); } | ObjectSetText Nesne açıklamasını değiştirir. ObjectGetInteger, ObjectSetString, ObjectSetInteger StringLen |
int ObjectsTotal(int type=EMPTY) | int ObjectsTotalMQL4(int type=EMPTY, int window=-1) { return(ObjectsTotal(0,window,type)); } | ObjectsTotal Grafikte belirtilen türdeki nesnelerin toplam miktarını döndürür. ObjectsTotal |
int ObjectType(string name) | int ObjectTypeMQL4(string name) { return((int)ObjectGetInteger(0,name,OBJPROP_TYPE)); } | ObjectType İşlev, nesne türü değerini döndürür. ObjectGetInteger |
16. Dize İşlevleri
MQL4 | MQL5 | Açıklama |
---|---|---|
string StringConcatenate(...) | int StringConcatenate(string &string_var, void argument1 void argument2 ...) | StringConcatenate İletilen verilerin bir dizesini oluşturur ve onu döndürür. StringConcatenate |
int StringFind(string text, string matched_text, int start=0) | int StringFind(string string_value, string match_substring, int start_pos=0) | StringFind Bir alt dize arar. Aranan alt dizenin başladığı dizedeki pozisyonu veya alt dize bulunamadıysa -1 değerini döndürür. StringFind |
int StringGetChar(string text, int pos) | ushort StringGetCharacter(string string_value, int pos) | StringGetChar Dizede belirtilen pozisyondan karakter (kod) döndürür. StringGetCharacter |
int StringLen(string text) | int StringLen(string string_value) | StringLen Bir dizedeki karakter sayısını döndürür. StringLen |
string StringSetChar(string text, int pos, int value) | bool StringSetCharacter(string &string_var, int pos, ushort character) | StringSetChar Belirtilen pozisyonda değiştirilen karaktere sahip dize kopyasını döndürür. StringSetCharacter |
string StringSubstr(string text, int start, int length=0) | string StringSubstr(string string_value, int start_pos, int length=-1) | StringSubstr Belirtilen pozisyondan başlayarak metin dizesinden bir alt dize ayıklar. StringSubstr |
string StringTrimLeft(string text) | int StringTrimLeft(string& string_var) | StringTrimLeft İşlev, dizenin sol kısmındaki satır besleme karakterlerini, boşlukları ve sekmeleri keser. StringTrimLeft |
string StringTrimRight(string text) | int StringTrimRight(string& string_var) | StringTrimRight İşlev, dizenin sağ kısmındaki satır besleme karakterlerini, boşlukları ve sekmeleri keser. StringTrimRight |
17. Teknik Göstergeler
Expert Advisor'larda teknik göstergelerin kullanım prensipleri, Yeni Başlayanlar için MQL5:Expert Advisor'larda Teknik Göstergeler için Kullanım Kılavuzu makalesinde ele alınmaktadır. Bu referansta kullanılan yöntem, belirtilen fiyat için gösterge hesaplama sonuçlarını almak için yeterlidir. Bu yöntemi kullanmak için yardımcı işleve ihtiyacımız var:
double CopyBufferMQL4(int handle,int index,int shift) { double buf[]; switch(index) { case 0: if(CopyBuffer(handle,0,shift,1,buf)>0) return(buf[0]); break; case 1: if(CopyBuffer(handle,1,shift,1,buf)>0) return(buf[0]); break; case 2: if(CopyBuffer(handle,2,shift,1,buf)>0) return(buf[0]); break; case 3: if(CopyBuffer(handle,3,shift,1,buf)>0) return(buf[0]); break; case 4: if(CopyBuffer(handle,4,shift,1,buf)>0) return(buf[0]); break; default: break; } return(EMPTY_VALUE); }Aşağıdaki sabitleri bildirelim:
ENUM_MA_METHOD MethodMigrate(int method) { switch(method) { case 0: return(MODE_SMA); case 1: return(MODE_EMA); case 2: return(MODE_SMMA); case 3: return(MODE_LWMA); default: return(MODE_SMA); } } ENUM_APPLIED_PRICE PriceMigrate(int price) { switch(price) { case 1: return(PRICE_CLOSE); case 2: return(PRICE_OPEN); case 3: return(PRICE_HIGH); case 4: return(PRICE_LOW); case 5: return(PRICE_MEDIAN); case 6: return(PRICE_TYPICAL); case 7: return(PRICE_WEIGHTED); default: return(PRICE_CLOSE); } } ENUM_STO_PRICE StoFieldMigrate(int field) { switch(field) { case 0: return(STO_LOWHIGH); case 1: return(STO_CLOSECLOSE); default: return(STO_LOWHIGH); } } //+------------------------------------------------------------------+ enum ALLIGATOR_MODE { MODE_GATORJAW=1, MODE_GATORTEETH, MODE_GATORLIPS }; enum ADX_MODE { MODE_MAIN, MODE_PLUSDI, MODE_MINUSDI }; enum UP_LOW_MODE { MODE_BASE, MODE_UPPER, MODE_LOWER }; enum ICHIMOKU_MODE { MODE_TENKANSEN=1, MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN }; enum MAIN_SIGNAL_MODE{ MODE_MAIN, MODE_SIGNAL };
MQL4 | MQL5 | Açıklama |
---|---|---|
double iAC(string symbol, int timeframe, int shift) | double iACMQL4(string symbol, int tf, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iAC(symbol,timeframe); if(handle<0) { Print("The iAC object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iAC Bill Williams'ın Hızlandırıcı/Yavaşlatıcı osilatörünü hesaplar. iAC |
double iAD(string symbol, int timeframe, int shift) | double iADMQL4(string symbol, int tf, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=(int)iAD(symbol,timeframe,VOLUME_TICK); if(handle<0) { Print("The iAD object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iAD Alım/Dağıtım göstergesini hesaplar ve değerini döndürür. iAD |
double iAlligator(string symbol, int timeframe, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift, int lips_period, int lips_shift, int ma_method, int applied_price, int mode, int shift) | double iAlligatorMQL4(string symbol, int tf, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift, int lips_period, int lips_shift, int method, int price, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iAlligator(symbol,timeframe,jaw_period,jaw_shift, teeth_period,teeth_shift, lips_period,lips_shift, ma_method,applied_price); if(handle<0) { Print("The iAlligator object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode-1,shift)); } | iAlligator Bill Williams'ın Alligator'ını hesaplar ve değerini döndürür. iAlligator |
double iADX(string symbol, int timeframe, int period, int applied_price, int mode, int shift) | double iADXMQL4(string symbol, int tf, int period, int price, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iADX(symbol,timeframe,period); if(handle<0) { Print("The iADX object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode,shift)); } | iADX Yönlü Hareket indeksini hesaplar ve değerini döndürür. iADX |
double iATR(string symbol, int timeframe, int period, int shift) | double iATRMQL4(string symbol, int tf, int period, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iATR(symbol,timeframe,period); if(handle<0) { Print("The iATR object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iATR Ortalama gerçek aralığın Göstergesini hesaplar ve değerini döndürür. iATR |
double iAO(string symbol, int timeframe, int shift) | double iAOMQL4(string symbol, int tf, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iAO(symbol,timeframe); if(handle<0) { Print("The iAO object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iAO Bill Williams'ın Awesome osilatörünü hesaplar ve değerini döndürür. iAO |
double iBearsPower(string symbol, int timeframe, int period, int applied_price, int shift) | double iBearsPowerMQL4(string symbol, int tf, int period, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iBearsPower(symbol,timeframe,period); if(handle<0) { Print("The iBearsPower object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iBearsPower Ayıların Gücü göstergesini hesaplar ve değerini döndürür. iBearsPower |
double iBands(string symbol, int timeframe, int period, int deviation, int bands_shift, int applied_price, int mode, int shift) | double iBandsMQL4(string symbol, int tf, int period, double deviation, int bands_shift, int method, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); int handle=iBands(symbol,timeframe,period, bands_shift,deviation,ma_method); if(handle<0) { Print("The iBands object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode,shift)); } | iBands Bollinger bantları göstergesini hesaplar ve değerini döndürür. iBands |
double iBandsOnArray(double array[], int total, int period, int deviation, int bands_shift, int mode, int shift) | - | iBandsOnArray Sayısal bir dizide depolanan verilerde Bollinger Bantları göstergesini hesaplar. |
double iBullsPower(string symbol, int timeframe, int period, int applied_price, int shift) | double iBullsPowerMQL4(string symbol, int tf, int period, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iBullsPower(symbol,timeframe,period); if(handle<0) { Print("The iBullsPower object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iBullsPower Boğaların Gücü göstergesini hesaplar ve değerini döndürür. iBullsPower |
double iCCI(string symbol, int timeframe, int period, int applied_price, int shift) | double iCCIMQL4(string symbol, int tf, int period, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iCCI(symbol,timeframe,period,price); if(handle<0) { Print("The iCCI object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iCCI Emtia kanal indeksini hesaplar ve değerini döndürür. iCCI |
double iCCIOnArray(double array[], int total, int period, int shift) | - | iCCIOnArray Sayısal bir dizide depolanan verilerde Emtia Kanal İndeksini hesaplar. |
double iCustom(string symbol, int timeframe, string name, ..., int mode, int shift) | int iCustom(string symbol, ENUM_TIMEFRAMES period, string name ...) | iCustom Belirtilen özel göstergeyi hesaplar ve değerini döndürür. iCustom |
double iDeMarker(string symbol, int timeframe, int period, int shift) | double iDeMarkerMQL4(string symbol, int tf, int period, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iDeMarker(symbol,timeframe,period); if(handle<0) { Print("The iDeMarker object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iDeMarker DeMarker göstergesini hesaplar ve değerini döndürür. iDeMarker |
double iEnvelopes(string symbol, int timeframe, int ma_period, int ma_method, int ma_shift, int applied_price, double deviation, int mode, int shift) | double EnvelopesMQL4(string symbol, int tf, int ma_period, int method, int ma_shift, int price, double deviation, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iEnvelopes(symbol,timeframe, ma_period,ma_shift,ma_method, applied_price,deviation); if(handle<0) { Print("The iEnvelopes object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode-1,shift)); } | iEnvelopes Zarflar göstergesini hesaplar ve değerini döndürür. iEnvelopes |
double iEnvelopesOnArray(double array[], int total, int ma_period, int ma_method, int ma_shift, double deviation, int mode, int shift) | - | iEnvelopesOnArray Sayısal bir dizide depolanan verilerde Zarflar göstergesini hesaplar. |
double iForce(string symbol, int timeframe, int period, int ma_method, int applied_price, int shift) | double iForceMQL4(string symbol, int tf, int period, int method, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); int handle=iForce(symbol,timeframe,period,ma_method,VOLUME_TICK); if(handle<0) { Print("The iForce object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iForce Kuvvet indeksini hesaplar ve değerini döndürür. iForce |
double iFractals(string symbol, int timeframe, int mode, int shift) | double iFractalsMQL4(string symbol, int tf, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iFractals(symbol,timeframe); if(handle<0) { Print("The iFractals object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode-1,shift)); } | iFractals Fraktalları hesaplar ve değerini döndürür. iFractals |
double iGator(string symbol, int timeframe, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift, int lips_period, int lips_shift, int ma_method, int applied_price, int mode, int shift) | double iGatorMQL4(string symbol, int tf, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift, int lips_period, int lips_shift, int method, int price, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iGator(symbol,timeframe,jaw_period,jaw_shift, teeth_period,teeth_shift, lips_period,lips_shift, ma_method,applied_price); if(handle<0) { Print("The iGator object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode-1,shift)); } | iGator Gator osilatörü hesabı. iGator |
double iIchimoku(string symbol, int timeframe, int tenkan_sen, int kijun_sen, int senkou_span_b, int mode, int shift) | double iIchimokuMQL4(string symbol, int tf, int tenkan_sen, int kijun_sen, int senkou_span_b, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iIchimoku(symbol,timeframe, tenkan_sen,kijun_sen,senkou_span_b); if(handle<0) { Print("The iIchimoku object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode-1,shift)); } | iIchimoku Ichimoku Kinko Hyo'yu hesaplar ve değerini döndürür. iIchimoku |
double iBWMFI(string symbol, int timeframe, int shift) | double iBWMFIMQL4(string symbol, int tf, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=(int)iBWMFI(symbol,timeframe,VOLUME_TICK); if(handle<0) { Print("The iBWMFI object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iBWMFI Bill Williams Piyasa Kolaylık indeksini hesaplar ve değerini döndürür. iBWMFI |
double iMomentum(string symbol, int timeframe, int period, int applied_price, int shift) | double iMomentumMQL4(string symbol, int tf, int period, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iMomentum(symbol,timeframe,period,applied_price); if(handle<0) { Print("The iMomentum object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iMomentum Momentum göstergesini hesaplar ve değerini döndürür. iMomentum |
double iMomentumOnArray(double array[], int total, int period, int shift) | - | iMomentumOnArray Sayısal bir dizide depolanan verilerde Momentum göstergesini hesaplar. |
double iMFI(string symbol, int timeframe, int period, int shift) | double iMFIMQL4(string symbol, int tf, int period, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=(int)iMFI(symbol,timeframe,period,VOLUME_TICK); if(handle<0) { Print("The iMFI object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iMFI Para akışı endeksini hesaplar ve değerini döndürür. iMFI |
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) | double iMAMQL4(string symbol, int tf, int period, int ma_shift, int method, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iMA(symbol,timeframe,period,ma_shift, ma_method,applied_price); if(handle<0) { Print("The iMA object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iMA Hareketli ortalama göstergesini hesaplar ve değerini döndürür. iMA |
double iMAOnArray(double array[], int total, int period, int ma_shift, int ma_method, int shift) | double iMAOnArrayMQL4(double &array[], int total, int period, int ma_shift, int ma_method, int shift) { double buf[],arr[]; if(total==0) total=ArraySize(array); if(total>0 && total<=period) return(0); if(shift>total-period-ma_shift) return(0); switch(ma_method) { case MODE_SMA : { total=ArrayCopy(arr,array,0,shift+ma_shift,period); if(ArrayResize(buf,total)<0) return(0); double sum=0; int i,pos=total-1; for(i=1;i<period;i++,pos--) sum+=arr[pos]; while(pos>=0) { sum+=arr[pos]; buf[pos]=sum/period; sum-=arr[pos+period-1]; pos--; } return(buf[0]); } case MODE_EMA : { if(ArrayResize(buf,total)<0) return(0); double pr=2.0/(period+1); int pos=total-2; while(pos>=0) { if(pos==total-2) buf[pos+1]=array[pos+1]; buf[pos]=array[pos]*pr+buf[pos+1]*(1-pr); pos--; } return(buf[shift+ma_shift]); } case MODE_SMMA : { if(ArrayResize(buf,total)<0) return(0); double sum=0; int i,k,pos; pos=total-period; while(pos>=0) { if(pos==total-period) { for(i=0,k=pos;i<period;i++,k++) { sum+=array[k]; buf[k]=0; } } else sum=buf[pos+1]*(period-1)+array[pos]; buf[pos]=sum/period; pos--; } return(buf[shift+ma_shift]); } case MODE_LWMA : { if(ArrayResize(buf,total)<0) return(0); double sum=0.0,lsum=0.0; double price; int i,weight=0,pos=total-1; for(i=1;i<=period;i++,pos--) { price=array[pos]; sum+=price*i; lsum+=price; weight+=i; } pos++; i=pos+period; while(pos>=0) { buf[pos]=sum/weight; if(pos==0) break; pos--; i--; price=array[pos]; sum=sum-lsum+price*period; lsum-=array[i]; lsum+=price; } return(buf[shift+ma_shift]); } default: return(0); } return(0); } | |
double iOsMA(string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int applied_price, int shift) | double iOsMAMQL4(string symbol, int tf, int fast_ema_period, int slow_ema_period, int signal_period, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iOsMA(symbol,timeframe, fast_ema_period,slow_ema_period, signal_period,applied_price); if(handle<0) { Print("The iOsMA object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iOsMA Osilatörün Hareketli Ortalamasını hesaplar ve değerini döndürür. iOsMA |
double iMACD(string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int applied_price, int mode, int shift) | double iMACDMQL4(string symbol, int tf, int fast_ema_period, int slow_ema_period, int signal_period, int price, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iMACD(symbol,timeframe, fast_ema_period,slow_ema_period, signal_period,applied_price); if(handle<0) { Print("The iMACD object is not created: Error ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode,shift)); } | iMACD Hareketli ortalamalar yakınsama/ıraksamayı hesaplar ve değerini döndürür. iMACD |
double iOBV(string symbol, int timeframe, int applied_price, int shift) | double iOBVMQL4(string symbol, int tf, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iOBV(symbol,timeframe,VOLUME_TICK); if(handle<0) { Print("The iOBV object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iOBV Denge İşlem Hacmi göstergesini hesaplar ve değerini döndürür. iOBV |
double iSAR(string symbol, int timeframe, double step, double maximum, int shift) | double iSARMQL4(string symbol, int tf, double step, double maximum, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iSAR(symbol,timeframe,step,maximum); if(handle<0) { Print("The iSAR object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iSAR Parabolik Dur ve Ters Pozisyon Al sistemini hesaplar ve değerini döndürür. iSAR |
double iRSI(string symbol, int timeframe, int period, int applied_price, int shift) | double iRSIMQL4(string symbol, int tf, int period, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iRSI(symbol,timeframe,period,applied_price); if(handle<0) { Print("The iRSI object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iRSI Göreceli güç indeksini hesaplar ve değerini döndürür. iRSI |
double iRSIOnArray(double array[], int total, int period, int shift) | - | iRSIOnArray Sayısal bir dizide depolanan verilerde Göreceli Güç İndeksini hesaplar. |
double iRVI(string symbol, int timeframe, int period, int mode, int shift) | double iRVIMQL4(string symbol, int tf, int period, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iRVI(symbol,timeframe,period); if(handle<0) { Print("The iRVI object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode,shift)); } | iRVI Göreceli Vigor indeksini hesaplar ve değerini döndürür. iRVI |
double iStdDev(string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift) | double iStdDevMQL4(string symbol, int tf, int ma_period, int ma_shift, int method, int price, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); ENUM_APPLIED_PRICE applied_price=PriceMigrate(price); int handle=iStdDev(symbol,timeframe,ma_period,ma_shift, ma_method,applied_price); if(handle<0) { Print("The iStdDev object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iStdDev Standart Sapma göstergesini hesaplar ve değerini döndürür. iStdDev |
double iStdDevOnArray(double array[], int total, int ma_period, int ma_shift, int ma_method, int shift) | - | iStdDevOnArray Sayısal bir dizide depolanan verilerde Standart Sapma göstergesinin hesaplanması. |
double iStochastic(string symbol, int timeframe, int%Kperiod, int%Dperiod, int slowing, int method, int price_field, int mode, int shift) | double iStochasticMQL4(string symbol, int tf, int Kperiod, int Dperiod, int slowing, int method, int field, int mode, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); ENUM_MA_METHOD ma_method=MethodMigrate(method); ENUM_STO_PRICE price_field=StoFieldMigrate(field); int handle=iStochastic(symbol,timeframe,Kperiod,Dperiod, slowing,ma_method,price_field); if(handle<0) { Print("The iStochastic object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,mode,shift)); } | iStochastic Stokastik osilatörü hesaplar ve değerini döndürür. iStochastic |
double iWPR(string symbol, int timeframe, int period, int shift) | double iWPRMQL4(string symbol, int tf, int period, int shift) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); int handle=iWPR(symbol,timeframe,period); if(handle<0) { Print("The iWPR object is not created: Error",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,shift)); } | iWPR Larry William'ın yüzde aralığı göstergesini hesaplar ve değerini döndürür. iWPR |
18. Zaman Serisi Erişimi
MQL4 | MQL5 | Açıklama |
---|---|---|
int iBars(string symbol, int timeframe) | int iBarsMQL4(string symbol,int tf) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); return(Bars(symbol,timeframe)); } | int iBarsMQL4(string symbol,int tf) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); return(Bars(symbol,timeframe)); }Çubuklar Belirtilen grafikteki çubuk sayısını döndürür. Çubuklar |
int iBarShift(string symbol, int timeframe, datetime time, bool exact=false | int iBarShiftMQL4(string symbol, int tf, datetime time, bool exact=false) { if(time<0) return(-1); ENUM_TIMEFRAMES timeframe=TFMigrate(tf); datetime Arr[],time1; CopyTime(symbol,timeframe,0,1,Arr); time1=Arr[0]; if(CopyTime(symbol,timeframe,time,time1,Arr)>0) { if(ArraySize(Arr)>2) return(ArraySize(Arr)-1); if(time<time1) return(1); else return(0); } else return(-1); } | iBarShift Çubuğu açılış saatine göre arar. CopyTime, ArraySize |
double iClose(string symbol, int timeframe, int shift) | double iCloseMQL4(string symbol,int tf,int index){ if(index < 0) return(-1); double Arr[]; ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(CopyClose(symbol,timeframe, index, 1, Arr)>0) return(Arr[0]); else return(-1); } | Kapanış Belirtilen sembolün çubuğu için zaman dilimi ve kayma ile Kapanış değerini döndürür. Yerel geçmiş boşsa (yüklenmemişse), işlev 0 değerini döndürür. CopyRates, MqlRates |
double iHigh(string symbol, int timeframe, int shift) | double iHighMQL4(string symbol,int tf,int index) { if(index < 0) return(-1); double Arr[]; ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(CopyHigh(symbol,timeframe, index, 1, Arr)>0) return(Arr[0]); else return(-1); } | Yüksek Belirtilen sembolün çubuğu için zaman dilimi ve kayma ile Yüksek değerini döndürür. Yerel geçmiş boşsa (yüklenmemişse), işlev 0 değerini döndürür. CopyRates, MqlRates |
int iHighest(string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0) | int iHighestMQL4(string symbol, int tf, int type, int count=WHOLE_ARRAY, int start=0) { if(start<0) return(-1); ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(count<=0) count=Bars(symbol,timeframe); if(type<=MODE_OPEN) { double Open[]; ArraySetAsSeries(Open,true); CopyOpen(symbol,timeframe,start,count,Open); return(ArrayMaximum(Open,0,count)+start); } if(type==MODE_LOW) { double Low[]; ArraySetAsSeries(Low,true); CopyLow(symbol,timeframe,start,count,Low); return(ArrayMaximum(Low,0,count)+start); } if(type==MODE_HIGH) { double High[]; ArraySetAsSeries(High,true); CopyHigh(symbol,timeframe,start,count,High); return(ArrayMaximum(High,0,count)+start); } if(type==MODE_CLOSE) { double Close[]; ArraySetAsSeries(Close,true); CopyClose(symbol,timeframe,start,count,Close); return(ArrayMaximum(Close,0,count)+start); } if(type==MODE_VOLUME) { long Volume[]; ArraySetAsSeries(Volume,true); CopyTickVolume(symbol,timeframe,start,count,Volume); return(ArrayMaximum(Volume,0,count)+start); } if(type>=MODE_TIME) { datetime Time[]; ArraySetAsSeries(Time,true); CopyTime(symbol,timeframe,start,count,Time); return(ArrayMaximum(Time,0,count)+start); //--- } return(0); } | iHighest Türe bağlı olarak belirli bir sayıda dönem boyunca maksimum değerin kaymasını döndürür. CopyOpen, CopyLow, CopyHigh, CopyClose, CopyTickVolume, CopyTime, ArrayMaximum |
double iLow(string symbol, int timeframe, int shift) | double iLowMQL4(string symbol,int tf,int index) { if(index < 0) return(-1); double Arr[]; ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(CopyLow(symbol,timeframe, index, 1, Arr)>0) return(Arr[0]); else return(-1); } | iLow Belirtilen sembolün çubuğu için zaman dilimi ve kayma ile Düşük değerini döndürür. Yerel geçmiş boşsa (yüklenmemişse), işlev 0 değerini döndürür. CopyRates, MqlRates |
int iLowest(string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0) | int iLowestMQL4(string symbol, int tf, int type, int count=WHOLE_ARRAY, int start=0) { if(start<0) return(-1); ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(count<=0) count=Bars(symbol,timeframe); if(type<=MODE_OPEN) { double Open[]; ArraySetAsSeries(Open,true); CopyOpen(symbol,timeframe,start,count,Open); return(ArrayMinimum(Open,0,count)+start); } if(type==MODE_LOW) { double Low[]; ArraySetAsSeries(Low,true); CopyLow(symbol,timeframe,start,count,Low); return(ArrayMinimum(Low,0,count)+start); } if(type==MODE_HIGH) { double High[]; ArraySetAsSeries(High,true); CopyHigh(symbol,timeframe,start,count,High); return(ArrayMinimum(High,0,count)+start); } if(type==MODE_CLOSE) { double Close[]; ArraySetAsSeries(Close,true); CopyClose(symbol,timeframe,start,count,Close); return(ArrayMinimum(Close,0,count)+start); } if(type==MODE_VOLUME) { long Volume[]; ArraySetAsSeries(Volume,true); CopyTickVolume(symbol,timeframe,start,count,Volume); return(ArrayMinimum(Volume,0,count)+start); } if(type>=MODE_TIME) { datetime Time[]; ArraySetAsSeries(Time,true); CopyTime(symbol,timeframe,start,count,Time); return(ArrayMinimum(Time,0,count)+start); } //--- return(0); } | iLowest Türe bağlı olarak belirli bir sayıda dönem boyunca en düşük değerin kaymasını döndürür. CopyOpen, CopyLow, CopyHigh, CopyClose, CopyTickVolume, CopyTime, ArrayMinimum |
double iOpen(string symbol, int timeframe, int shift) | double iOpenMQL4(string symbol,int tf,int index) { if(index < 0) return(-1); double Arr[]; ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(CopyOpen(symbol,timeframe, index, 1, Arr)>0) return(Arr[0]); else return(-1); } | iOpen Belirtilen sembolün çubuğu için zaman dilimi ve kayma ile Açılış değerini döndürür. Yerel geçmiş boşsa (yüklenmemişse), işlev 0 değerini döndürür. CopyRates, MqlRates |
datetime iTime(string symbol, int timeframe, int shift) | datetime iTimeMQL4(string symbol,int tf,int index) { if(index < 0) return(-1); ENUM_TIMEFRAMES timeframe=TFMigrate(tf); datetime Arr[]; if(CopyTime(symbol, timeframe, index, 1, Arr)>0) return(Arr[0]); else return(-1); } | iTime Belirtilen sembolün çubuğu için zaman dilimi ve kayma ile Zaman değerini döndürür. Yerel geçmiş boşsa (yüklenmemişse), işlev 0 değerini döndürür. CopyRates, MqlRates |
double iVolume(string symbol, int timeframe, int shift) | int iVolumeMQL4(string symbol,int tf,int index) { if(index < 0) return(-1); long Arr[]; ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(CopyTickVolume(symbol, timeframe, index, 1, Arr)>0) return(Arr[0]); else return(-1); } | iVolume Belirtilen sembolün çubuğu için zaman dilimi ve kayma ile Tick Hacmi değerini döndürür. Yerel geçmiş boşsa (yüklenmemişse), işlev 0 değerini döndürür. CopyRates, MqlRates |
19. Grafik İşlemleri
MQL4 | MQL5 | Açıklama |
---|---|---|
void HideTestIndicators(bool hide) | - | HideTestIndicators İşlev, Expert Advisor tarafından çağrılan bir bayrak gizleme göstergesi ayarlar. |
int Period() | ENUM_TIMEFRAMES Period() | Dönem Kullanılan dönemi (grafik zaman dilimi) belirleyen dakika miktarını döndürür. Dönem |
bool RefreshRates() | - | RefreshRates Önceden tanımlanmış değişkenlerde ve seri dizilerinde verilerin yenilenmesi. |
string Symbol() | string Symbol() | Symbol Geçerli finansal enstrümanın adını içeren bir metin dizesi döndürür. Sembol |
int WindowBarsPerChart() | int ChartGetInteger(0,CHART_VISIBLE_BARS,0) | WindowBarsPerChart İşlev, grafikte görünen çubuk miktarını döndürür. ChartGetInteger |
string WindowExpertName() | string MQLInfoString(MQL5_PROGRAM_NAME) | WindowExpertName Bu işlevin çağrıldığı MQL4 programına bağlı olarak yürütülen expert'in, script dosyasının, özel göstergenin veya kitaplığın adını döndürür. MQLInfoString |
int WindowFind(string name) | int WindowFindMQL4(string name) { int window=-1; if((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR) { window=ChartWindowFind(); } else { window=ChartWindowFind(0,name); if(window==-1) Print(__FUNCTION__+"(): Error = ",GetLastError()); } return(window); } | WindowFind Ada sahip bir gösterge bulunursa, işlev bu belirtilen göstergeyi içeren pencere indeksini döndürür, aksi takdirde -1 değerini döndürür. ChartWindowFind, MQLInfoInteger |
int WindowFirstVisibleBar() | int ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0) | WindowFirstVisibleBar İşlev, mevcut grafik penceresindeki ilk görünür çubuk numarasını döndürür. ChartGetInteger |
int WindowHandle(string symbol, int timeframe) | int WindowHandleMQL4(string symbol, int tf) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); long currChart,prevChart=ChartFirst(); int i=0,limit=100; while(i<limit) { currChart=ChartNext(prevChart); if(currChart<0) break; if(ChartSymbol(currChart)==symbol && ChartPeriod(currChart)==timeframe) return((int)currChart); prevChart=currChart; i++; } return(0); } | WindowHandle Belirtilen grafiğin sistem penceresi tanıtıcısını döndürür. ChartFirst, ChartNext, ChartSymbol, ChartPeriod |
bool WindowIsVisible(int index) | bool ChartGetInteger(0,CHART_WINDOW_IS_VISIBLE,index) | WindowIsVisible Grafik alt penceresi görünüyorsa TRUE, aksi takdirde FALSE değerini döndürür. ChartGetInteger |
int WindowOnDropped() | int ChartWindowOnDropped() | WindowOnDropped Expert, özel gösterge veya script dosyasının bırakıldığı pencere indeksini döndürür. ChartWindowOnDropped |
double WindowPriceMax(int index=0) | double ChartGetDouble(0,CHART_PRICE_MAX,index) | WindowPriceMax Mevcut grafiğin belirtilen alt penceresinin dikey ölçeğinin maksimum değerini döndürür (0-ana grafik penceresi, göstergelerin alt pencereleri 1'den başlayarak numaralandırılır). ChartGetDouble |
double WindowPriceMin(int index=0) | double ChartGetDouble(0,CHART_PRICE_MIN,index) | WindowPriceMin Mevcut grafiğin belirtilen alt penceresinin dikey ölçeğinin minimum değerini döndürür (0-ana grafik penceresi, göstergelerin alt pencereleri 1'den başlayarak numaralandırılır). ChartGetDouble |
double WindowPriceOnDropped() | double ChartPriceOnDropped() | WindowPriceOnDropped Expert veya script dosyasının bırakıldığı grafik noktasının fiyat bölümünü döndürür. ChartPriceOnDropped |
void WindowRedraw() | void ChartRedraw(0) | WindowRedraw Mevcut grafiği zorla yeniden çizer. ChartRedraw |
bool WindowScreenShot(string filename, int size_x, int size_y, int start_bar=-1, int chart_scale=-1, int chart_mode=-1) | bool WindowScreenShotMQL4(string filename, int size_x, int size_y, int start_bar=-1, int chart_scale=-1, int chart_mode=-1) { if(chart_scale>0 && chart_scale<=5) ChartSetInteger(0,CHART_SCALE,chart_scale); switch(chart_mode) { case 0: ChartSetInteger(0,CHART_MODE,CHART_BARS); case 1: ChartSetInteger(0,CHART_MODE,CHART_CANDLES); case 2: ChartSetInteger(0,CHART_MODE,CHART_LINE); } if(start_bar<0) return(ChartScreenShot(0,filename,size_x,size_y,ALIGN_RIGHT)); else return(ChartScreenShot(0,filename,size_x,size_y,ALIGN_LEFT)); } | WindowScreenShot Mevcut grafiğin ekran görüntüsünü bir GIF dosyası olarak kaydeder. ChartSetInteger, ChartScreenShot |
datetime WindowTimeOnDropped() | datetime ChartTimeOnDropped() | WindowTimeOnDropped Expert veya script dosyasının bırakıldığı grafik noktasının zaman bölümünü döndürür. ChartTimeOnDropped |
int WindowsTotal() | int ChartGetInteger(0,CHART_WINDOWS_TOTAL) | WindowsTotal Grafikteki gösterge pencerelerinin sayısını döndürür (ana grafik dahil). ChartGetInteger |
int WindowXOnDropped() | int ChartXOnDropped() | WindowXOnDropped Expert'in veya script dosyasının bırakıldığı grafik penceresi istemci alanı noktası için X eksenindeki değeri piksel cinsinden döndürür. ChartXOnDropped |
int WindowYOnDropped() | int ChartYOnDropped() | WindowYOnDropped Expert'in veya script dosyasının bırakıldığı grafik penceresi istemci alanı noktası için Y eksenindeki değeri piksel cinsinden döndürür. ChartYOnDropped |
Sonuç
- Alım satım işlevlerini dikkate almadık; zira MQL5'te kavram farklıdır ve orijinal olan kullanılmalıdır! Bunları dönüştürmek mümkündür, ancak alım satım mantığı değiştirilmelidir. Başka bir deyişle, onları dönüştürmenin herhangi bir anlamı yoktur.
- Programların bir dilden diğerine dönüştürülmesi her zaman işlevsellik ve performans kaybıyla ilişkilidir. Bu nedenle, işlevlerin benzerlerini hızlı aramak için bu kılavuzu kullanın.
- MQL4 programlarınızı yeni MetaTrader 5 istemci terminalinde çalıştırmanıza olanak tanıyacak MQL4 öykünücüsünü geliştirme planlarım var.
Teşekkür: keiji, A. Williams.
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal makale: https://www.mql5.com/ru/articles/81
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz