Rabu, 30 April 2014

Belajar Membuat EA Sederhana 30

Assalamualaikum .............semuanya Salam profit dan sukses selalu! Sampai hari ternyata masih banyak email dan juga Ym ==>minta dibuatkan Ea ... Padahal dengan saya  share dari part 1 sampai ini part 30 ini dengan harapan temen2 mau belajar membuat EA , meski hanya sederhana.
Part 1 sampai dengan 30 tanpa terasa ternyata sudah banyak hee.

Disini kebetulan gak share tentang dasar2 mql tapi ini sebenarnya bisa dipelajari di metaeditor.
Coba aja buka metaeditor dan perhatikan di sebelah kanan tab atau klik di bagian dictionary buka satu persatu bagian dari semua hal yang terkait dengan pemrogram mql4 ada semuanya...atau kesini http://book.mql4.com  .....hem  lengkap kan?
Tinggal kemauan kita untuk mempelajarinya ...saya belajar juga mulai dai 0 (nol) kecil loh

Loh dulu saya juga belajar dari 0 dengan banyak i membaca dan praktek ditambah rajin bertanya kepada para master eeeeeeeeee , banyak di forum2 master yang selalu siap membantu kita ...gratis pula...,,Enak kan?
Dulu saya belajar tentang EA dimulai ketika sakit gara2 banyak nongkrong di depan komputer dan mata melotot ngelihat chart heee ditambah banyak berdebar debar gara2 loncatan news rilis dengan  floting menganga heeee

Ternyata dengan diberi sakit ada banyak hikmah ................ saya  jadi bisa membuat  EA , meski hanya EA yang sederhana.
Alhamdulillah  udah 1,5 tahun terakhir  semua Ea yang saya gunakan di account riel adalah buatan sendiri.
Nah mudaha2 ini memberi motivasi rekan2 trader untuk bisa membuat EAnya sendiri .

Alhamdulillah lagi deh......... sekarang saya santai gak banyak didepan kompi loh.......... buat apa capek2 di depan kompi kalo bisa ditinggal jalan2  dan eee profitnya juga sama ...ya kan?
Kalo udah rejeki yah gak akan kemana   ..........untuk apa capek heee didepan kompi eeee bisa vertigo itu sih pengalaman saya

Nah EA sebenarnya hanyalah pembantu yang mewakili trading kita ..
dengan pemahaman yang baik Ea juga sangat membantu transaksi kita.

Apa sih susah nya bikin EA?
Bikin Ea itu gampang koq (hee mentang2 udah bisa)
tapi ada yang bilang sulit yahhh bagi yang belum mempelajarinya haaahaa
Sampai hari ini saya juga masih belajar !

Yang penting ada kemauan pasti ada jalan ....
Jangan sungkan2 bertanya kepada siapapun ...loh itu kuncinya

Oh ya hampir lupa nih EA di part 30  ini sebagai wawasan saja ... dan pada bagian ini saya sengaja tidak kasi penjelasan tapi harapan saya ada yang mau kasih comment dengan penjelasan2 hee


Semoga berhasil semuanya deh!

EAnya
//+------------------------------------------------------------------+
//|                                                      EA Jum+wPR  |
//|                                                gifaesa@yahoo.com |
//|                                     http://JumForex.blogspot.com |
//+------------------------------------------------------------------+

#property copyright "JumForex.blogspot.com"
#property link      "Gifaesa@yahoo.com"

extern string wPR="Pro EA";
extern bool mm =true;
extern double  manage_balance =5;
extern bool limit=true;
extern int jarak =10;
extern int tp =100;
extern int sl =60;
extern double lots =0.1;
extern bool trailing=true;
extern int trailingStop = 10;
extern int magic = 69;
double z,pt;int mg;
string  Nama_EA= "Jum+w",Nama   = "Jum+ww";

double w(int p,int m){return(iWPR(NULL,0,p,m)); }
double j(int m,int t,int p){
  double a;
  for(int i=0; i<OrdersTotal(); i++){
  OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=m||OrderType()!=t) continue;
   if(p==1) a++;
   if(p==2) a=OrderOpenPrice();}
   return(a);}
double k(double x){double maxlots = MarketInfo(Symbol(), MODE_MAXLOT),minilot = MarketInfo(Symbol(), MODE_MINLOT),lstep = MarketInfo(Symbol(), MODE_LOTSTEP); double lots = lstep * NormalizeDouble(x / lstep, 0);lots = MathMax(MathMin(maxlots, lots), minilot); return (lots);}
int init(){if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point; mg=magic+5; return(0);}
int start() {
 if((j(magic,0,1)==0 && j(mg,1,1)==1))tr(1,mg);
 if((j(magic,1,1)==0 && j(mg,0,1)==1))tr(0,mg);
if(trailing){
 if(j(magic,0,1)==1 && j(mg,1,1)==0 && (j(magic,0,2)+jarak*pt)<=Bid)tr(0,magic);
 if(j(magic,1,1)==1 && j(mg,0,1)==0 && (j(magic,1,2)-jarak*pt)>=Ask)tr(1,magic);
}
 if(mm) z=lots* MathFloor(AccountBalance() / manage_balance); else z=lots;
if( Hour()<12){
   if(j(magic,0,1)==0 && w(12,0)<(-1)*90 ){OrderSend(Symbol(),OP_BUY,k(z),Ask,3,(Ask-sl*pt)*(sl>0), (Ask+tp*pt)*(tp>0),Nama_EA,magic,0,Blue); }
   if(j(magic,1,1)==0 && w(12,0)>(-1)*10 ){OrderSend(Symbol(),OP_SELL,k(z),Bid,3,(Bid+sl*pt)*(sl>0), (Bid-tp*pt)*(tp>0),Nama_EA,magic,0,Red);}
  double g=MarketInfo(Symbol(),MODE_SPREAD); 
  double s=j(magic,1,2)-(jarak)*pt;
  double b=j(magic,0,2)+(jarak)*pt;
if(limit){  
  if(j(magic,1,1)==1 && j(mg,2,1)==0 && j(mg,0,1)==0){OrderSend(Symbol(),2,k(z),s,3,(s-sl*pt)*(sl>0), (s+tp*pt)*(tp>0),Nama,magic+5,0,Blue); }
  if(j(magic,0,1)==1 && j(mg,3,1)==0 && j(mg,1,1)==0 ){OrderSend(Symbol(),3,k(z),b,3,(b+sl*pt)*(sl>0), (b-tp*pt)*(tp>0),Nama,magic+5,0,Red);}
 }}
  if(j(magic,1,1)==0 && j(mg,2,1)==1){c(2);}
  if(j(magic,0,1)==0 && j(mg,3,1)==1){c(3);}
 
 label();
 return(0);
 }
 void c(int m)
{
 for (int i = OrdersTotal() - 1; i >= 0; i--) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol() || OrderMagicNumber()!=magic+5 || OrderType()!=m) 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 tr(int t,int m)
{
for(int i=0; i<OrdersTotal(); i++){
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=m || OrderType()!=t ) continue;
        if(OrderType()==OP_BUY)  {
           if((OrderStopLoss()<Bid-pt*trailingStop) || (OrderStopLoss()==0)) {
              OrderModify(OrderTicket(),OrderOpenPrice(),Bid-pt*trailingStop,OrderTakeProfit(),0,Green);
              return(0);
              }
           }
        if(OrderType()==OP_SELL)  {
           if(OrderStopLoss()>(Ask+pt*trailingStop) || (OrderStopLoss()==0)){
              OrderModify(OrderTicket(),OrderOpenPrice(),Ask+pt*trailingStop,OrderTakeProfit(),0,Red);
              return(0);
              }
           }
     }
  
}
void label()
{
 Comment("\n ",
   "\n ",
   "\n ------------------------------------------------",
   "\n :: =>+Jum+wPR<=",
   "\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 ------------------------------------------------");
}


============
*copas dari http://jumforex.blogspot.com

Tidak ada komentar:

Posting Komentar