Sunday, 12 May 2019

Share JumStoch v2.6

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

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.
Contoh Kasus fungsi berikut ini:

 fungsinya:


Cara menghilangkan dengan memperhatikan bagian OrderSelect

Contoh lain pada bagian perintah order



Perbaikannya dengan menambahkan nilai integer (contoh int res), pada coding dibawah ini

Kasus lain sebenarnya seperti OrderClose dan OrderDelet sama bisa ditambah kan  integer !
dll.....


Semoga bermanfaat

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;



 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;



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)

Kita sambung deh part sebelumnya http://jumforex.blogspot.com/2013/07/belajar-membuat-ea-sederhana-37-terapan.html

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)

Kita lanjutin deh setelah di part 36    , Kita sudah sedikit membahas tentang indikator IFX_Keltner_Channel.
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)

http://jumforex.blogspot.com/2013/07/belajar-membuat-ea-sederhana-36-terapan.html

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



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:

  1. Mantaps Kang...

    maju terus lah trader Indonesia khusus nya dibawah bendera JumForex
    Balas
  2. 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
  3. @Kang Arifin salam kenal kembali dari saya,
    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,
    Balas

Belajar Membuat EA Sederhana 34 (Proteksi EA 2)

http://jumforex.blogspot.com/2013/05/belajar-membuat-ea-sederhana-34.html 

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





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);
           }

         }
}