Rabu, 30 April 2014

Belajar Membuat EA Sederhana 34 (Proteksi EA 2)

Kita lanjutin deh hee
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
//+------------------------------------------------------------------+
//|                                                Jum+switch+.mq4 |
//|                                                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                      = 30;
extern int     SL                      = 20;
extern double  Lots                    = 0.01;
extern int     Max_order               = 12;
extern double  DiMarti                 = 2;
extern int     Magic                   = 69;
string  Nama_EA                 = "Jum+SwitchFractals+";


double slb,tpb,sls,tps,pt,bal;
//+------------------------------------------------------------------+
//| 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()
  {
  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); }
  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);
   }
    for(int d=0; d< Bars  ; d++){
    double up=iFractals(Symbol(),0,MODE_UPPER,d);
    if(up!=0 ) break;}
    for(int e=0; e< Bars  ; e++){
    double lo=iFractals(Symbol(),0,MODE_LOWER,e);
    if( lo!=0) break;}
    int signal;

if(Bid > up) signal=1;
if(Ask < lo)signal=2;
if(Jam_trade()==1 && DayOfWeek()>1){
if((trad(1)>0) || (trad(1)==0)){ 
  if(jumlahorder(0)==0 && jumlahorder(1)==0){
    if(signal==1) {OrderSend(Symbol(),OP_BUY,NR(Lots),Ask,3,Ask-SL*pt, Ask+TP*pt,Nama_EA,Magic,0,Blue);}
    if(signal==2) {OrderSend(Symbol(),OP_SELL,NR(Lots),Bid,3,Bid+SL*pt, Bid-TP*pt,Nama_EA,Magic,0,Red);}
    }
   }
 }
if(jumlahorder(0)==0 && jumlahorder(1)==0 && trad(3)<Max_order+Magic ){
if(trad(1)<0 && trad(2)==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 && trad(2)==0) {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();
   }
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+switchFractals 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 ------------------------------------------------");
//+------------------------------------------------------------------+
}
================
He semoga menambah wawasan deh


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

Tidak ada komentar:

Posting Komentar