MQL4 Dərsləri 13 : İlk Ticarət Robotumuz 3 -ci Hissə



Bu gün ki dərsimiz əvvəl yazdığımız expertin davamını şəkilindədir. Burada MQL4 proqramlaşdırma dilinə aid yeni funksiyalarla tanış olacağıq.

OnTick() funksiyası daxilinində Sizdə aşağıdakı şəkildə gördüyünüz kimi kodları yazmağa çalışın.



Yazdığımız kodların izahı :

1)  iMA - Moving Average indiqatorunu hesablayır və onun dəyirini bizə verir.

double  iMA(
   string       symbol,               // symbol
   int          timeframe,            // timeframe
   int          ma_period,           // MA averaging period
   int          ma_shift,              // MA shift
   int          ma_method,         // averaging method
   int          applied_price,      // applied price
   int          shift                     // shift
   );

Parametrlər :

symbol

 Hesablanacaq valyuta cütlüyünün simvol adı Misal üçün "EURUSD" . NULL dəyərinin yazılması proqramın hal-hazırda çalışmış olduğu ( qarafikdə hal-hazırda baxdığınız valyuta cütlüyü ) açıq olduğu simvol adını  göstərir. 

timeframe

Zaman İntervalı. Burada proqramın hansı zaman intervalında çalışmasını istədiyiniz vaxtı yaza bilərsiniz Misal üçün 1,5,15,30 və s. Cari zaman intervalını ( qarafikdə hal-hazırda baxdığınız valyuta cütlüyünün zaman intervalı ) göstərmək üçün isə 0 yaza bilərsiniz.

ma_period

İndiqatorun hesablanması üçün period. Bizim misalda 5 ( MA_Period_1 ) və 21 ( MA_Period_2 ) kimi göstərilmişdir. Bunu Özünüz dəyişə bilərsiniz.


ma_shift

İndiqator xəttin sürüşdürülməsi . Adətən 0 yazılır. Strategiyanıza uyğun dəyişə bilərsiniz.

ma_method

Moving Average metodu .  Simple, Exponential və s.

applied_price

Tədbiq ediləcək qiymət.  Qiymətin açılış , bağlanış və s. kimi göstəriciləridir.
  
 shift

Burada İndiqatorun neçə period bundan əvvəli hesablamsını göstərilir. Biz kodlarımızda 1 və 2 yazmışıq. Bunun mənası odur ki, Cari şamdan ( 0 yazılarsa cari şamdır ) əvvəlki iki şamın qiymətini hesablamaq istəmişik. 

2 )  OrdersTotal() - Bu açılmış əməliyyatların sayını bizə verir. Kodumuzda biz OrdersTotal() == 0 yazaraq platformada heç bir əməliyyat açılmış olmadığı təqdirdə şərtini vermişik. Yəni platformada açıq əməliyyat varsa yenidən hər hansı bir əməliyyat açmağ istəmirik. 

3) OrderSend() - Əməliyyatlarımızı açmağ üçün bu funksiyadan istifadə edirik.

int  OrderSend(
   string   symbol,                                         // symbol
   int      cmd                                               // operation
   double   volume,                                       // volume
   double   price,                                          // price
   int      slippage,                                        // slippage
   double   stoploss                                   // stop loss
   double   takeprofit,                                 // take profit
   string   comment=NULL,                      // comment
   int      magic=0                                    // magic number
   datetime expiration=0,                          // pending order expiration
   color    arrow_color=clrNONE            // color
   );

Parametrlər

symbol

 Ticarət üçün simvol adı.

cmd

Əməliyyat tipi. Buy, Sell və s.

volume

Lot Həcimi

price 

Əmir qiyməti . Bid, Ask

slippage

Alış və ya Satış əmirləri üçün maxsimum qiymət slippage - i.

stoploss

StopLoss səviyyəsi

takeprofit

TakeProfit səviyyəsi

comment 

Açılmış əmir üçün sərh mətini  . NULL dəyəri əmirə heç bir şərh yazılmasın mənasıdadır.

magic 

Əmir üçün Magic Number ( Sehirli Nömrə ).  İstifadəçi tərifindən dəyişdirilə bilər.

expiration

Gözlənilən əmirlər üçün bitmə vaxtı

arrow_color

Qrafikdə açılacaq əmirlər üçün ox rəngi. Burada clrNONE yazılması qrafikdə əmir üçün heç bir rəng göstərilməməsi mənasıdadır.

4)  GetLastError()  - Hər hansı bir səbəbdən yazılmış əmirlər icra edilmədikdə bizə səhvlərin kodları barədə məlumat verir. Bu kod vastəsilə biz onun nədən qaynağlandığını axtarıb tapa bilərik . Yəni Editorda F1 klavişini sıxdığdan sonra axtarış bölməsinə gedib həmin kodun nə anlama gəldiyini axtara bilərik.

Burada yazılmış bütün kodlar növbəti dərsimizdə blogda yerləşdiriləcəkdir.

Uğurlar...

Yorumlar

Bu blogdaki popüler yayınlar

İchimoku İndiqatoru və EA - Giriş

MQL4 Dərsləri 17 : OrderClose() Funksiyası

MQL4 Dərsləri 16 : OrderModify() Funksiyası