Alert() İşlevi
void Alert(...);Bu işlev kullanıcı tarafından tanımlanan veriyi içeren bir diyalog penceresi çıkartır. İşleve gönderilen argumanlar herhangi bir türden olabilir. İşleve geçilen arguman sayısı 64'ten fazla olamaz.
Diziler doğrudan Alert işlevine geçilemez. Dizilerin elemanları tek tek işleve geçilmelidir. double türden değişkenlerin noktadan sonra 4 basamak içerecek şekilde yazdırılabilmesi için DoubleToStr() işlevi kullanılmalıdır. bool, datetime ve color türden değişkenlerin sayısal değerleri yazdırılır. datetime türünden verilerin bir yazı şeklinde yazdırılabilmesi için string türüne dönüştürülmeleri gerekir. Bu amaçla TimeToStr() işlevi kullanılmalıdır.
Parametreler
...: Virgüllerle ayrılarak her türden veri işleve arguman olarak gönderilebilir.Örnek Kod
if (Close[0] > SignalLevel)
Alert("Kapanış fiyatı: ", Close[0],"!!!");
Comment() İşlevi
void Comment(...);
Bu işlev kullanıcı tarafından tanımlanan yorumu ekranın sol üst köşesine yazar. İşleve gönderilen argumanlar herhangi bir türden olabilir. İşleve geçilen arguman sayısı 64'ten fazla olamaz.Diziler doğrudan Alert işlevine geçilemez. Dizilerin elemanları tek tek işleve geçilmelidir. double türden değişkenlerin noktadan sonra 4 basamak içerecek şekilde yazdırılabilmesi için DoubleToStr() işlevi kullanılmalıdır. bool, datetime ve color türden değişkenlerin sayısal değerleri yazdırılır. datetime türünden verilerin bir yazı şeklinde yazdırılabilmesi için string türüne dönüştürülmeleri gerekir. Bu amaçla TimeToStr() işlevi kullanılmalıdır.
Parametreler
...: Virgüllerle ayrılarak her türden veri işleve arguman olarak gönderilebilir.Örnek Kod
double free = AccountFreeMargin();
Comment("Account free margin is ", DoubleToStr(free, 2), "\n", "Current time is ", TimeToStr(TimeCurrent()));
GetTickCount() İşlevi
int GetTickCount( );Bu işlev sistemin başlamasından bu yana geçen süreyi milisaniye cinsinden geri döndürür..
Örnek Kod
int start = GetTickCount();
// Bazı zor hesaplamalar...
Print("Hesaplama süresi : ", GetTickCount() - start, " milisaniyedir.");
MarketInfo() İşlevi
double MarketInfo(string symbol, int type);Bu işleve yapılan çağrılarla Piyasa gözlemi penceresinde listelenen paritelere ilişkin çeşitli veriler elde edilir. Elde edilebilecek bu verilerden bir kısmı ön tanımlı değişkenlerde de tutulmaktadır.
Parameter
symbol: Pariteyi gösteren yazı (Örneğin "EURUSD")type: istenen bilgiyi gösteren simgesel sabit. Bu simgesel sabitlerin tüm listesi ayrı bir tablo şeklinde verilmiştir.
Örnek Kod
Aşağıdaki kod parçasında EURUSD paritesine ilişkin bazı bilgiler MarketInfo işlevi ile elde edilip değişkenlerde saklanmaktadır:double bid = MarketInfo("EURUSD", MODE_BID);
double ask = MarketInfo("EURUSD", MODE_ASK);
double point = MarketInfo("EURUSD", MODE_POINT);
int digits = MarketInfo("EURUSD", MODE_DIGITS);
int spread = MarketInfo("EURUSD", MODE_SPREAD);
MarketInfo işlevi ile yapılacak sorgulamaya ilişkin sembolik sabitler
| Simgesel Sabit | Tamsayı Değeri | Tanım |
|---|---|---|
| MODE_LOW | 1 | Günün en düşük değeri |
| MODE_HIGH | 2 | Günün en yüksek değeri |
| MODE_TİME | 5 | Gelen son tick’in zaman bilgisi |
| MODE_BID | 9 | Son gelen satış fiyatı. Çalışılan parite söz konusu olduğunda bu değer öntanımlı Bid değişkeninde saklanmaktadır. |
| MODE_ASK | 10 | Son gelen alış fiyatı. Çalışılan parite söz konusu olduğunda bu değer öntanımlı Ask değişkeninde saklanmaktadır. |
| MODE_POINT | 11 | Parite için verilen fiyattaki en küçük birim. Çalışılan parite söz konusu olduğunda bu değer öntanımlı Point değişkeninde saklanmaktadır. Bu değer tipik olarak 0.0001 ya da 0.01'dir. |
| MODE_DIGITS | 12 | Parite için verilen fiyattaki noktadan sonraki basamak değeri. Çalışılan parite söz konusu olduğunda bu değer öntanımlı Digits değişkeninde saklanmaktadır. Bu değer tipik olarak 4 ya da 2'dir. |
| MODE_SPREAD | 13 | Pip cinsinden spread değeri. |
| MODE_STOPLEVEL | 14 | Pip cinsinden izin verilen en az Zarar Durdur/Kâr Al değeri |
| MODE_LOTSIZE | 15 | Baz döviz için lot büyüklüğü. |
| MODE_TICKVALUE | 16 | Bir pip'in parasal değeri. (Örneğin hesaptaki fon dolar cinsinden ise 1 pipin kaç dolar olduğu) |
| MODE_TICKSIZE | 17 | Bir pip değeri. Örneğin EURUSD paritesi için bu değeri 0.0001'dir. Grafik paritesi için bu değer aynı zamanda Point öntanımlı değişkende tutulmaktadır. |
| MODE_SWAPLONG | 18 | Uzun pozisyonlar için öteleme değeri. |
| MODE_SWAPSHORT | 19 | Kısa pozisyonlar için öteleme değeri. |
| MODE_STARTING | 20 | İşlemin başlangıç tarihi (Genellikle futures sözleşmelerinde kullanılır) |
| MODE_EXPIRATION | 21 | Piyasa vade tarihi. (Genellikle futures piyasaları için kullanılır.) |
| MODE_TRADEALLOWED | 22 | Söz konusu paritede işleme izin verilip verilmediği. Bu değer ile sorgulama yapıldığında işlev 1 (evet) ya da 0 (hayır) değerini döndürecektir. |
| MODE_MINLOT | 23 | İzin verilen en düşük lot miktarı |
| MODE_LOTSTEP | 24 | Lot miktarındaki en küçük değişim seviyesi |
| MODE_MAXLOT | 25 | İzin verilen en büyük lot miktarı |
| MODE_SWAPTYPE | 26 | Öteleme hesaplama yöntemi. 0 - pip olarak; 1 - Baz döviz cinsinden 2 - Faiz olarak 3 -Teminat dövizi cinsinden. |
| MODE_PROFITCALCMODE | 27 | Kâr hesaplama modu. 0 - Forex; 1 - CFD; 2 - Futures. |
| MODE_MARGINCALCMODE | 28 | Teminat hesaplama modu 0 - Forex; 1 - CFD; 2 - Futures; 3 - endeksler için CFD |
| MODE_MARGININIT | 29 | 1 lot için gerekli olan başlangıç teminatı |
| MODE_MARGINMAINTENANCE | 30 | 1 lot için gerekli olan sürdürme teminatı |
| MODE_MARGINHEDGED | 31 | 1 lot için gerekli olan hedge teminatı |
| MODE_MARGINREQUIRED | 32 | 1 lot alış işlemi için gerekli teminat miktarı. |
| MODE_FREEZELEVEL | 33 | Pip cinsinden emir dondurma seviyesi. Eğer yürütme fiyatı dondurma seviyesi sınırları içinde kalıyorsa, söz konusu olan emir değiştirilemez, silinemez, kapatılamaz. |
MessageBox() İşlevi
int MessageBox(string text = NULL, string caption = NULL, int flags = EMPTY) ;Bu işlev, mesaj penceresi oluşturma, gösterme ve yönetme işlemlerini gerçekleştirir. Mesaj penceresi uygulama tanımlı bir mesaj ve başlık içerir. Bunlar örneğin ön tanımlı ikonlar ve butonlar olabilir. Eğer işlev başarılı olursa geri dönüş değeri aşağıda listelenen MessageBox geri dönüş değerlerinden biri olur. İşlev özel göstergeler tarafından çağrılamaz.
Parametreler
text: Pencerede seçeneğe bağlı olarak gösterilecek yazı.caption: Pencere başlığında seçeneğe bağlı olarak gösterilecek yazı. Eğer bu parametreye NULL değeri Uzman Danışman'ın ismi gösterilir. Pencerenin tür ve davranışlarını belirleyen opsiyonel bayraklar aşağıda bir liste şeklinde verilmektedir.
Örnek Kod
#include <WinUser32.mqh>
if(ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045) == false) {
int ret = MessageBox("ObjectCreate() işlevinde hata oluştu. Hata kodu : " + GetLastError() + " \nDevam edilsin mi?", "Soru", MB_YESNO|MB_ICONQUESTION);
if (ret == IDNO)
return (false);
}
// devam et
PlaySound() İşlevi
void PlaySound(string filename);İşlev bir ses dosyası çalıştırır. Çalıştırılacak olan dosyanın terminal_yükleme_adresi\sounds klasöründe veya alt klasörlerinden birinde olmalıdır.
Parametreler
filename: Ses dosyasının adı.Örnek Kod
if(IsDemo())
PlaySound("alert.wav");
Print() İşlevi
void Print(...);UzmanDanışman log dosyasına bir mesaj yazdırır. İşleve gönderilen argumanlar herhangi bir türden olabilir. İşleve geçilen arguman sayısı 64'ten fazla olamaz.
Diziler doğrudan Alert işlevine geçilemez. Dizilerin elemanları tek tek işleve geçilmelidir. double türden değişkenlerin noktadan sonra 4 basamak içerecek şekilde yazdırılabilmesi için DoubleToStr() işlevi kullanılmalıdır. bool, datetime ve color türden değişkenlerin sayısal değerleri yazdırılır. datetime türünden verilerin bir yazı şeklinde yazdırılabilmesi için string türüne dönüştürülmeleri gerekir. Bu amaçla TimeToStr() işlevi kullanılmalıdır.
Parametreler
...: Virgüllerle ayrılarak her türden veri işleve arguman olarak gönderilebilir.Örnek Kod
double pi = 3.141592653589793;
Print("Hesabın serbest teminatı : ", AccountFreeMargin());
Print("Şu anki zaman : ", TimeToStr(TimeCurrent()));
Print("Pi sayısı : ", DoubleToStr(pi,8));
// Dizinin yazdırılması
for(int i = 0; i < 10; i++)
Print(Close[i]);
SendFTP() İşlevi
bool SendFTP(string filename, string ftp_path = NULL) ;Dosyayı, Araçlar->Seçenekler->Yayımcı başlığındaki tanımlı FTP sunucusuna gönderir. Eğer işlev başarısız olursa FALSE değerini geri döndürür. Test modunda işlev çalışmaz ve özel göstergeler tarafından da çağrılamaz. Gönderilecek olan dosya terminal_yükleme_adresi\experts\files klasöründe ya da alt klasörlerinden birinde olmalıdır. Eğer bir FTP adresi yoksa ya da şifre tanımlaması yapılmamışsa dosya gönderilemez.
Parametreler
filename: Gönderilecek olan dosya.ftp_path: Tanımlı FTP adresi.
Örnek Kod
int lasterror=0;
if(!SendFTP("report.txt"))
lasterror = GetLastError();
SendMail() İşlevi
void SendMail( string subject, string some_text);Araçlar->Seçenekler->EMail başlığı altında belirlenen e-posta adresine mesaj gönderir. Gönderim seçeneklerden kapatılabilir. Ayrıntılı hata mesajını almak için GetLastError() işlevinin çağırılması gerekir.
Parametreler
subject: Mesajın başlığı.some_text: Mesajın içeriği.
Örnek Kod
double lastclose=Close[0]; if(lastclose<my_signal)
SendMail("Uzman Danışmanınızdan", "Fiyat " + DoubleToStr(lastclose,Digits) + " seviyesine kadar düştü.");
Sleep() İşlevi
void Sleep( int milliseconds);Sleep() işlevi o an çalışmakta olan UzmanDanışman kodunu belirli bir zaman aralığında durdurur. Özel Danışmanlar tarafından çağrılamazlar.
Parametreler
milliseconds: milisaniye cinsinden beklenecek süre.Örnek Kod
// 10 Saniye Bekle
Sleep(10000);

Yorum Ekle
Başarıyla raporlandı
Teşekkür ederiz. Yorum, yöneticinin incelemesi için işaretlendi.