Pada posting kali ini saya akan mengedit EA pada part 21 untuk ditambahi martingel .
Martingel yang di maksud juga mengacu pada jarak (range) order dan pergantian candel untuk mencegah terjadinya beberapa order ketika terjadi lonjakan harga dan candel panjang , seperti pada part 18
Penambahan coding martingelnya :
1. Fungsi untuk perintah order martingelnya
if(trad()==1 && wt!=Time[0] && jumlahorder(1)==0 && jumlahorder(0)<Max_order ) {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 ) {OrderSend(Symbol(),OP_SELL,xlot(1),Bid,3,sls, tps,Nama_EA,Magic,0,Red); wk=Time[0]; }
2. Fungsi untuk perhitungan jarak order dan perintah ketika jarak terpenuhi
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);
}
3. Fungsi untuk perhitungan Lots setiap pengulangan ordernyadouble 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);
}
Nah setelah di rakit begini deh hasilnya:Ini hasil BTnya:
Okey seilahkan de coba ya...
Bila mana ada yang kurang jelas dan ada ide positif silahkan comment ya!
Pastikan Membaca:
Pastikan Membaca:
Tidak ada komentar:
Posting Komentar