Membuat fitur order buy dan sell di robot EA

Tidak ada komentar 65 views
unmetered
unlimited

Kalau pada EA yang sudah kita buat pada post sebelumnya ( Lihat ) bahwa EA sudah bisa digunakan di semua pair dan telah digunakan filter pair. Maka kali ini kita akan menambahkan supaya EA juga bisa melakukan order sell, mengingat pada EA sebelumnya hanya melakukan order buy saja.

Untuk menambahkan Supaya bisa order sell maka yang diperlukan adalah skrip perintah order sell, sbb:
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);

Coba bandingkan dengan perintah order buy!
Ada perbedaan yang perlu diketahui bahwa order buy mengacu pada harga berjalan Ask sedangkan order sell menggunakan  Bid.
Selisih antara Ask dan bid inilah yang sering di sebut dengan spreed

Pada order buy
Ask-SL*Point,
Ask+TP*Point,

Pada order sell

Bid+SL*Point,

Bid-TP*Point

 

Dan untuk membedakan warna order disini saya gunakan blue untuk buy dan red untuk sell.

Nah sekarang bagaimana untuk memasukkan perintah  order sell?

Pada EA 1 di part 4 bahwa menggunakan filter pair langung, untuk itu sudah disediakan variabel penghitung order sell yaitu Jumlahsell  ,sehingga bisa dibuat kondisi : if(Jumlahsell==0) atau if(Jumlahsell<1)
Jadinya sbb:

if(Jumlahsell==0){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}

Pada EA 2 yang menggunakan filter pair dengan menggunakan fungsi adalah ,code>  if(jumlahorder(1)==0) bisa juga   if(jumlahorder(OP_SELL)==0) atau   if(jumlahorder(1)<1), bisa juga   if(jumlahorder(1)<1)

Jadinya sbb:

if(jumlahorder(OP_SELL)==0){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
bisa juga digunakan
if(jumlahorder(1)<1){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
Kemudian kita masukan kedalam EAnya

 

Untuk EA 1 menggunakan filter fungsi sebagai berikut

//+——————————————————————+
//| 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 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()
{
//—-
int Jumlahbuy=0;
int Jumlahsell=0;
for(int i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
if(OrderType()==OP_BUY) Jumlahbuy++;
if(OrderType()==OP_SELL) Jumlahsell++;
}
if(Jumlahbuy==0){ OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue); }
if(Jumlahsell==0){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}

//—-
return(0);
}
//+——————————————————————+

Jadi deh silahkan di Compile dulu kalau sukses berari EA sudah bisa Order sell , artnya bila tidak order buy maka akanmmelakukan order buy dan bila tidak ada order sell maka akan melakukan order sell sehingga EA ini akan melakukan hedge (order buy dan sell secara bersamaan)

Mudah kan?

Untuk EA 2 menggunakan filter fungsi sebagai berikut
//+——————————————————————+
//| 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 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(jumlahorder(0)==0) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
if(jumlahorder(1)==0) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
//—-
return(0);
}
//+——————————————————————+

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 silahkan di coba di Compile dulu dan kemudian di Beck test  , dan bila mana berhasil maka EA akan kelihatan melakukan buy dan sell

Kemudaian hal lain yang perlu di ketahui bahwa dalam bahasa program mql4 untuk membuat keterangan yang dimana keterangan tersebut tidak di baca sebaga program biasa nya digunakan tanda  // untuk satu baris tetapi bila terdiri dari banya baris digunakan tanda  /* keterangan  dan diakhiri */ 

Semoga berhasil dan selamat mencoba

Sampai ketemu di part 6 (menambafkan filterWaktu trading) 

unlimited
author
Tidak ada Respon

Tinggalkan pesan "Membuat fitur order buy dan sell di robot EA"