Setelah sekian lama gak posting karena banyaknya kesibukan baru kali ini sempat post
Pada posting kali ini sayare a akan coba share satu EA sy, sebagai kelanjutan dari EA yang pernah saya share pada forum Indomt5 di sini dan kelanjutan dari posting di sini. Sebenarnya versi ini telah dikembangkan sampai versi 9 (masih untuk pribadi).
Pada versi ini sebenar sedikit berbeda dengan versi sebelumnya karena
pada versi ini sebenarnya disamping untuk mengejar profit tapi juga
mengejar rabat.
Masih tetep trigernya cuma sedikit ditambah pengembangan sehingga lebih agresif dengan model
average dan lotsnya tetep , tetapi mengacu pada kelipatan balance
Penasaran ini Parameternya
Ada parameter Slow_aja ini bisa dipilih true atau false
untuk mengetahui kegunaannya silahkan di coba dibuat demo atu di Becktest.
Penampakannya sbb:
Bagi yang mau nyoba silahkan sedot disini
Share terbatas silahkan kontak Ym : gifaesa | email: gifaesa@yahoo.com ,
untuk mendapat nomor keberuntungan dan sertakan no account yg mau
digunakan Hee heee
gitu deh ...
Jangan lupa comment ya di bawah ..!
Salam Profit semuanya
Programming - editing - modification EA, Script or Indicator for MT4 OR MT5 ---- Trading on the Forex market involves substantial risks, including complete possible loss of funds and other losses and is not suitable for all members. Client should make an independent judgments as to whether trading is appropriate for him/her in light of his/her financial condition, investment experience, risk tolerance and other factors.
Sunday, 12 May 2019
Coding Jadul
Lama sekali tidak Posting !!
Karena Banyaknya kesibukan dan kegiatan2 yang menyita waktu dan pikiran sehingga jarang posting
Beberapa waktu yang lalu, banyak temen lama sempat ngontek gimana mengatasi coding yang udah jadul, ketika di compile selalu ada muncul warning.
Emang ini menyebalkan.... meski sebenarnya warning ini tetep jalan dan dapat digunakan
Perkembang mt4 dan program mql4 juga perlu ada penyesuaian2.
Karena Banyaknya kesibukan dan kegiatan2 yang menyita waktu dan pikiran sehingga jarang posting
Beberapa waktu yang lalu, banyak temen lama sempat ngontek gimana mengatasi coding yang udah jadul, ketika di compile selalu ada muncul warning.
Emang ini menyebalkan.... meski sebenarnya warning ini tetep jalan dan dapat digunakan
Perkembang mt4 dan program mql4 juga perlu ada penyesuaian2.
Belajar Membuat EA sederhana 40
Semoga tahun 2017 penuh dengan berkah dan kesuksesan....
Lama beberapa waktu ini tidak sempat share dan menjawab pertanyaan dan
komentar-komentar dari temen-temen setia pengunjung Jumforex, untuk itu
mohon maaf yang sebesar-besarnya belum bisa melayani semuanya karena
banyaknya kesibukan dll.
Order juga Alhamdulillah selalu antri maaf bila ada yang belum terlayani karena kadang antrian yang panjang sehingga waktu pengerjaan juga panjang.
Sebagai ganti maaf ini saya akan share sebuah EA Jum+MACD+ yang merupakan model EA averaging.
Ea ini sudah golongan Ea OKe.....karena sudah menggunakan perhitung BEP sederhana untuk Tpnya (hiden tp), sehingga closingnya kecil kemungkinan negatif kecuali kondisi pergerakan yang cepat atau kondisi yg ekstrim.
Untuk Riel account ... siapa takut.
Ea juga ada proteksi demo tapi sederhana
Untuk menghilangkan coding demonya pastikan mengikuti part sebelumnya tentang proteksi.
Perhatikan image Becktesnya
Sesuai nama Eanya MACD indikator untuk trigernya ,coba perhatikan triger dan pertintah order berikut;
int sig(){ if(mc(2)mcs(1) ){x=1;}if(mc(2)>mcs(2) && mc(1)
Untuk Order juga menggunakan filter candel sehingga Order akan dibatasi setiap candel 1 kali order , semakin besar time framenya maka akan semakin jarang
if( ti!=Time[0]&& hr()==1 && IsDemo()) {
if(j(1,0)+j(1,1)0), (Ask+tp*pt)*(tp>0),Nama,Magic,0,Blue);
if(sig()==2)p[1]=OrderSend(Symbol(),1,NR(lx),Bid,3,(Bid+ sl*pt)*(sl>0), (Bid-tp*pt)*(tp>0),Nama,Magic,0,Red);}
ti=Time[0];}return(0);}
Tpnya menggunakan perhitungan sebagai berikut
if(j(3,0)*TP<=j(2,0))c(0);
if(j(3,1)*TP<=j(2,1))c(1);
Parameter juga sudah dilengkapi CloseAll (close_panik) digunakan untuk menutup semua order dalam kondisi panik hehe , ketika Close_Panik= true maka semua order akan diclose dan berhenti trading
dan juga yang tidak kalah penting sudah dilengkapi dengan fasilitas componding lots
.
Okey deh sudah jadi
Perhatikan codingnya untuk lebih memahaminya
//+------------------------------------------------------------------+
//| Jum+MACD+.mq4 |
//| gifaesa@yahoo.com |
//| http://JumForex.blogspot.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright "JumForex.blogspot.com"
#property link "Gifaesa@yahoo.com"
extern string Share_EA_Jumforex = "Seting Parameter";
extern bool CLose_Panik = false;
extern string Seting_waktu = "broker time";
extern int Mulai_Jam = 0;
extern int Akhir_Jam = 20;
extern string Compounding_Lots_ = "true compounding , false lot manual";
extern bool Compounding_Lots = true;
extern double Ketahanan = 5000;
extern string Manual_Lots = " lot manual";
extern double Lots = 0.1;
extern double TP = 10;
extern int Max_order = 20;
extern string MACD = "Macd indikator";
extern int Fast = 12;
extern int Slow = 26;
extern int Macd_ = 6;
extern int Magic = 69;
bool nx=false;
double pt,lx,tp,sl;
string Nama = "Jum+MACD+ ";
double op,os,opx,osx;
int sg,sn,ti,x;
int p[10];
int init()
{ if(Digits==3 || Digits==5) pt=10*Point; else pt=Point; return(0); }
int start() {label();
if(Compounding_Lots)lx=AccountEquity()/Ketahanan; else lx=Lots;
if(CLose_Panik ){c(0);c(1); return(0);}
if(j(3,0)*TP<=j(2,0))c(0);
if(j(3,1)*TP<=j(2,1))c(1);
if( ti!=Time[0]&& hr()==1 && IsDemo()) {
if(j(1,0)+j(1,1)< Max_order ) {if(sig()==1)p[1]=OrderSend(Symbol(),0,NR(lx),Ask,3,(Ask-sl*pt)*(sl>0), (Ask+tp*pt)*(tp>0),Nama,Magic,0,Blue);
if(sig()==2)p[1]=OrderSend(Symbol(),1,NR(lx),Bid,3,(Bid+ sl*pt)*(sl>0), (Bid-tp*pt)*(tp>0),Nama,Magic,0,Red);}
ti=Time[0];}return(0);}
int sig(){ if(mc(2)mcs(1) ){x=1;}if(mc(2)>mcs(2) && mc(1) Akhir_Jam){if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true; } else if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true; return (trade);}
double j(int n,int tipe){double t=0;for(int i=0; i= 0; i--) { if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
if (OrderSymbol() != Symbol() || OrderType()!=m || OrderMagicNumber()!=Magic ) continue;
if (m >1 && OrderType() > 1) p[2]=OrderDelete(OrderTicket()); if (OrderType() == 0 && m==0)p[3]= OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE); if (OrderType() == 1 && m==1)p[4]=OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE); }}
void label(){
ObjectCreate("a",OBJ_LABEL,0,0,0);ObjectSet("a",OBJPROP_CORNER,4);ObjectSet("a",OBJPROP_XDISTANCE,10); ObjectSet("a",OBJPROP_YDISTANCE,10); ObjectSetText("a",Nama,21,"Mistral",Aqua);
ObjectCreate("j",OBJ_LABEL,0,0,0);ObjectSet("j",OBJPROP_CORNER,3);ObjectSet("j",OBJPROP_XDISTANCE,10); ObjectSet("j",OBJPROP_YDISTANCE,10); ObjectSetText("j","@ 2017 || JumForex.blogspot.com ",15,"Mistral",Yellow);
Comment("\n ",
"\n ------------------------------------------------",
"\n :: Spread : ", MarketInfo(Symbol(), MODE_SPREAD),
"\n :: Leverage : 1 : ", AccountLeverage(),
"\n :: Equity : ", AccountEquity(),
"\n :: Jam Server :", Hour(), ":", Minute(),
"\n ------------------------------------------------",
"\n :: Floting Trade : ",j(2,0)+j(2,1),
"\n :: Level Buy : ",j(1,0) ,
"\n :: Level Sell : ", j(1,1),
"\n ------------------------------------------------",
"\n :: by: Jum69 -: ",
"\n ------------------------------------------------");
}
Dengan perhitungan dan penggunaan yang baik tentu ea ini akan berhasil guna, pastikan untuk dibuat demo dulu supaya lebih memahami cara kerjanya..
Okey
semoga bermanfaat
Jangan lupa beri komen ya!!!!
JUMFOREX
Order juga Alhamdulillah selalu antri maaf bila ada yang belum terlayani karena kadang antrian yang panjang sehingga waktu pengerjaan juga panjang.
Sebagai ganti maaf ini saya akan share sebuah EA Jum+MACD+ yang merupakan model EA averaging.
Ea ini sudah golongan Ea OKe.....karena sudah menggunakan perhitung BEP sederhana untuk Tpnya (hiden tp), sehingga closingnya kecil kemungkinan negatif kecuali kondisi pergerakan yang cepat atau kondisi yg ekstrim.
Untuk Riel account ... siapa takut.
Ea juga ada proteksi demo tapi sederhana
Untuk menghilangkan coding demonya pastikan mengikuti part sebelumnya tentang proteksi.
Perhatikan image Becktesnya
Sesuai nama Eanya MACD indikator untuk trigernya ,coba perhatikan triger dan pertintah order berikut;
Untuk Order juga menggunakan filter candel sehingga Order akan dibatasi setiap candel 1 kali order , semakin besar time framenya maka akan semakin jarang
Tpnya menggunakan perhitungan sebagai berikut
Parameter juga sudah dilengkapi CloseAll (close_panik) digunakan untuk menutup semua order dalam kondisi panik hehe , ketika Close_Panik= true maka semua order akan diclose dan berhenti trading
dan juga yang tidak kalah penting sudah dilengkapi dengan fasilitas componding lots
.
Okey deh sudah jadi
Perhatikan codingnya untuk lebih memahaminya
Dengan perhitungan dan penggunaan yang baik tentu ea ini akan berhasil guna, pastikan untuk dibuat demo dulu supaya lebih memahami cara kerjanya..
Okey
semoga bermanfaat
Jangan lupa beri komen ya!!!!
JUMFOREX
Belajar Membuat EA sederhana 39 (martiangel dengan Modif Tp)
Selamat Tahun Baru 2016
Semoga tahun penuh dengan berkah dan kesuksesan....
Pada kesempatan awal tahun ini saya akan share tentang belajar membuat ea model martiangel dengan modif takeprofit (semua order takeprofitnya di jadikan satu dengan acuan titik pada takeprofit order terakhir).
Ea ini juga sengaja saya sematkan coding hanya untuk demo, hal ini supaya teman-teman lebih bersemangat untuk mempelajarinya.
Untuk menghilangkan coding demonya pastikan mengikuti part sebelumnya tentang proteksi.
Perhatikan image Becktesnya
Pada kesempatan awal tahun ini saya akan share tentang belajar membuat ea model martiangel dengan modif takeprofit (semua order takeprofitnya di jadikan satu dengan acuan titik pada takeprofit order terakhir).
Ea ini juga sengaja saya sematkan coding hanya untuk demo, hal ini supaya teman-teman lebih bersemangat untuk mempelajarinya.
Untuk menghilangkan coding demonya pastikan mengikuti part sebelumnya tentang proteksi.
Perhatikan image Becktesnya
Triger saya ambil berdasarkan acuan candel tranding , coba perhatikan trager dan pertintah order berikut;
if(Open[1]Close[1]){ res=OrderSend(Symbol(),OP_SELL,(Lots),Bid,3,SLs,TPs,Nama_EA,Magic,0,Red); }
dan untuk modif tpnya dibuat dalam fungsi sebagi berikut:
void md(){int i,r;double tpnya,dtp;
for (i = 0; i < OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
tpnya=OrderTakeProfit();}
for (i = OrdersTotal() - 1; i >= 0; i--) {if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if(OrderSymbol() != Symbol()) continue;
dtp=OrderTakeProfit();
if( tpnya!=dtp)r=OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), tpnya, 0, CLR_NONE); }}
Untuk memanggil fungsinya tinggal di ambil codingnya " md(): "
Ea model ini tentu untuk menentukan besaran takeprofitnya ,jarak antar order dan perkalian lotnya harus diperhitungkan supaya tidak terjadi closing dengan total negatif.
EA ini sebenarnya kelanjutan dari pembelajaran pada part 22 di http://jumforex.blogspot.co.id/2013/01/belajar-membuat-ea-sederhana-22-jebakan.html
Perhatikan codingnya dan bandingkan untuk lebih memahaminya
//+------------------------------------------------------------------+
//| Jum+KampRetZ .mq4 |
//| gifaesa@yahoo.com |
//| http://JumForex.blogspot.com |
//+------------------------------------------------------------------+
#property copyright "JumForex.blogspot.com"
#property link "Gifaesa@yahoo.com"
input string Nama_EA = "Jum+KampRetZ";
input int TP = 40;
input int SL = 0;
input double Lots = 0.01;
input string Menu_Martingel = "Seting";
input int Jarak_Order = 25;
input double Kali_Lots = 2;
input int Max_Order = 10;
input int Magic = 69;
double pt,SLb,TPb,SLs,TPs;
int res,ras;
int OnInit()
{
//---
if(Digits==3 || Digits==5) pt=10*Point; else pt=Point;
//---
return(INIT_SUCCEEDED);
}
void OnTick() {
md();
lab();
if(TP==0)TPb=0;else TPb=Ask+TP*pt;
if(TP==0)TPs=0;else TPs=Bid-TP*pt;
if(SL==0)SLb=0;else SLb=Ask-SL*pt;
if(SL==0)SLs=0;else SLs=Bid+SL*pt;
if( IsDemo() && JumlahOrder(0)+JumlahOrder(1)==0){
if(Open[1]Close[1]){ res=OrderSend(Symbol(),OP_SELL,(Lots),Bid,3,SLs,TPs,Nama_EA,Magic,0,Red); }
}
if(trad()==1 && JumlahOrder(0)>=1 && JumlahOrder(0)< Max_Order ) {res=OrderSend(Symbol(),OP_BUY,xlot(0),Ask,3,SLb, TPb,Nama_EA,Magic,0,Blue); }
if(trad()==2 && JumlahOrder(1)>=1 && JumlahOrder(1)< Max_Order ) {res=OrderSend(Symbol(),OP_SELL,xlot(1),Bid,3,SLs,TPs,Nama_EA,Magic,0,Red); }
}
//+------------------------------------------------------------------+
void md(){int i,r;double tpnya,dtp;
for (i = 0; i < OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
tpnya=OrderTakeProfit();}
for (i = OrdersTotal() - 1; i >= 0; i--) {if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if(OrderSymbol() != Symbol()) continue;
dtp=OrderTakeProfit();
if( tpnya!=dtp)r=OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), tpnya, 0, CLR_NONE); }}
int trad(){
int type,dp; double opb,ops;
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);}
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=(Lots*MathPow(Kali_Lots,JumlahOrder(m)));
return(ylot);}
int JumlahOrder(int Tipe){ int Total = 0;
for(int i=0; i= 0; i--) {
if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
if (OrderSymbol() != Symbol() || OrderMagicNumber()!=Magic ) continue;
if (OrderType() > 1) ras=OrderDelete(OrderTicket());
if (OrderType() == 0)ras= OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE);
if (OrderType() == 1)ras=OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE); }}
void lab(){
ObjectCreate("a",OBJ_LABEL,0,0,0);ObjectSet("a",OBJPROP_CORNER,4);ObjectSet("a",OBJPROP_XDISTANCE,10); ObjectSet("a",OBJPROP_YDISTANCE,10); ObjectSetText("a","Jum+KampRetZ",25,"Mistral",Yellow);
ObjectCreate("j",OBJ_LABEL,0,0,0);ObjectSet("j",OBJPROP_CORNER,3);ObjectSet("j",OBJPROP_XDISTANCE,10); ObjectSet("j",OBJPROP_YDISTANCE,10); ObjectSetText("j","@ 2016 || JumForex.blogspot.com ",16,"Mistral",Yellow);
Comment("\n ",
"\n ------------------------------------------------",
"\n :: Spread : ", MarketInfo(Symbol(), MODE_SPREAD),
"\n :: Leverage : 1 : ", AccountLeverage(),
"\n :: Equity : ", AccountEquity(),
"\n :: Jam Server :", Hour(), ":", Minute(),
"\n ------------------------------------------------",
"\n :: Ploting : ",man(),
"\n :: Level Op Buy : ",JumlahOrder(0),
"\n :: Level Op Sell : ",JumlahOrder(1),
"\n ------------------------------------------------",
"\n :: >>By: Jum69<<",
"\n ------------------------------------------------");
}
Dengan perhitungan dan penggunaan yang baik tentu ea ini akan berhasil guna, pastikan untuk dibuat demo dulu supaya lebih memahami cara kerjanya..
Okey
semoga bermanfaat
Jangan lup beri komen ya!!!!
https://jumforex.blogspot.com/2016/01/belajar-membuat-ea-sederhana-39.html
Semoga tahun penuh dengan berkah dan kesuksesan....
Pada kesempatan awal tahun ini saya akan share tentang belajar membuat ea model martiangel dengan modif takeprofit (semua order takeprofitnya di jadikan satu dengan acuan titik pada takeprofit order terakhir).
Ea ini juga sengaja saya sematkan coding hanya untuk demo, hal ini supaya teman-teman lebih bersemangat untuk mempelajarinya.
Untuk menghilangkan coding demonya pastikan mengikuti part sebelumnya tentang proteksi.
Perhatikan image Becktesnya
Pada kesempatan awal tahun ini saya akan share tentang belajar membuat ea model martiangel dengan modif takeprofit (semua order takeprofitnya di jadikan satu dengan acuan titik pada takeprofit order terakhir).
Ea ini juga sengaja saya sematkan coding hanya untuk demo, hal ini supaya teman-teman lebih bersemangat untuk mempelajarinya.
Untuk menghilangkan coding demonya pastikan mengikuti part sebelumnya tentang proteksi.
Perhatikan image Becktesnya
Triger saya ambil berdasarkan acuan candel tranding , coba perhatikan trager dan pertintah order berikut;
dan untuk modif tpnya dibuat dalam fungsi sebagi berikut:
Untuk memanggil fungsinya tinggal di ambil codingnya " md(): "
Ea model ini tentu untuk menentukan besaran takeprofitnya ,jarak antar order dan perkalian lotnya harus diperhitungkan supaya tidak terjadi closing dengan total negatif.
EA ini sebenarnya kelanjutan dari pembelajaran pada part 22 di http://jumforex.blogspot.co.id/2013/01/belajar-membuat-ea-sederhana-22-jebakan.html
Perhatikan codingnya dan bandingkan untuk lebih memahaminya
Dengan perhitungan dan penggunaan yang baik tentu ea ini akan berhasil guna, pastikan untuk dibuat demo dulu supaya lebih memahami cara kerjanya..
Okey
semoga bermanfaat
Jangan lup beri komen ya!!!!
https://jumforex.blogspot.com/2016/01/belajar-membuat-ea-sederhana-39.html
Tuesday, 15 October 2013
Belajar Membuat EA Sederhana 38 (terapan indikator IFX_Keltner_Channel III)
Dibagian sebelumnya sudah di jelaskan tentang model indikator ini. dan juga ada teman yang sudah bikin eanya di part sebelum nya .
Kali saya juga agan share tentang ea yg berdasarkan indikator ini dengan model averaging .
EA ini cococok untuk mengejar rabat !
Tapi jangan lupa Ea ini ada proteksi demonya | jadi harus dihilangkan dulu
e
gitu deh sementara
//+------------------------------------------------------------------+
//| Jum+Keltner Chan .mq4 |
//| Copyright 2013, Annura |
//| gifaesa@yahoo.com |
//| http://JumForex.blogspot.com |
//+------------------------------------------------------------------+
#property copyright "JumForex.blogspot.com"
#property link "Gifaesa@yahoo.com"
extern string Nama_EA = "Jum+Keltner+Chan";
extern int TP = 11;
extern int TP_money = 11;
extern int SL = 20;
extern bool SL_otomatis = false;
extern double Lot = 0.01;
extern int Magic = 69;
extern int Mode_Ma = 0;
extern int Ma_Pareode = 10;
extern int Price_tip = 5;
extern int Max_order = 2;
double pt,SLb,TPb,SLs,TPs;
int init()
{
if(Digits==3 || Digits==5) pt=10*Point; else pt=Point;
return(0);
}
int deinit()
{
return(0);
}
int start() {lab();
if(!IsDemo()){Alert("hanya untuk demo boss"); return(0);}
if(TP_money<=man())closeall();
double kfa = iCustom(Symbol(),0,"IFX_Keltner_Channel",Ma_Pareode,Mode_Ma,Price_tip,0,0);
double kfm = iCustom(Symbol(),0,"IFX_Keltner_Channel",Ma_Pareode,Mode_Ma,Price_tip,1,0);
double kfb = iCustom(Symbol(),0,"IFX_Keltner_Channel",Ma_Pareode,Mode_Ma,Price_tip,2,0);
static datetime w;
if(TP==0)TPb=0;else TPb=Ask+TP*pt;
if(TP==0)TPs=0;else TPs=Bid-TP*pt;
if(SL==0)SLb=0;else SLb=Ask-SL*pt;
if(SL==0)SLs=0;else SLs=Bid+SL*pt;
if(SL_otomatis){ SLb=kfb; SLs=kfa;}//else if(!SL_otomatis){SLb=Ask-SL*pt; SLs=Bid +SL*pt;}
if(w!=Time[0] && IsDemo()){
if(Ask<kfb && JumlahOrder(0)<Max_order) {
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,SLb,TPb,Nama_EA,Magic,0,Blue);
}
if(Bid>kfa && JumlahOrder(1)<Max_order) {
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,SLs,TPs,Nama_EA,Magic,0,Red);
}
w=Time[0]; }
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;
if(IsDemo())Total++; }
return(Total);}
double man(){double Total = 0;
for(int i=0; i<OrdersTotal(); i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic ) continue;
if(IsDemo())Total+=OrderProfit(); }
return(Total);}
void closeall(){
for (int i = OrdersTotal() - 1; i >= 0; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber()!=Magic ) continue;
if (OrderType() > 1) OrderDelete(OrderTicket());
if (OrderType() == 0) OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE);
if (OrderType() == 1)OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE); }}
void lab(){
Comment("\n ",
"\n ------------------------------------------------",
"\n :: Spread : ", MarketInfo(Symbol(), MODE_SPREAD),
"\n :: Leverage : 1 : ", AccountLeverage(),
"\n :: Equity : ", AccountEquity(),
"\n :: Jam Server :", Hour(), ":", Minute(),
"\n ------------------------------------------------",
"\n :: Total Op Buy : ",JumlahOrder(0),
"\n :: Total Op Sell : ",JumlahOrder(1),
"\n ------------------------------------------------",
"\n :: >>By: Jum69<<",
"\n ------------------------------------------------");
}
Belajar Membuat EA Sederhana 37 (terapan indikator IFX_Keltner_Channel II)
dari gambaran di part sebelumnya indi ini mempunyai 3 mode yaitu 0,1,2
terus bagimana untuk membaca indikator tersebut supaya bisa dipanggil di dalam Ea .
Pada pembahasan yang dulu kita sudah pernah membahas membuat ea dengan indikator diluar mt4 (custom indikator)
kita coba:
di pembahasan sebelumnya sudah diketahui bahwa indikator ini mempunyai 3 mode dan 3 input parameter , Nah dari situ bisa kita buat custom indikatornya begini
Nah dengan dibuat custom indi IFX_Keltner ini maka akan mudah diimplementasikan kedalam EA
Rule Ea yang akan kita bikin adalah (untuk mode market trending)
1. Buy ketika harga menembus garis upper
2. sell ketika harga menembus garis lower
3. op dibuat stiap candel ada signal
apalagi ya
itu aja deh
silahkan yang mau bikin bisa dibuat kan EAnya
Nah ini salah satu Ea yang di bikin oleh master "Anie Budi Raharjo " yang udah ngirimkan melalui FB
SLnya dibuat otomatis digaris indinya:
//+------------------------------------------------------------------+
//| IFX_Keltner_Channel.mq4 |
//| Copyright 2013, Annura |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Annura"
#property link ""
extern string Nama_EA = "IFX Keltner Channel";
extern int TP = 11;
extern int SL = 20;
extern double Lot = 0.01;
extern int Magic = 69;
extern int Mode_Ma = 0;
extern int Ma_Pareode = 10;
extern int Price_tip = 5;
extern int Max_order = 2;
int signalBuy,signalSell;
double pt,SLb,TPb,SLs,TPs;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
if(Digits==3 || Digits==5) pt=10*Point; else pt=Point;
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double kfa = iCustom(Symbol(),0,"IFX_Keltner_Channel",Ma_Pareode,Mode_Ma,Price_tip,0,0);
double kfm = iCustom(Symbol(),0,"IFX_Keltner_Channel",Ma_Pareode,Mode_Ma,Price_tip,1,0);
double kfb = iCustom(Symbol(),0,"IFX_Keltner_Channel",Ma_Pareode,Mode_Ma,Price_tip,2,0);
if(Open[1]<kfa && Close[1]>kfa && Open[0]>kfa)
{
signalBuy=1;
}
if(Open[1]>kfb && Close[1]<kfb && Open[0]<kfb)
{
signalSell=1;
}
SLb=kfb;
SLs=kfa;
if(TP==0)TPb=0;else TPb=Ask+TP*pt;
if(TP==0)TPs=0;else TPs=Bid-TP*pt;
if(signalBuy==1 && JumlahOrder(0)<Max_order)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,SLb,TPb,Nama_EA,Magic,0,Blue);
}
if(signalSell==1 && JumlahOrder(1)<Max_order)
{
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,SLs,TPs,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);
}
Trims mbak Anie atas kirimannya.
Tuesday, 16 July 2013
Belajar Membuat EA Sederhana 36 (terapan indikator IFX_Keltner_Channel)
Salam sukses semuanya
Kita lanjutkan lagi part 36 setelah pada sebelumnya 35 kita suda memabahas sedikit tentang proteksi EA.
Pada kesempatan kali ini kita akan membuat EA scalping dengan menggunakan indikator IFX_Kletner_Channel . Indikator ini bawaan mt4 untuk broker instaforex
Ini akan menambah wawasan bagi temen2 yang masih bingung menerapkan coding bila indikatornya tidak ada di standart mt4.
Nah ini tampilan indikator IFX_Keltner_Channel , sebenarnya sih mirip dengan indikator anvelope cuma ini terdiri dari 3 garis atas, tengah dan bawah
Nah untuk memasang indikator ini di chart maka silahkan cek di mt4...
Nah setelah itu akan muncul parametenya ada 3 macem inputan
Nah kaloudah tampil di Mt4 kita akan lihat buffernya , tekan CTRL D maka akan tampil
Maka akan tampil 3 nilai didalam modenya , untuk mengetahui posisinya maka bisa digunakan pointer untuk menunjuk pada garis indinya dan akan sesuai dengan nilainya
Dari pengamatan maka di peroleh garis atas (upper) di mode 0, garis tengah mode 1, dan garis bawah (lowwer) mode 2.
Loh aterus gunanya untuk apa ya ?
Ini digunakan untuk membuat coding memanggil indikator tersebut!
Tentu masih ingat pada part sebelumnya pernah di bahas tentang coding memanggil indikator yang bukan standart yang ada pada mt4....
gitu dulu deh kita lanjut pas santai...
Saturday, 8 June 2013
Belajar Membuat EA Sederhana 35 (Proteksi EA 3)
http://jumforex.blogspot.com/2013/05/belajar-membuat-ea-sederhana-35.html
Salam profit semuanya
Di Part sebelum (part 33 dan 34 ) kita sudah bahas proteksi Ea dengan account demo dan account khusus
Nah kali ini saya akan share sebuah Ea saya yang cocok untuk menantang news dan juga pas untuk kondisi market yang trending ...
Problemnya EA ini di proteksi dengan menggunakan account demo dan mungkin sedikit dibuat agak rumit ...meski sebenarnya sih gak rumit2 amat...(-___-)
Ini akan menambah wawasan bagi temen2 yang ingin memproteksi EAnya............
Oke langsung aja deh ini penampakan EAnya
//+-----------------------------------------------------------------------------------------+
//|
EA Jum+Profit+v3 |
//| gifaesa@yahoo.com |
//| http://JumForex.blogspot.com |
//+------------------------------------------------------------------+
//v3 (16-4-2013)
#property copyright "JumForex.blogspot.com"
#property link "Gifaesa@yahoo.com"
extern string Nama_EA = "Jum+Profit+v3";
extern bool Close_Panic = false;
extern string Hari_Trade = "=>Sesuai selera::";
extern bool Senin = false;
extern bool Selasa = true;
extern bool Rabu = true;
extern bool Kamis = true;
extern bool Jumat = true;
extern string Jam_server = "Set sesuai selera";
extern int Mulai_Jam = 9;
extern int Akhir_Jam = 19;
extern string Sesuaikan_risk = "Set sesuai selera";
extern bool Compound_lot = true;
extern double Manage_Balance = 130;
extern bool Buy = true;
extern bool Sell = true;
extern int TP = 35;
extern int SL = 27;
extern double Lots = 0.01;
extern int Max_level = 10;
extern int Magic = 69;
double
slbx,tpbx,slsx,tpsx,slb,tpb,sls,tps,pt,lslb,ltpb,x,slbk,tpbk,slsk,tpsk;int
s,p,pp;string k="JumProFit",kk="JumpRoFit";
int init(){p=Magic;pp=Magic+99;if(Digits==3 || Digits==5)
pt=10*Point;else pt=Point;return(0);}
int deinit(){ return(0); }
int start(){label();if(!IsDemo()){Alert("Maaf bos hanya untuk
demo");return(0);}
{if(Close_Panic){c(k,0);c(k,1);c(k,4);c(k,5);c(kk,0);c(kk,1);c(kk,4);c(kk,5);
return(0); }}
if(IsDemo()){if(Compound_lot ) x=Lots* MathFloor(AccountBalance() /
Manage_Balance); else x=Lots;}else x=MarketInfo(Symbol(), MODE_MAXLOT);
if(j(k,0,0)==0 && j(k,0,5)==1){c(k,5);}if(j(k,0,1)==0 &&
j(k,0,4)==1){c(k,4);}if(j(kk,0,0)==0 &&
j(kk,0,5)==1){c(kk,5);}if(j(kk,0,1)==0 &&
j(kk,0,4)==1){c(kk,4);}
double as = j(k,3,1); double bi = j(k,3,0);double ask = j(kk,3,1);
double bik = j(kk,3,0);
if(SL==0){slb=0;sls=0;slbx=0;slsx=0;}else
if(SL>0){slbk=ask-SL*pt;slsk=bik+SL*pt;
slb=as-SL*pt;sls=bi+SL*pt;slbx=Ask-SL*pt;slsx=Bid+SL*pt;}
if(TP==0){tpb=0;tps=0;tpbx=0;tpsx=0;}else
if(TP>0){tpbk=ask+TP*pt;tpsk=bik-TP*pt;tpb=as+TP*pt;tps=bi-TP*pt;tpbx=Ask+TP*pt;tpsx=Bid-TP*pt;}
if(
Jam()==1 && !Close_Panic && tday()==1 &&
IsDemo()){
if(Buy && ju()==0) OrderSend(Symbol(),0,NR(x),Ask,3,slbx,
tpbx,k,p,0,Blue);
if(Sell&& jum()==0) OrderSend(Symbol(),1,NR(x),Bid,3,slsx,
tpsx,kk,pp,0,Red);
}
if(j(k,2,0)+j(k,2,1)-p < Max_level && IsDemo()){
if(j(k,0,1)==1 && j(k,0,4)==0)
{OrderSend(Symbol(),4,(j(k,1,1)),as,3,slb, tpb,k,j(k,2,1)+1,0,Blue);}
if(j(k,0,0)==1 && j(k,0,5)==0)
{OrderSend(Symbol(),5,(j(k,1,0)),bi,3,sls, tps,k,j(k,2,0)+1,0,Red);}
}
if(j(kk,2,0)+j(kk,2,1)-pp < Max_level && IsDemo()){
if(j(kk,0,1)==1 && j(kk,0,4)==0)
{OrderSend(Symbol(),4,(j(kk,1,1)),ask,3,slbk,
tpbk,kk,j(kk,2,1)+1,0,Blue);}
if(j(kk,0,0)==1 && j(kk,0,5)==0)
{OrderSend(Symbol(),5,(j(kk,1,0)),bik,3,slsk,
tpsk,kk,j(kk,2,0)+1,0,Red);}
}
return(0);
}
//+------------------------------------------------------------------+
double j(string m,int n, int tipe){double t=0;for(int i=0;
i Akhir_Jam){ if (Hour()
>= Mulai_Jam || Hour() < Akhir_Jam) trade = true;} else if
(Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;
return (trade);}
int tday(){int trd=0;if(Senin && DayOfWeek()==1)
trd=1;if(Selasa && DayOfWeek()==2) trd=1;if(Rabu &&
DayOfWeek()==3) trd=1;if(Kamis && DayOfWeek()==4)
trd=1;if(Jumat && DayOfWeek()==5) trd=1;return(trd);}
void c(string m,int t){for (int i = OrdersTotal() - 1; i >= 0; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);if (OrderSymbol() !=
Symbol() || OrderComment()!=m|| OrderType()!=t)
continue;if(IsDemo()){if (OrderType() > 1)
OrderDelete(OrderTicket());if (OrderType() == 0)
OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE);if (OrderType()
== 1)OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE); }}}
double f(string m,int t){ double dp = 0;int i; for (i = 0; i <
OrdersTotal(); i++) {OrderSelect(i, SELECT_BY_POS, MODE_TRADES);if
(OrderSymbol() != Symbol() || OrderComment()!=m|| t!=OrderType())
continue;if(IsDemo()){ dp += OrderProfit(); }} return(dp);}
void label(){int x,y;if((j(k,0,0)==1 && j(k,2,0)==p)||(ju()==0))
x=0; else x=j(k,2,0)+j(k,2,1)-p;if((j(kk,0,1)==1 &&
j(kk,2,1)==p)||(jum()==0)) y=0; else y=j(kk,2,0)+j(kk,2,1)-pp;
Comment("\n ",
"\n ",
"\n ------------------------------------------------",
"\n :: =>+Jum+Profit+v3<=",
"\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 :: Floting buy : ",f(k,0)+f(kk,0),"\n :: Floting sell :
",f(k,1)+f(kk,1),
"\n :: Level pro : ",x, "\n :: Level Fit : ",y,
"\n ------------------------------------------------",
"\n :: >>By: Jum69<<",
"\n ------------------------------------------------");
}
Nah oke deh silahkan dicopas dan di coba >>>>>bagi yang mau di riel account ya tantangan sih harus bisa menghilangkan proteksi account demonya
Untuk memastikan proteksinya telah hilang silahkan di BT di account demo dan accoun riel kalo hasilnya sama berarti sudah berhasil
Bagi yang udah berhasil kasih komen yah!
Selamat berkreasi
------------------------------------------------------------------------------------------
Pastikan mengikuti part sebelumnya
Belajar Membuat EA Sederhana 33
Belajar Membuat EA Sederhana 34
Di Part sebelum (part 33 dan 34 ) kita sudah bahas proteksi Ea dengan account demo dan account khusus
Nah kali ini saya akan share sebuah Ea saya yang cocok untuk menantang news dan juga pas untuk kondisi market yang trending ...
Problemnya EA ini di proteksi dengan menggunakan account demo dan mungkin sedikit dibuat agak rumit ...meski sebenarnya sih gak rumit2 amat...(-___-)
Ini akan menambah wawasan bagi temen2 yang ingin memproteksi EAnya............
Oke langsung aja deh ini penampakan EAnya
Nah oke deh silahkan dicopas dan di coba >>>>>bagi yang mau di riel account ya tantangan sih harus bisa menghilangkan proteksi account demonya
Untuk memastikan proteksinya telah hilang silahkan di BT di account demo dan accoun riel kalo hasilnya sama berarti sudah berhasil
Bagi yang udah berhasil kasih komen yah!
Selamat berkreasi
------------------------------------------------------------------------------------------
Pastikan mengikuti part sebelumnya
Belajar Membuat EA Sederhana 33
Belajar Membuat EA Sederhana 34
3 komentar:

salam kenal ya kang, saya arifin...sukses selalu buat akang yang sudah mau share mengenai membuat ea sederhana, tentunya ilmu yg kang jum share sangat bermanfaat buat saya dan teman2....oh iya saya punya indikator bisa akang bantu saya agar indikator itu bisa jadi EA ?Balas
@Kang Arifin salam kenal kembali dari saya,Balas
kalo berkenan share indikatornya disini, kita oprek sama2, sekalian belajar
@Kang Jum,
Jika posisi pasar sideways keci (dibawah 50 poin) l..lumayan report EA part35 ini, BTW thank you
salam,
Belajar Membuat EA Sederhana 34 (Proteksi EA 2)
http://jumforex.blogspot.com/2013/05/belajar-membuat-ea-sederhana-34.html
Setelah pada part sebelumnya kita sudah bahas proteksi hanya untuk account demo
Kali ini kita bahas proteksi untuk account number khusus, sehingga Ea yang di proteksi dengan ini akan hanya dapat digunakan pada nomor account yang sudah ditetapkan.
Nah sebenarnya proteksi ini hanya pangaman account saja tidak berarti proteksi ini tidak bisa dirubah...
Sofware terus berkembang , file ex4 juga bisa di ubah lagi ke file mql4 melalui sofware decompile sehingga proteksi hanyalah bersifat sementara. Ketika kita share pada orang lain tentu akan mengalami bahwasanya EA kita suatu ketika juga akan di bongkar oleh trader lain.
Ok bagian yang perlu ditambahakan sama mirip dengan pada protek demo pada part 33
int No_accnya=0000;// ganti nomor account nya disini
if(AccountNumber()!=No_accnya){Alert("maaf bOSS no account anda gak cocok ..Kacian deh Loh"); return(0); }
Nah ini yang perlu disuntik di bawah int start()
heee kita coba suntik ke EA di part 25
He semoga menambah wawasan deh
Salam profit All
Mari Membuat EA (Logic Stoch plus Martingale)
http://www.blogrumahfx.com/2013/01/mari-membuat-ea-logic-stoch-plus.html
//+-----------------------------------------------------------------------+
//| ~~ tes trigger op stoch ~~.mq4 |
//| @tes trigger op stoch |
//| |
//+-----------------------------------------------------------------------+
#property copyright "@tes trigger op stoch"
/*-- Parameter ini ditampilkan di EA dan bisa diubah --*/
extern int TakeProfit = 10; // Nilai TP setiap OP di EA Martingale ini
extern int PipStep = 10; // Jarak pip dimana akan buka OP baru
extern int Slippage = 3; // Apa itu slippage ? Googling sendiri ya..
extern double Lots = 0.05; // Nilai lots awal, nantinya akan digandakan setiap step
extern double Multiply = 3.0; // Nilai pengali setiap step OP baru
extern int MaxTrade = 7; // Banyak OP maksimal yang boleh dijalankan
extern bool UseTime = TRUE; // Pilihan apakah memakai waktu bekerjanya EA ?
extern int HourStart = 24; // Waktu mulai EA bekerja
extern int HourEnd = 13; // Waktu akhir EA bekerja
/*-- Parameter ini tidak ditampilkan di EA --*/
string EAName = "~~tes trigger op stoch~~"; // Nama EA, untuk ditampilkan di layar
string EAComment = "~~tes trigger op stoch~~"; // Variabel ini akan kita masukkan di setiap OP sebagai Comment
int EAMagicNumber = 8095; // Magic Number
double SetPoint = 0; // Variabel SetPoint untuk kode digit broker 4 atau 5
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetBroker();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int iTrade=0;
Comment(EAName); // Tampilkan Nama EA di layar
/* -- Jika tidak ada OP sama sekali, maka jalankan fungsi berikut --*/
/* -- Disinilah tempat anda memasukkan koding indikator untuk memicu OP --*/
if(OrdersTotal()==0)
{
if ((iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_MAIN,0) > iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_SIGNAL,0)))
{
/*-- Order Buy --*/
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, Ask+TakeProfit*SetPoint, EAComment, EAMagicNumber);
}
else if ((iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_MAIN,0) < iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_SIGNAL,0)))
{
/*-- Order Sell --*/
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, Bid-TakeProfit*SetPoint, EAComment, EAMagicNumber);
}
}
/* -- Inilah Fungsi Martingale. Jika ada OP yang salah, maka lakukan martingale --*/
if(OrdersTotal()>=1)
{
GoMartingale();
}
//----
return(0);
}
//+------------------------------------------------------------------+
/*--agar EA bisa running di Broker 4 Digit atau 5 Digit--*/
void SetBroker()
{
if (Digits==3 || Digits==5) // Perintah untuk broker 5 Digits
{SetPoint=Point*10;}
else // Perintah untuk broker 4 Digits
{SetPoint=Point;}
}void GoMartingale()
{
int iCount = 0;
double LastOP = 0;
double LastLots = 0;
bool LastIsBuy = FALSE;
int iTotalBuy = 0;
int iTotalSell = 0;
int Spread=0;
Spread= MarketInfo(Symbol(), MODE_SPREAD);
for(iCount=0;iCount<OrdersTotal();iCount++)
{
OrderSelect(iCount,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(LastOP==0) {LastOP=OrderOpenPrice();}
if(LastOP>OrderOpenPrice()) {LastOP=OrderOpenPrice();}
if(LastLots<OrderLots()) {LastLots=OrderLots();}
LastIsBuy=TRUE;
iTotalBuy++;
/* Bila mencapai batas OP maksimal, jangan tambah OP lagi */
if(iTotalBuy==MaxTrade) {return(0);}
}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(LastOP==0) {LastOP=OrderOpenPrice();}
if(LastOP<OrderOpenPrice()) {LastOP=OrderOpenPrice();}
if(LastLots<OrderLots()) {LastLots=OrderLots();}
LastIsBuy=FALSE;
iTotalSell++;
/* Bila mencapai batas OP maksimal, jangan tambah OP lagi */
if(iTotalBuy==MaxTrade) {return(0);}
}
}
/* Jika arah Price adalah DOWNTREND...., Periksa nilai Bid (*/
if(LastIsBuy)
{
if(Bid<=LastOP-(Spread*SetPoint)-(PipStep*SetPoint))
{
OrderSend(Symbol(), OP_BUY, Multiply*LastLots, Ask, Slippage, 0, Ask+TakeProfit*SetPoint, EAComment, EAMagicNumber);
ModifyTP();
LastIsBuy=FALSE;
return(0);
}
}
/* Jika arah Price adalah Sell...., Periksa nilai Ask (*/
else if(!LastIsBuy)
{
if(Ask>=LastOP+(Spread*SetPoint)+(PipStep*SetPoint))
{
OrderSend(Symbol(), OP_SELL, Multiply*LastLots, Bid, Slippage, 0, Bid-TakeProfit*SetPoint, EAComment, EAMagicNumber);
ModifyTP();
return(0);
}
}
}
/*-- Fungsi ModifyTP ini untuk mengubah semua OP agar TP di titik yang sama --*/
void ModifyTP()
{
int iCount=0;
double NewTP=0;
/*- Ambil nilai Take Profit dari Order terakhir -*/
for(iCount=0;iCount<OrdersTotal();iCount++)
{
OrderSelect(iCount,SELECT_BY_POS,MODE_TRADES);
/*-- Kalau OP-nya adalah BUY, ambil nilai TP yang paling kecil. Jadikan TP bersama --*/
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(NewTP==0) {NewTP=OrderTakeProfit();}
if(NewTP>OrderTakeProfit()) {NewTP=OrderTakeProfit();}
}
/*-- Kalau OP-nya adalah SELL, ambil nilai TP yang paling besar. Jadikan TP bersama --*/
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(NewTP==0) {NewTP=OrderTakeProfit();}
if(NewTP<OrderTakeProfit()) {NewTP=OrderTakeProfit();}
}
}
/*- Ubah semua nilai OP TakeProfit dengan yang baru (2x lipat) -*/
for(iCount=0;iCount<OrdersTotal();iCount++)
{
OrderSelect(iCount,SELECT_BY_POS,MODE_TRADES);
/*- Kalau semua OP adalah BUY, maka ubahlah TP mereka -*/
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
OrderModify(OrderTicket(), OrderLots(), 0, NewTP, 0);
}
/*- Kalau semua OP adalah SELL, maka ubahlah TP mereka -*/
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
OrderModify(OrderTicket(), OrderLots(), 0, NewTP, 0);
}
}
}
//| ~~ tes trigger op stoch ~~.mq4 |
//| @tes trigger op stoch |
//| |
//+-----------------------------------------------------------------------+
#property copyright "@tes trigger op stoch"
/*-- Parameter ini ditampilkan di EA dan bisa diubah --*/
extern int TakeProfit = 10; // Nilai TP setiap OP di EA Martingale ini
extern int PipStep = 10; // Jarak pip dimana akan buka OP baru
extern int Slippage = 3; // Apa itu slippage ? Googling sendiri ya..
extern double Lots = 0.05; // Nilai lots awal, nantinya akan digandakan setiap step
extern double Multiply = 3.0; // Nilai pengali setiap step OP baru
extern int MaxTrade = 7; // Banyak OP maksimal yang boleh dijalankan
extern bool UseTime = TRUE; // Pilihan apakah memakai waktu bekerjanya EA ?
extern int HourStart = 24; // Waktu mulai EA bekerja
extern int HourEnd = 13; // Waktu akhir EA bekerja
/*-- Parameter ini tidak ditampilkan di EA --*/
string EAName = "~~tes trigger op stoch~~"; // Nama EA, untuk ditampilkan di layar
string EAComment = "~~tes trigger op stoch~~"; // Variabel ini akan kita masukkan di setiap OP sebagai Comment
int EAMagicNumber = 8095; // Magic Number
double SetPoint = 0; // Variabel SetPoint untuk kode digit broker 4 atau 5
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetBroker();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int iTrade=0;
Comment(EAName); // Tampilkan Nama EA di layar
/* -- Jika tidak ada OP sama sekali, maka jalankan fungsi berikut --*/
/* -- Disinilah tempat anda memasukkan koding indikator untuk memicu OP --*/
if(OrdersTotal()==0)
{
if ((iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_MAIN,0) > iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_SIGNAL,0)))
{
/*-- Order Buy --*/
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, Ask+TakeProfit*SetPoint, EAComment, EAMagicNumber);
}
else if ((iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_MAIN,0) < iStochastic(NULL, NULL,4,14,1,MODE_SMA,0,MODE_SIGNAL,0)))
{
/*-- Order Sell --*/
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, Bid-TakeProfit*SetPoint, EAComment, EAMagicNumber);
}
}
/* -- Inilah Fungsi Martingale. Jika ada OP yang salah, maka lakukan martingale --*/
if(OrdersTotal()>=1)
{
GoMartingale();
}
//----
return(0);
}
//+------------------------------------------------------------------+
/*--agar EA bisa running di Broker 4 Digit atau 5 Digit--*/
void SetBroker()
{
if (Digits==3 || Digits==5) // Perintah untuk broker 5 Digits
{SetPoint=Point*10;}
else // Perintah untuk broker 4 Digits
{SetPoint=Point;}
}void GoMartingale()
{
int iCount = 0;
double LastOP = 0;
double LastLots = 0;
bool LastIsBuy = FALSE;
int iTotalBuy = 0;
int iTotalSell = 0;
int Spread=0;
Spread= MarketInfo(Symbol(), MODE_SPREAD);
for(iCount=0;iCount<OrdersTotal();iCount++)
{
OrderSelect(iCount,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(LastOP==0) {LastOP=OrderOpenPrice();}
if(LastOP>OrderOpenPrice()) {LastOP=OrderOpenPrice();}
if(LastLots<OrderLots()) {LastLots=OrderLots();}
LastIsBuy=TRUE;
iTotalBuy++;
/* Bila mencapai batas OP maksimal, jangan tambah OP lagi */
if(iTotalBuy==MaxTrade) {return(0);}
}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(LastOP==0) {LastOP=OrderOpenPrice();}
if(LastOP<OrderOpenPrice()) {LastOP=OrderOpenPrice();}
if(LastLots<OrderLots()) {LastLots=OrderLots();}
LastIsBuy=FALSE;
iTotalSell++;
/* Bila mencapai batas OP maksimal, jangan tambah OP lagi */
if(iTotalBuy==MaxTrade) {return(0);}
}
}
/* Jika arah Price adalah DOWNTREND...., Periksa nilai Bid (*/
if(LastIsBuy)
{
if(Bid<=LastOP-(Spread*SetPoint)-(PipStep*SetPoint))
{
OrderSend(Symbol(), OP_BUY, Multiply*LastLots, Ask, Slippage, 0, Ask+TakeProfit*SetPoint, EAComment, EAMagicNumber);
ModifyTP();
LastIsBuy=FALSE;
return(0);
}
}
/* Jika arah Price adalah Sell...., Periksa nilai Ask (*/
else if(!LastIsBuy)
{
if(Ask>=LastOP+(Spread*SetPoint)+(PipStep*SetPoint))
{
OrderSend(Symbol(), OP_SELL, Multiply*LastLots, Bid, Slippage, 0, Bid-TakeProfit*SetPoint, EAComment, EAMagicNumber);
ModifyTP();
return(0);
}
}
}
/*-- Fungsi ModifyTP ini untuk mengubah semua OP agar TP di titik yang sama --*/
void ModifyTP()
{
int iCount=0;
double NewTP=0;
/*- Ambil nilai Take Profit dari Order terakhir -*/
for(iCount=0;iCount<OrdersTotal();iCount++)
{
OrderSelect(iCount,SELECT_BY_POS,MODE_TRADES);
/*-- Kalau OP-nya adalah BUY, ambil nilai TP yang paling kecil. Jadikan TP bersama --*/
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(NewTP==0) {NewTP=OrderTakeProfit();}
if(NewTP>OrderTakeProfit()) {NewTP=OrderTakeProfit();}
}
/*-- Kalau OP-nya adalah SELL, ambil nilai TP yang paling besar. Jadikan TP bersama --*/
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
if(NewTP==0) {NewTP=OrderTakeProfit();}
if(NewTP<OrderTakeProfit()) {NewTP=OrderTakeProfit();}
}
}
/*- Ubah semua nilai OP TakeProfit dengan yang baru (2x lipat) -*/
for(iCount=0;iCount<OrdersTotal();iCount++)
{
OrderSelect(iCount,SELECT_BY_POS,MODE_TRADES);
/*- Kalau semua OP adalah BUY, maka ubahlah TP mereka -*/
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
OrderModify(OrderTicket(), OrderLots(), 0, NewTP, 0);
}
/*- Kalau semua OP adalah SELL, maka ubahlah TP mereka -*/
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderComment()==EAComment && OrderMagicNumber()==EAMagicNumber)
{
OrderModify(OrderTicket(), OrderLots(), 0, NewTP, 0);
}
}
}
Subscribe to:
Posts (Atom)


maju terus lah trader Indonesia khusus nya dibawah bendera JumForex