http://jumforex.blogspot.com/2012/08/belajar-membuat-ea-sederhana-5.html
Untuk mengikuti ini pastikan sudah membaca part 4 di sini
OKe semuanya
Kalau pada EA yang sudah kita buat pada part 4 bahwa EA sudah bisa digunakan di semua pair dan telah digunakan fliter pair.
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:
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
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 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);}
Kemudian kita masukan kedalam EAnya
EA 1 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 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 filer 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)
OKe semuanya
Kalau pada EA yang sudah kita buat pada part 4 bahwa EA sudah bisa digunakan di semua pair dan telah digunakan fliter pair.
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
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 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
//+------------------------------------------------------------------+
//| 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 filer 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)
Hey Everybody,
ReplyDeleteI've created a list of the highest ranking forex brokers:
1. Best Forex Broker
2. eToro - $50 minimum deposit.
Here is a list of the best forex tools:
1. ForexTrendy - Recommended Probability Software.
2. EA Builder - Custom Strategies Autotrading.
3. Fast FX Profit - Secret Forex Strategy.
I hope you find these lists beneficial...