Selasa, 30 Oktober 2012

Belajar Membuat EA Sederhana 18 Martingel

Pastian sudah mengikuti part 17 sebelumnya disiini

Pada pembahasan ali ini kita akan membuat EA yang bertype Martingel , saya rasa banyak penggemar Ea yang berjenis kelaminnya martingel heeeeeeee

Pada Ea martingel yang kita bikin ini hanya mengedit Ea sebelumnya di part 17 dan saya beri nama Jum+Donchian+v2

Seperti biasa dalam Ea martingel ada beberapa parameter tambahan bila dibanding dengan Ea non martingel,  al:

  1. Pengali lot , sering diberi nama multiflier atau multi saja ..... atau dimarti haaa   ya .. suka2 aja yang bikin. 
  2. Jarak antar order , sering diberi nama pips atau range atau apalah suka2
  3. Banyaknya level order, ini merupaan batasan jumlah order masksimum

Nah dari penambahan 3 parameter di atas maka kita akan membuat codingnya

Pengali lot

Ada banyak cara dalam membuat pengali lot order ini , pada bagian ini saya akan menggunakan fungsi matematika MathPow (merupakan fungsi matematika yang digunakan menghitung kelipatan).
Aturannya  MathPow(double value1, double value 2)
value 1 = merupakan bilangan kelipatan
value 2 = bilangan level kelipatan

Jadi dalam hal ini kita gunakan Lots*MathPow(DiMarti,jumlahorder())
dalam hal ini pengali lot kita gunaan DiMarti

Cara lain selain dengan menggunakan MathPow adalah dengan mengalikan order lot terakhir dengan DiMarti 
(lain kali kita bahas)
Nah dalam hal ini saya buat fungsinya sbb:

double xlot(int m)
{
double ylot,dlot;
for (int i = 0; i < OrdersTotal(); i++) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic ||OrderType()!=m) continue;
  dlot=OrderLots();
  }
if(OrderType()==m)ylot=NR(Lots*MathPow(DiMarti,jumlahorder(m)));
return(ylot);
}



Jarak antar order
Jarak antar order ini di hitung dari harga order sebelumnya sering disebut Orderopenprice.
Nah untuk menentukan besaran Orderopenprice pada order terahir perlu dibuat scrip pencacah atau untuk menghitung order openprice terahir
saya gunakan fungsi sbb:

int trad()
{
int type,dp; double opb,ops,lastlotb,lastlots;
for (int i = 0; i < OrdersTotal(); i++) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
  type=OrderType();
if(type==0)opb = OrderOpenPrice();
if(type==1)ops = OrderOpenPrice();
}
   double as = opb - Jarak_order * pt;
   double bi = ops + Jarak_order * pt;
   if ( Ask <= as &&  jumlahorder(0)> 0 ) dp=1; 
if ( Bid >= bi &&  jumlahorder(1)> 0 ) dp=2;

return(dp);
}

Banyaknya level order
Untuk membatasi order maka saya gunakan batasan jumlahorder(0)<Max_order , jumlahorder(1)<Max_order 

Haaa wah udah hampir jadi nih .....

Nah saya aan tambahkan filter candel supaya kalau ada news panjang akan order setiap pergantian candel , dengan memanfaatan wt!=Time[0] seperti pembahasan sebelumnhya.

Terapan tambahan untuk order martingelnya saya buat sbb:

if(trad()==1 && wt!=Time[0] && jumlahorder(1)==0 && jumlahorder(0)<Max_order  && Trade_buy  && signal==2) {OrderSend(Symbol(),OP_BUY,xlot(0),Ask,3,slb, tpb,Nama_EA,Magic,0,Blue); wt=Time[0]; }
if(trad()==2 && wk!=Time[0] && jumlahorder(0)==0 && jumlahorder(1)<Max_order  && Trade_sell && signal==1) {OrderSend(Symbol(),OP_SELL,xlot(1),Bid,3,sls, tps,Nama_EA,Magic,0,Red); wk=Time[0];  }


Dan untuk sedikit melihat info maka saya juga  buatkan fungsi untuk membuat labelnya

void label()
{
Comment("\n ",
"\n ",
"\n ------------------------------------------------",
"\n :: =>+Jum+Donchian+v2<=",
"\n :: =>JumForex.blogspot.com<=",
"\n ------------------------------------------------",
"\n :: Spread                 : ", MarketInfo(Symbol(), MODE_SPREAD),
"\n :: Leverage               : 1 : ", AccountLeverage(),
"\n :: Equity                 : ", AccountEquity(),
"\n :: Jam Server             :", Hour(), ":", Minute(),
"\n ------------------------------------------------",
"\n :: >>By: Jum69<<",
"\n ------------------------------------------------");
}


Sehingga jadinya gini deh




Sepertinya EA ini udah layak di Coba deh untuk di Beck test  ........

Nah sampai disini monggo dicoba kalao ada manfaat dan pertanyaan silahkan kasih komen ya

Smoga bermanfaat!

Pastikan Membaca:


  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22
  • Tidak ada komentar:

    Posting Komentar