Rabu, 30 April 2014

Belajar Membuat EA Sederhana 31 (Multi Pair)

Untuk melengkapi wawasan kita tentang membuat EA, disini saya akan coba share tentang Membuat EA multi pair (Ea untuk 6 pair). Hal ini untuk memenuhi permintaan beberapa teman melalui email.

Ea ini hanya sebagai dasar2 saja dan untuk pengembangan lebih lanjut silahkan untuk berkreasi
Dasar2 Ea dilengkapi dengan fungsi yang mudah untuk di comot  ,al :
  1. fungsi order untuk multi pair
  2. close semua order multi pair
  3. menghitung total order perpair
  4. Kebetulan signal diambil dari close candel dan open candel
Mungkin bagi temen2 yang berminat silahkan mengamati code berikut dan mudah2an pas untuk belajar

//koreksi 10/04/2013

//+------------------------------------------------------------------+
//|                                                Jum+MultiPair.mq4 |
//|                                                gifaesa@yahoo.com |
//|                                     http://JumForex.blogspot.com |
//+------------------------------------------------------------------+
#property copyright "JumForex.blogspot.com"
#property link      "Gifaesa@yahoo.com"

extern string  EA="multipair";
extern bool    Close_Panic=false;
extern double  Lots=0.1;
extern int     Tp=5;
extern int     Sl=15;
extern string  Pr1="GBPUSD";
extern string  Pr2="EURUSD";
extern string  Pr3="AUDUSD";
extern string  Pr4="USDJPY";
extern string  Pr5="USDCHF";
extern string  Pr6="EURJPY";
string  Nama_EA = "Jum+MultiPair :";
int     Magic = 69;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init(){ return(0); }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit(){ return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 u();
if(Close_Panic){c(Pr1,0);c(Pr1,1); c(Pr2,0);c(Pr2,1);c(Pr3,0);c(Pr3,1);c(Pr4,0);c(Pr4,1);c(Pr5,0);c(Pr5,1);c(Pr6,0);c(Pr6,1);  }

if(!Close_Panic){
if(jum(Pr1,0)==0 && O(Pr1,1)<C(Pr1,1))or(Pr1,0,Lots);
if(jum(Pr2,0)==0 && O(Pr2,1)<C(Pr2,1))or(Pr2,0,Lots);
if(jum(Pr3,0)==0 && O(Pr3,1)<C(Pr3,1))or(Pr3,0,Lots);
if(jum(Pr4,0)==0 && O(Pr4,1)<C(Pr4,1))or(Pr4,0,Lots);
if(jum(Pr5,0)==0 && O(Pr5,1)<C(Pr5,1))or(Pr5,0,Lots);
if(jum(Pr6,0)==0 && O(Pr6,1)<C(Pr6,1))or(Pr6,0,Lots);

if(jum(Pr1,1)==0 && O(Pr1,1)>C(Pr1,1))or(Pr1,1,Lots);
if(jum(Pr2,1)==0 && O(Pr1,2)>C(Pr2,1))or(Pr2,1,Lots);
if(jum(Pr3,1)==0 && O(Pr1,3)>C(Pr3,1))or(Pr3,1,Lots);
if(jum(Pr4,1)==0 && O(Pr1,4)>C(Pr4,1))or(Pr4,1,Lots);
if(jum(Pr5,1)==0 && O(Pr1,5)>C(Pr5,1))or(Pr5,1,Lots);
if(jum(Pr6,1)==0 && O(Pr1,6)>C(Pr6,1))or(Pr6,1,Lots);
}

//----
   return(0);
  }
//+------------------------------------------------------------------+
void or(string sy, int op,double lt)
   { double mod,mr,sl,tp;string st;
   if( op==0){ mod=MODE_ASK;st=" Buy ";}
   if( op==1){ mod=MODE_BID;st=" Sell ";}
    mr=MarketInfo(sy,mod);
   if( op==0){ sl=mr-Sl*pt(sy); tp=mr+Tp*pt(sy);}
   if( op==1){ sl=mr+Sl*pt(sy); tp=mr-Tp*pt(sy);}
   OrderSend(sy,op,lt,mr,3,sl, tp,Nama_EA+st+sy,Magic,0,Blue);
   }

int jum(string sy, int tipe)
    { int t=0;
    for(int i=0; i<OrdersTotal(); i++)
      {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!= sy || OrderMagicNumber()!=Magic || OrderType()!=tipe) continue;
      t++;
      } return(t);
    }

double pt(string sy)
{
  double t;
  double p = MarketInfo(sy, MODE_TICKSIZE);
  if (Digits == 3 || Digits == 5) t=10*p; else t=p;
  return(t);
  }

 void c(string sy,int m)
   {
    double mod;
    if( m==1) mod=MODE_ASK;
    if( m==0) mod=MODE_BID;
    double mr= MarketInfo(sy,mod);
    for (int i = OrdersTotal() - 1; i >= 0; i--) {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != sy || OrderMagicNumber()!=Magic ) continue;
      if (OrderType() == m) OrderClose(OrderTicket(), OrderLots(), mr, 3, CLR_NONE);
      if (OrderType() == m && m>1) OrderDelete(OrderTicket());
      }
   }
double C(string sy,int s){return(iClose(sy,PERIOD_H4,s));}
double O(string sy,int s){return(iOpen(sy,PERIOD_H4,s));}

void u()
   {
   Comment("\n ",
   "\n ",
   "\n ------------------------------------------------",
   "\n :: =>+Jum+MultiPair<=",
   "\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 ------------------------------------------------");
  }


==========
 semoga bermanfaat untuk semua 
Salam Sukses trader Indonesia
*copas dari http://jumforex.blogspot.com

Tidak ada komentar:

Posting Komentar