Senin, 24 Desember 2012

Belajar Membuat EA Sederhana 7


http://jumforex.blogspot.com/2012/08/belajar-membuat-ea-sederhana-7.html

Pastikan anda telah mengikuti part 6 disini 

Pada part 6 telah kita bikin EA yang bisa buy dan sell dengan tambahan paremeter pilihan untuk terus trading buy atau sell dengan menggunakan boolian sehingga bisa digunakan pilihan true ata false.

Kali kita akan bahas tentang menambahkan waktu trading

Waktu trading kali ini kita  bahas menggunakan waktu trading broker (time broker) dengan menggunkan variabel Hour() untuk Jam dan Minute() untuk waktu menit

Cukup  sederhana contoh
if(Hour()== 7 && Minute()==5)
Artinya Ketika  (jam 7 lewat 5 menit  ) kondisi apa yang diinginkan .......

kita coba terapkan dalam perintah EA  kita
if(Hour()== 7 && Minute()==5){
   if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
   if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
}

Pada penambahan di atas maka EA hanya akan Order buy dan sell ketika jam broker telah menunjukan jam 7 lewat 5 menit .

Nah bagamana supaya parameter waktu yang diinginkan bisa mudah di tampilkan dalam EA ?

Maka kita bisa membuat deklarasi waktu jam dan menit (waktu ini merupakan tipe data integer / tidak berkoma)
contoh
extern int  Jam_Order  =7;
extern int  Menite        = 5;

 sehingga kalau dimasukkan ke dalam EA  sbb:

if(Hour()== Jam_Order && Minute()==Menite){
  if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
  if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
 }


Mudahkan?
Ooooooo   ternyata mudah tinggal silahkan di coba di copas ke dalam EAnya .................
Jadideh!

Terus bagamana seandainya kita mau menambahkan waktu trading  dari jam tertentu sampai jam tertentu?

Nah untuk membuat batasan waktu ini saya akan bagikan sebuah skrip jadi yang biasa digunakan dalam bentuk fungsi
Sebelumnya kita buat deklarasi waktu mulai dan mengakhiri  trading
extern    int                Mulai_Jam    =  22;
exter       int              Akhir_Jam    =   4;

kemudian fungsi waktunya sbb:

int Jam_trade()
{
   bool trade = false;
   if(Mulai_Jam > Akhir_Jam){
     if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true;
   } else
     if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;
   return (trade);
}

Karena skrip tersebut dalam bentuk fungsi maka penempatannya diluar int start()
Sekilas dari skrip tersebut menggunakan  bool dalam terapan waktu trading dan harus bernilai 1 .
Silahkan di simak dan di telaah fungsi terebut diatas!

untuk terapan penggunaanya dalam EA   if(Jam_trade()==1){.....}

 Kalau kita masukkan ke dalam EA 2 sbb:

//+------------------------------------------------------------------+
//|                                                     Buy Saja.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern string  Nama_EA                 = "Buy dan Sell";
extern bool    Trade_buy               = true;
extern bool    Trade_sell              = true;
extern int     Mulai_Jam               = 22;
extern int     Akhir_Jam               = 4;
extern int     TP                      = 11;
extern int     SL                      = 100;
extern double  Lots                    = 0.1;
extern int     Magic                   = 69;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----


if(Jam_trade()==1){
  if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
  if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
 }

//----
   return(0);
  }
//+------------------------------------------------------------------+
 
int Jam_trade()
{
   bool trade = false;
   if(Mulai_Jam > Akhir_Jam){
     if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true;
   } else
     if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;
   
   return (trade);
}

int jumlahorder( int tipe)
{
int total=0;
for(int i=0; i<OrdersTotal(); i++)
  {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic || OrderType()!=tipe) continue;
     total++;
  }

return(total);
}

Oke bro EA sudah jadi silahkan di Compile dan EA siap digunakan untuk trade. Parameter sudah lengkap tapi mengenai profit dan tidaknya yang silahkan di coba sendiri 

Salam profit 
Sampai ketemu pada part 8 dalam pembahasan yang lain

Tidak ada komentar:

Posting Komentar