Rabu, 30 April 2014

Belajar Membuat EA Sederhana 29 (daily marti lepas)

Belajar Membuat EA Sederhana 29 (daily marti lepas)

Salam Profit semuanya .....pastikan sudah membaca pada part sebelumnya disini

Karena kali ini saya akan mengoprek EA pada  part 28  ini untuk di sesuaikan dengan rule yang ada pada permintaan di forum indomt5  ini 

Lansung aja deh silahkan di copas
//+------------------------------------------------------------------+
//|                                                    Jum+SpiderBoo |
//|                                                gifaesa@yahoo.com |
//|                                     http://JumForex.blogspot.com |
//+------------------------------------------------------------------+

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

extern string  Target_Equety_          = "Harus lebih besar dari Equety+";
extern double  Target_Equety           = 1000;
extern int     Mulai_Jam               = 0;
extern int     Akhir_Jam               = 20;
extern int     TP                      = 45;
extern int     SL                      = 30;
extern double  Lots                    = 0.01;
extern int     Max_level               = 12;
extern double  DiMarti                 = 2;
extern int     Magic                   = 69;
string  Nama_EA                 = "Jum+SpiderBoo+";


double slb,tpb,sls,tps,pt,bal;int s;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 bal= AccountBalance();
 if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point;  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
    ObjectDelete("j");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  if(SL==0||TP==0){Alert(" Isi dulu TP Dan SLnya"); return(0);}
  label();
  if(Target_Equety<AccountEquity()) {
    closeall(0);
    closeall(1);
    Alert("Cek Target_Equetynya salah ");
   return(0);
   }
double O=iOpen(Symbol(),PERIOD_D1,1);
double C=iClose(Symbol(),PERIOD_D1,1);
if(O<C)s=1;
if(O>C)s=2;
if(Jam_trade()==1 && jumlahorder(0) + jumlahorder(1)==0 && DayOfWeek()>1 && trad(4)==0){
if((trad(1)>0) || (trad(1)==0)){ 
    if(s==1) {OrderSend(Symbol(),OP_BUY,NR(Lots),Ask,3,Ask-SL*pt, Ask+TP*pt,Nama_EA,Magic,0,Blue);}
    if(s==2) {OrderSend(Symbol(),OP_SELL,NR(Lots),Bid,3,Bid+SL*pt, Bid-TP*pt,Nama_EA,Magic,0,Red);}
    }
   if( trad(3)< Max_level +Magic ){
   if(trad(1)<0 && s==1) {OrderSend(Symbol(),OP_BUY,xlot(),Ask,3,Ask-SL*pt, Ask+TP*pt,Nama_EA,trad(3)+1,0,Blue);  }
   if(trad(1)<0 && s==2) {OrderSend(Symbol(),OP_SELL,xlot(),Bid,3,Bid+SL*pt, Bid-TP*pt,Nama_EA,trad(3)+1,0,Red);   }
   }
}


   return(0);
  }
//+------------------------------------------------------------------+

int Jam_trade()
{
   bool trade = false;
   if(Mulai_Jam > Akhir_Jam){
     if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true;
   } else
     if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;

   return (trade);
}

int jumlahorder( int tipe)
{
int total=0;
for(int i=0; i<OrdersTotal(); i++)
  {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderComment() != Nama_EA || OrderType()!=tipe) continue;
     total++;
  }

return(total);
}
double NR(double thelot)
{
    double maxlots = MarketInfo(Symbol(), MODE_MAXLOT),
    minilot = MarketInfo(Symbol(), MODE_MINLOT),
    lstep = MarketInfo(Symbol(), MODE_LOTSTEP);
    double lots = lstep * NormalizeDouble(thelot / lstep, 0);
    lots = MathMax(MathMin(maxlots, lots), minilot);
    return (lots);
}


void closeall(int m)
{
 for (int i = OrdersTotal() - 1; i >= 0; i--) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol() || OrderComment() != Nama_EA ||  OrderType()!=m) continue;
  if (OrderType() > 1) OrderDelete(OrderTicket());
   else {
    if (OrderType() == 0) OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE);
    else               OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE);
  }
 }
}
double money()
{
 double dp = 0;
 int i;
 for (i = 0; i < OrdersTotal(); i++) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol()  || OrderComment() != Nama_EA) continue;
  dp += OrderProfit();
 }
 return(dp);
}

double trad(int m)
{
  double pr,op;
  for (int i = 0; i < OrdersHistoryTotal(); i++) {
   if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
   if (OrderSymbol() != Symbol()/* || OrderComment() != Nama_EA*/) continue;
   if(m==1)pr=OrderProfit();
   if(m==2)pr=OrderType();
   if(m==3)pr=OrderMagicNumber();
   datetime c=OrderCloseTime();
   datetime o=OrderOpenTime();
   if (iBarShift(Symbol(),PERIOD_D1,o)==0) {
   if (iBarShift(Symbol(),PERIOD_D1,c)==0){
   if(m==4)pr++;
   }
   }
   }
return(pr);
}
double xlot()
{
 double ylot,dlot;
  for (int i = 0; i < OrdersHistoryTotal(); i++) {
   if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
   if (OrderSymbol() != Symbol()/* || OrderComment() != Nama_EA */) continue;
     dlot=OrderLots();
     }
    ylot=NR(dlot*DiMarti);
return(ylot);
}
void label()
{
   ObjectCreate("j",OBJ_LABEL,0,0,0);
   ObjectSet("j",OBJPROP_CORNER,4);
   ObjectSet("j",OBJPROP_XDISTANCE,10);
   ObjectSet("j",OBJPROP_YDISTANCE,10);
   ObjectSetText("j","Jum+SpiderBoo from : JumForex.blogspot.com ",21,"Mistral",Aqua);
 Comment("\n ",
   "\n ",
   "\n ------------------------------------------------",
   "\n :: Spread                 : ", MarketInfo(Symbol(), MODE_SPREAD),
   "\n :: Leverage               : 1 : ", AccountLeverage(),
   "\n :: Jam Server             :", Hour(), ":", Minute(),
   "\n ------------------------------------------------",
   "\n :: Equity sekarang        : ", AccountEquity(),"  $",
   "\n :: Target_Equety          : ", Target_Equety ,"  $",
   "\n ------------------------------------------------",
   "\n :: Posisi floting         :",money(),"  $",
   "\n :: Level                  :",trad(3)-Magic,
   "\n ------------------------------------------------",
   "\n :: >>By: Jum69<<",
   "\n ------------------------------------------------");
//+------------------------------------------------------------------+
}

============


setelah di becktes EA ini udah jalan


karena ada penyesuaian rule di forum maka sedikit disesuaikan
cuma filter doji nya belum ada ><
//+------------------------------------------------------------------+
//|                                                    Jum+SpiderBoo |
//|                                                gifaesa@yahoo.com |
//|                                     http://JumForex.blogspot.com |
//+------------------------------------------------------------------+

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

extern string  Target_Equety_          = "Harus lebih besar dari Equety+";
extern double  Target_Equety           = 1000;
extern int     Mulai_Jam               = 0;
extern int     Akhir_Jam               = 20;
extern int     TP                      = 80;
extern int     SL                      = 1000;
extern double  Lots                    = 0.01;
extern int     Max_level               = 12;
extern double  DiMarti                 = 2;
extern int     Magic                   = 69;
string  Nama_EA                 = "Jum+SpiderBoo+";


double slb,tpb,sls,tps,pt,bal;int s;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 bal= AccountBalance();
 if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point;  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
    ObjectDelete("j");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  if(SL==0||TP==0){Alert(" Isi dulu TP Dan SLnya"); return(0);}
  label();
  if(Target_Equety<AccountEquity()) {
    closeall(0);
    closeall(1);
    Alert("Cek Target_Equetynya salah ");
   return(0);
   }
if( jumlahorder(1,0) + jumlahorder(1,1)>0 &&  jumlahorder(2,0)+jumlahorder(2,1)<0 && jumlahorder(3,0)+jumlahorder(3,1)+ (24*3600)<=TimeCurrent() ){closeall(0);closeall(1);}
double O=iOpen(Symbol(),PERIOD_D1,1);
double C=iClose(Symbol(),PERIOD_D1,1);
if(O<C)s=1;
if(O>C)s=2;
if(Jam_trade()==1 && jumlahorder(1,0) + jumlahorder(1,1)==0 && DayOfWeek()>1 && trad(4)==0 && trad(5)==0){
if((trad(1)>0) || (trad(1)==0)){ 
    if(s==1) {OrderSend(Symbol(),OP_BUY,NR(Lots),Ask,3,Ask-SL*pt, Ask+TP*pt,Nama_EA,Magic,0,Blue);}
    if(s==2) {OrderSend(Symbol(),OP_SELL,NR(Lots),Bid,3,Bid+SL*pt, Bid-TP*pt,Nama_EA,Magic,0,Red);}
    }
   if( trad(3)< Max_level +Magic ){
   if(trad(1)<0 && s==1) {OrderSend(Symbol(),OP_BUY,xlot(),Ask,3,Ask-SL*pt, Ask+TP*pt,Nama_EA,trad(3)+1,0,Blue);  }
   if(trad(1)<0 && s==2) {OrderSend(Symbol(),OP_SELL,xlot(),Bid,3,Bid+SL*pt, Bid-TP*pt,Nama_EA,trad(3)+1,0,Red);   }
   }
}


   return(0);
  }
//+------------------------------------------------------------------+

int Jam_trade()
{
   bool trade = false;
   if(Mulai_Jam > Akhir_Jam){
     if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true;
   } else
     if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;

   return (trade);
}

double jumlahorder( int a,int tipe)
{
double total=0;
for(int i=0; i<OrdersTotal(); i++)
  {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderComment() != Nama_EA || OrderType()!=tipe) continue;
     if(a==1) total++;
     if(a==2) total+=OrderProfit();
     if(a==3) total=OrderOpenTime();
  }

return(total);
}
double NR(double thelot)
{
    double maxlots = MarketInfo(Symbol(), MODE_MAXLOT),
    minilot = MarketInfo(Symbol(), MODE_MINLOT),
    lstep = MarketInfo(Symbol(), MODE_LOTSTEP);
    double lots = lstep * NormalizeDouble(thelot / lstep, 0);
    lots = MathMax(MathMin(maxlots, lots), minilot);
    return (lots);
}


void closeall(int m)
{
 for (int i = OrdersTotal() - 1; i >= 0; i--) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol() || OrderComment() != Nama_EA ||  OrderType()!=m) continue;
  if (OrderType() > 1) OrderDelete(OrderTicket());
   else {
    if (OrderType() == 0) OrderClose(OrderTicket(), OrderLots(), Bid, 3, CLR_NONE);
    else               OrderClose(OrderTicket(), OrderLots(), Ask, 3, CLR_NONE);
  }
 }
}
double money()
{
 double dp = 0;
 int i;
 for (i = 0; i < OrdersTotal(); i++) {
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if (OrderSymbol() != Symbol()  || OrderComment() != Nama_EA) continue;
  dp += OrderProfit();
 }
 return(dp);
}

double trad(int m)
{
  double pr,op;
  for (int i = 0; i < OrdersHistoryTotal(); i++) {
   if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
   if (OrderSymbol() != Symbol()/* || OrderComment() != Nama_EA*/) continue;
   if(m==1)pr=OrderProfit();
   if(m==2)pr=OrderType();
   if(m==3)pr=OrderMagicNumber();
   datetime c=OrderCloseTime();
   datetime o=OrderOpenTime();
   if (iBarShift(Symbol(),PERIOD_D1,o)==0) {
   if (iBarShift(Symbol(),PERIOD_D1,c)==0){
   if(m==4)pr++;
   if(m==5)pr=OrderClosePrice();

   }
   }
   }
return(pr);
}
double xlot()
{
 double ylot,dlot;
  for (int i = 0; i < OrdersHistoryTotal(); i++) {
   if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
   if (OrderSymbol() != Symbol()/* || OrderComment() != Nama_EA */) continue;
     dlot=OrderLots();
     }
    ylot=NR(dlot*DiMarti);
return(ylot);
}
void label()
{
   ObjectCreate("j",OBJ_LABEL,0,0,0);
   ObjectSet("j",OBJPROP_CORNER,4);
   ObjectSet("j",OBJPROP_XDISTANCE,10);
   ObjectSet("j",OBJPROP_YDISTANCE,10);
   ObjectSetText("j","Jum+SpiderBoo from : JumForex.blogspot.com ",21,"Mistral",Aqua);
 Comment("\n ",
   "\n ",
   "\n ------------------------------------------------",
   "\n :: Spread                 : ", MarketInfo(Symbol(), MODE_SPREAD),
   "\n :: Leverage               : 1 : ", AccountLeverage(),
   "\n :: Jam Server             :", Hour(), ":", Minute(),
   "\n ------------------------------------------------",
   "\n :: Equity sekarang        : ", AccountEquity(),"  $",
   "\n :: Target_Equety          : ", Target_Equety ,"  $",
   "\n ------------------------------------------------",
   "\n :: Posisi floting         :",money(),"  $",
   "\n :: Level                  :",trad(3)-Magic,
   "\n ------------------------------------------------",
   "\n :: >>By: Jum69<<",
   "\n ------------------------------------------------");
//+------------------------------------------------------------------+
}

=========

Hasil BTnya



Okey semuanya........................Salam profit
*copas dari http://jumforex.blogspot.com

Tidak ada komentar:

Posting Komentar