OctaFx

iklan

Punya pertanyaan tentang forex?
Silahkan kirimkan pertanyaan Anda disini, tim kami akan berusaha memberikan jawaban yang terbaik.


Kirim Pertanyaan Baru

acy

iklan

Advertisement

iklan

Filter Open Order

Expert Advisor

08 Mar 2018
Gan, mau tanya bikin filter EA hanya open buy setelah candle ke tiga muncul di atas MA. Saya sudah coba dengan if (Close(3) > MA 10) maka open buy tetapi setelah tapi malah open buy lagi padahal sudah candle ke 7 di atas MA.Yg saya inginkan adalah hanya open di candle ke-3 setelah tapi Ea diam walaupun harga masih di atas MA terima kasih.
12 Mar 2018

Selamat pagi pak, Saya akan sedikit menjelaskan bagaimana prinsip kerja atau algoritmanya.

Sebelumnya Saya ulangi lagi requirement-nya, Anda ingin agar EA open posisi saat close candle ke-3 setelah cross harga dengan MA?
 
Jika benar seperti itu, Anda harusnya tidak menggunakan:
if (Close(3) > MA10) -> perintah ini digunakan untuk mengecek jika candle nomor 4 dari kanan saat ini closenya melebihi MA10 tidak. Sehingga seperti yang Anda jelaskan tadi, jika saat in candle ke-7 dan harga masih di atas MA, maka berarti candle nomor 4 dari candle saat ini closenya melebihi MA10 jadi EA akan tetap open posisi.

Logika Anda sebenarnya sudah baik dan simpel. Tapi perlu ditambahkan sedikit sebagai koreksi atau filter agar tidak terjadi hal-hal seperti yang Anda alami di atas.
jadi algoritmanya seperti ini:
 
1. Jika candle nomor 4 dari kanan saat ini close lebih dari MA10 maka:
2. Periksa candle nomor 5, cek apakah candle nomor 5 juga close lebih dari MA10?
3. Jika candle nomor 5 tidak lebih dari MA10 maka candle saat ini adalah candle ke-4 setelah harga cross MA10, dan lakukan open order buy.
4. Jika candle nomor 5 lebih dari MA10 maka candle saat ini adalah bukan candle ke-4 setelah harga cross MA10, jgn lakukan apa-apa.
secara bahasa pemrograman :
 
if (Close(3) > MA10)
{
if(Close(4) > MA10)
{//open posisi buy}
else{
//do nothing
}}
 
Jangan lupa nilai MA10 untuk candle ke-4 dan ke-5 akan berbeda konfigurasinya dan penulisannya. lihat contoh di bawah berikut:
 
nilaima = iMA(symbol, period, maperiod, mashift,mamethod,appliedprice,shift);

Jadi jika Anda ingin membandingkan candle ke-4 ya harus dengan menggunakan nilai MA pada posisi candle ke-4. Jika MA10 Anda merupakan SMA10 maka kodenya jadi begini pada candle ke-4 dan 5
candle ke-4 ->
 nilaimake4 = iMA(null,0,10,0,MODE_SMA,PRICE_CLOSE,3);
candle ke-5 ->
nilaimake5 = iMA(null,0,10,0,MODE_SMA,PRICE_CLOSE,4);
 
Terima kasih.
13 Mar 2018
terima kasih banyak pak ... sangat membantu
13 Mar 2018

@ahmadfx

Terima kasih kembali pak. Jika ada kesulitan silahkan tanyakan kembali, akan Kami bantu sebisa Kami.
 
Terima kasih
27 Mar 2018
selamat siang pak, Saya mau tanya untuk membuat code open sell ketika ada candle bearish di atas MA100 dan jarak MA dengan harga  saat ini berada 100 pip atau lebih di atas MA100.
bagaimana codenya?
apakah seperti ini?
 
if ( Close[0]> Ma100&& Ma100)
 
terima kasih untuk jawabanya
28 Mar 2018

Selamat pagi juga Pak. Akan kami coba sedikit bantu jelaskan algoritmanya ya.Pertama, saya verifikasi ulang terlebih dahulu parameter-parameter yang ingin Anda gunakan.


1. Candle bearish = Candle yang nilai close-nya lebih rendah daripada nilai open-nya.
 
2. Jarak close candle dengan MA100 lebih dari 100 pips atau 1000 poin.
 
Kedua, mari kita analisa mengapa kode yang bapak tuliskan tidak dapat berjalan.
 
1. if(close[0] > MA100 && MA100
 
sebenarnya tidak ada kesalahan logika pada kode yang bapak tuliskan. Hanya saja pada prakteknya pemrograman harus ditulis runtut dan jelas agar dapat dijalankan oleh komputer.

Mungkin bapak bisa mencoba algoritma berikut. Tanda "// "berarti komentar ya Pak.

 int jarakma;
//Cek apakah candle bearish atau tidak pada candle sebelum saat ini (1)
if (Close[1] < Open[1])
{
jarakma = Close[1] - MA100;
//cek apakah close candle jaraknya lebih dari 100 pips
if ( jarakma >= 1000)
{
//open sell;
}
}
else
{
//jangan lakukan apa-apa
}

Terima kasih
28 Mar 2018
terima kasih banyak pak atas jawabanya 
saya coba dulu codenya ya pak 
terima kasih
01 Apr 2018

selamat malam pak mohon untuk mengoreksi kode di bawah ini mengapa tidak mau open sama sekali ... padahal ketika saya compile tidak ada error sama sekali

yg saya inginkan adalah open sell ketika candle beariss di atas MA100 && jarakMA100 dengan Candle beariss = 100 pip atau lebih terima kasih  banyak  sebelumnya  

extern double Lots       = 0.1;
extern int    TakeProfit = 5;
extern int    StopLoss   = 20;
extern int    Magic      = 123;
double  MA100;
int    jumlahOpensell, i;


int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
MA100= iMA (Symbol(),0,100,0,0,0,0);   
 
 
int jarakma;
if (jumlahOpensell==0 ) 
if (Close[1] < Open[1])
{
jarakma = Close[1] - MA100;
if ( jarakma >= 1000)
{
int x=OrderSend (Symbol(), OP_SELL , Lots , Bid , 10 , Bid +StopLoss*Point , Bid -TakeProfit*Point ,,Magic,0,Red);
}
}
else
{
//jangan lakukan apa-apa
} 
 
 
 
// untuk filter jumlah order
jumlahOpensell=0;
for(i=0;i
   {
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
  if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)
     {jumlahOpensell++;}
   }
 
 
 
   
 
//----
   return(0);
  }
//+-

 

02 Apr 2018

Selamat malam Pak. 

Sebelum saya koreksi kodenya, saya meminta maaf terlebih dahulu karena kesalahan saya pada jawaban yang lalu. Sebenearnya algoritma kodenya sudah benar, hanya saja pada saat kita mengecek jarak antara close candle dengan Ma100 saya lupa merubah jarak MA menjadi basis point. Akhirnya EA tidak dapat mendeteksinya. Berikut kode bapak yang saya edit sedikit dan sudah coba sendiri. 

 

extern double Lots = 0.1;
extern int TakeProfit = 5;
extern int StopLoss = 20;
extern int Magic = 123;
double MA100;
int jumlahOpensell, i; //+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
MA100 = NormalizeDouble (iMA(Symbol(),0,100,0,0,0,1), Digits);
//MA100= iMA (Symbol(),0,100,0,0,0,0); int jarakma;
if (jumlahOpensell==0 )
if (Close[1] < Open[1])
{
jarakma = (Close[1] - MA100)*100000;
ObjectCreate("akselerasi2",OBJ_LABEL,0,0,0,0,0);
ObjectSet("akselerasi2",OBJPROP_CORNER,3);
ObjectSet("akselerasi2",OBJPROP_XDISTANCE,0);
ObjectSet("akselerasi2",OBJPROP_YDISTANCE,10);
ObjectSetText("akselerasi2","jarak dari MA100= " +jarakma,25,"Stencil Std",Green);
if ( jarakma >= 1000)
{
int x=OrderSend (Symbol(), OP_SELL , Lots , Bid , 10 , Bid+StopLoss*Point() , Bid-TakeProfit*Point() ,0,Magic,0,Red);
}
}
else
{
//jangan lakukan apa-apa
} // untuk filter jumlah order
jumlahOpensell=0;
for(i=0;i {
if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)
{jumlahOpensell++;}
} //----
return(0);
}

 

Terima kasih banyak pak

04 Apr 2018
terima kasih banyak pak atas jawabanya ... code nya sudah saya coba dan sudah sesuai keinginan saya
sekali saya ucapkan terima kasih ...dan mudah mudahan bapak sukses selalu

Pertanyaan-Pertanyaan Kategori Expert Advisor

Pertanyaan Penanya Balasan Dilihat Aktivitas
Cara membuat kunci password pada indicator/EA? Flo 11 10771 11 Nov 2015
Robot Trading Dari Seputar Forex? Budi Hutama 9 838 18 Ags 2018
Filter open order? Ahmadfx 9 555 08 Mar 2018
Apakah Foward Test Hasilnya Bisa Sama dengan Back Test? Edwin 8 581 01 Ags 2018
rekomendasi EA gratis? Cicilia 7 4898 29 Jun 2018
Pengambilan Profit Terhadap Money Management EA? Krisna 7 492 16 Ags 2018