Forex Community Place

Dapatkan hingga
$50000
karena mengundang teman
untuk memperoleh Bonus StartUp
dari InstaForex
Tidak perlu investasi!
Dapatkan bonus
55%
ke akun anda!
Page 3 of 22
FirstFirst 1 2 3 4 5 13 ... LastLast
Results 21 to 30 of 214

Thread: Studi Kasus: Membuat EA Sederhana.

  1. #21
    Pecandu
    ----
     
    DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    406
    Accumulated bonus
    81 USD (What is this?)
    Thanks
    37
    Thanked 925 Times in 144 Posts
    Quote Originally Posted by toni17     
    absen pertama saya hadir duduk paling depan,...
    biar nanti kolom ini bisa jadi indeks,...
    Siap bro. Terima kasih untuk dukungannya.
    Sampai disini kita tanya jawab dulu, sebelum nanti threadnya kita lanjut ke kasus-kasus EA lainnya.


    Quote Originally Posted by neverbobomalem     
    mantep juragan...
    pembelajaran yg sangat bermutu...
    mohon kepada master-master coder lainnya untuk berpartisipasi di trid ini...
    rambut ane udah mulai rontok.. ga kuat lagi mikir yg berat-berat...
    lanjut gan...
    Terima kasih juga juragan. Iya nih, menghimbau kepada master-master EA yang lain untuk turun gunung mengajar kita-kita yang newbie.
    Demi Indonesia raya, supaya kita menyabet juara di Championship EA dan bisa sejahtera finansial bersama-sama...




    Quote Originally Posted by scalpingmv     
    Sebelumnya, mohon juga di jelaskan, bahasa program apa aja yang bisa dipakai.
    Mengingat sedikit trader yang tau bahasa program.
    Thks Gan
    Bahasa yang digunakan adalah bahasa MQL4 yang mirip dengan bahasa program C atau C++.


    Quote Originally Posted by speed     
    Siap menyimak gan..
    Semoga bisa menambah ilmu nih....
    Pingin punya ea scalper sendiri yng bagus nih.... yng bisa menggantikan peran si "Thuyul"....

    Terima kasih juga juragan.
    Semoga nanti Tuyul-nya bisa cepet diupgrade menjadi Pocong ver 1.0 atau Kuntilanak ver 1.0

    Salam profit


    Quote Originally Posted by Givonly     
    Bahasa programnya MQL (MetaQuotes Language), masih satu family sama bahasa C++.
    Jadi yang udah menguasai C++ bakal lebih mudah belajar MQL.
    Bahasa MQL dikembangkan oleh tim developer yang sama dengan si pembuat program Metatrader, yaitu Metaquotes Inc.
    Karena itu, perkembangan bahasa MQL juga selaras dengan perkembangan seri Metatrader.

    Belajar bahasa MQL4 silahkan klik di sini!
    Download ebook MQL4 silahkan klik di situ!

    Versi terbaru dari MQL adalah MQL5, seiring dengan perkembangan Metatrader5 (MT5).
    Referensi MQL5 link-nya ada di sini!
    Nah kalo ebook MQL5 klik di sini (English)!

    Harap membantu...
    Terima kasih bantuannya bro. Temani kita disini ya, supaya sama-sama belajar dan mengejar ketertinggalan EA programer Russia dan Malaysia.
    Indonesia juara !!



    Quote Originally Posted by Fx1st     
    Yihaa...
    saya bener2 berterimakasih atas tanggapan positifnya bro,
    semoga harapan kita semua untuk bisa bikin EA sendiri semua bisa terwujud berkata adanya dukungan & bimbingan melalui trit ini.


    Sementara saya menyimak dulu dari awal..
    sambil mencatat hal2 yg perlu ditanyakan
    kalau sudah sampai titik akhir... baru deh ada tanya jawab
    Saya juga berterimakasih atas dorongannya master Fx1st. Semoga kita semua bisa sukses sama-sama ya...
    Jabat erat.


    Quote Originally Posted by pantang_merah     
    Wah kebagian tempat duduk di tengah nie master.. tapi gk apa2 master cukup jelas kok dilihat dari sini.. silahkan di lanjutkan master pelajarannya.... (Trid yang sangat berguna nie) Salam sukses master
    Halo master pantang_merah.

    Saya berterima kasih atas ijinnya, karena sistemnya saya aduk-aduk disini biar jadi ramuan EA. Hehehe....

    Mari kita ngopi bareng-bareng master.
    Last edited by DwiM; 10-10-2010 at 14:37.

  2. The Following 3 Users Say Thank You to DwiM For This Useful Post:

    azzura (02-06-2012), hilmanmasulili88 (11-25-2018), nyobiefx (08-07-2011)

  3. <a href="https://www.showfxworld.com/id">Forex Portal MT5</a>
  4. #22
    Pecandu
    ----
     
    DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    406
    Accumulated bonus
    81 USD (What is this?)
    Thanks
    37
    Thanked 925 Times in 144 Posts

    Membuat Fungsi Trailing Stop

    Sambil menanti pertanyaan-pertanyaan yang akan masuk, kita coba lanjut sebentar dengan membuat fungsi Trailing Stop. Ini sekalian menjawab pertanyaan bro toni17 di thread sebelah, dan bagaimana menambahkan pilihan TRUE atau FALSE untuk mengaktifkan dan mematikan Trailing Stop di EA buatan kita.

    Kita tambahkan dulu deklarasi bool Trailing=true di atas coding.

    Code:
    extern   int      TakeProfit     = 30;
    extern   int      StopLoss       = 30;
    extern   int      Slippage       = 3;
    extern   double   Lots           = 1.0;
    extern   int      TrailingStop   = 5;
    extern   bool     Trailing       = true;
    
    extern   int      SMA1Periode    = 4;
    extern   int      SMA2Periode    = 8;
    Perlu diperhatikan, deklarasi variabel yang menggunakan extern , nantinya bisa diubah oleh user EA kita ketika EA ini di attach ke chart. Gambarnya seperti ini :

    Spoiler Spoiler:




    Kode Trailing saya jembreng langsung di bawah ini. Silakan saya beri waktu untuk merenungkan jalan pemikiran dari coding ini. Kalau ada yang bingung, kita bahas saja di tanya jawab nanti.

    Code:
       /* >>> Fungsi Trailing Stop <<< */
    
       if(Trailing==true)
       {
    
       for(iTrade=0;iTrade<OrdersTotal();iTrade++)
       {
          OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);
          if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
          {
          
             if(TrailingStop>0)  
             {                 
                   if(Bid-OrderOpenPrice()>Point*TrailingStop)
                     {
                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                         return(0);
                        }
                     }
             }
    
          
          }
          else
          {
       
             if(TrailingStop>0)  
             {                 
                   if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                     {
                      if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                         return(0);
                        }
                     }
             }
       
          }
       
       }
    
       }
    Hasil akhirnya ketika di backtester, akan kita lihat Trailing Stop ini akan menggeser SL ketika nilai profit semakin naik.

    Spoiler Spoiler:




    Code Complete dari EA 2sma yang sudah ditambahkan Fungsi TrailingStop adalah di bawah ini. Silakan teman-teman mengcompile code ini di Meta Editornya dan silakan test di strategy tester masing-masing.

    Tanya jawab dibuka lagi nih..

    Code:
    //+------------------------------------------------------------------+
    //|                                                      EA 2sma.mq4 |
    //|                                             Dwi M ea@dwim.web.id |
    //|                                            http://ea.dwim.web.id |
    //+------------------------------------------------------------------+
    #property copyright "Dwi M ea@dwim.web.id"
    #property link      "http://ea.dwim.web.id"
    
    
    extern   int      TakeProfit     = 30;
    extern   int      StopLoss       = 30;
    extern   int      Slippage       = 3;
    extern   double   Lots           = 1.0;
    extern   int      TrailingStop   = 5;
    extern   bool     Trailing       = true;
    
    extern   int      SMA1Periode    = 4;
    extern   int      SMA2Periode    = 8;
    
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
    
       double  dSMA1, dSMA2, dSMA1before, dSMA2before;
       int     iTrade=0;
       
       dSMA1=iMA(NULL,0,SMA1Periode,0,MODE_EMA,PRICE_CLOSE,0);
       dSMA2=iMA(NULL,0,SMA2Periode,0,MODE_EMA,PRICE_CLOSE,0);
    
       dSMA1before=iMA(NULL,0,SMA1Periode,0,MODE_EMA,PRICE_CLOSE,1);
       dSMA2before=iMA(NULL,0,SMA2Periode,0,MODE_EMA,PRICE_CLOSE,1);
    
       Comment("EA 2SMA \n"+
               "System  : pantang_merah \n"+
               "Coding  : DwiM ea@dwim.web.id \n"+
               "http://ea.dwim.web.id");   
          
       if (OrdersTotal()<1)
       {
          if (AccountFreeMargin()<1000*Lots)
          { Comment("EA tidak bekerja, dana kurang :", AccountFreeMargin()); return(0);}
       
          if ((dSMA1>dSMA2) && (dSMA1before<dSMA2before))   
          {  
             OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);        
          }   
    
          if ((dSMA1<dSMA2) && (dSMA1before>dSMA2before))
          {
             OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0);
          }
       
       }
    
       /* >>> Fungsi Trailing Stop <<< */
    
       if(Trailing==true)
       {
    
       for(iTrade=0;iTrade<OrdersTotal();iTrade++)
       {
          OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);
          if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
          {
          
             if(TrailingStop>0)  
             {                 
                   if(Bid-OrderOpenPrice()>Point*TrailingStop)
                     {
                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                         return(0);
                        }
                     }
             }
    
          
          }
          else
          {
       
             if(TrailingStop>0)  
             {                 
                   if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                     {
                      if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                         return(0);
                        }
                     }
             }
       
          }
       
       }
    
       }   
     
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    Last edited by DwiM; 11-27-2010 at 20:24.

  5. The Following 5 Users Say Thank You to DwiM For This Useful Post:

    azzura (02-06-2012), hilmanmasulili88 (11-25-2018), Jim Fx (12-01-2015), nov4nforex (08-05-2013), ombhoy (01-12-2014)

  6. #23
    Pecandu
    ----
     
    DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM is a splendid one to behold DwiM's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    406
    Accumulated bonus
    81 USD (What is this?)
    Thanks
    37
    Thanked 925 Times in 144 Posts

    Close Order dan Konfirmasi RSI.

    Studi Kasus tentang pembuatan EA sederhana akan saya akhiri dengan posting ini. Selanjutnya thread tetap dibuka untuk pembahasan tanya jawab. Belajar EA tidak pernah berakhir, tapi diharapkan dengan dasar yang secuprit tadi bisa membuka sedikit minat untuk mengoprek EA.

    Di awal kita belajar melakukan OP dengan sinyal dari MA yang saling berpotongan. Bagaimana jika TP belum tersentuh namun MA kembali berpotongan dari arah berlawanan ? Seharusnya pada kondisi ini kita melakukan Close Order.

    Functionnya adalah sbb : bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)

    Kita hanya perlu membalik logika perpotongan MA tadi, dengan coding di bawah ini untuk menutup Order.

    Menutup Order BUY

    Code:
             
             if((dSMA1<dSMA2) && (dSMA1before>dSMA2before))
             {
                OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Violet);
             }
    Menutup Order SELL

    Code:
           if((dSMA1>dSMA2) && (dSMA1before<dSMA2before))
             {
                OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Violet);
             }
    Kita nanti akan bersama-sama melihat keseluruhan programmnya di bawah. Namun sebelum itu kita membahas sejenak mengenai indikator tambahan yaitu RSI.

    Saya sedikit keluar jalur dari sistem trading master pantang_merah, dimana dalam sistem aslinya hanya memakai 2 MA yang berpotongan. Namun pada thread ini saya menambahkan konfirmasi dengan indikator RSI dengan maksud memberikan gambaran pembuatan EA yang sering memakai lebih dari 1 jenis indikator.

    Di luar sana, ada pendapat bahwa RSI dengan setelan standar pada TF Daily adalah petunjuk paling handal mengenai arah trend besar pada hari itu. Pendapat ini masih bisa diperdebatkan, namun disini kami hanya ingin menunjukkan bagaimana aplikasi coding RSI pada Expert Advisor.

    Function RSI berwujud seperti ini : double iRSI( string symbol, int timeframe, int period, int applied_price, int shift)

    Contoh coding yang kita pakai pada EA kita adalah sbb :

    Code:
    RSI = iRSI(NULL, PERIOD_D1, 14, PRICE_CLOSE, 0);
    Tampak RSI-nya memakai period D1.

    Keseluruhan program EA Sederhana kita yang sudah ditambahkan konfirmasi RSI dan Close Order ketika MA berpotongan kembali adalah sbb, harap teman-teman mengcompile sendiri di Meta Editornya dan melakukan testing di Strategy Tester.

    Code:
    //+------------------------------------------------------------------+
    //|                                                      EA 2sma.mq4 |
    //|                                             Dwi M ea@dwim.web.id |
    //|                                            http://ea.dwim.web.id |
    //+------------------------------------------------------------------+
    #property copyright "Dwi M ea@dwim.web.id"
    #property link      "http://ea.dwim.web.id"
    
    
    extern   int      TakeProfit     = 30;
    extern   int      StopLoss       = 30;
    extern   int      Slippage       = 3;
    extern   double   Lots           = 1.0;
    extern   int      TrailingStop   = 5;
    extern   bool     Trailing       = true;
    
    extern   int      SMA1Periode    = 4;
    extern   int      SMA2Periode    = 8;
    
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
    
       double  dSMA1, dSMA2, dSMA1before, dSMA2before, RSI;
       int     iTrade=0;
       
       dSMA1=iMA(NULL,0,SMA1Periode,0,MODE_EMA,PRICE_CLOSE,0);
       dSMA2=iMA(NULL,0,SMA2Periode,0,MODE_EMA,PRICE_CLOSE,0);
    
       dSMA1before=iMA(NULL,0,SMA1Periode,0,MODE_EMA,PRICE_CLOSE,1);
       dSMA2before=iMA(NULL,0,SMA2Periode,0,MODE_EMA,PRICE_CLOSE,1);
    
       RSI = iRSI(NULL, PERIOD_D1, 14, PRICE_CLOSE, 0);
    
       Comment("EA 2SMA \n"+
               "System  : pantang_merah \n"+
               "Coding  : DwiM ea@dwim.web.id \n"+
               "http://ea.dwim.web.id");   
          
       if (OrdersTotal()<1)
       {
          if (AccountFreeMargin()<1000*Lots)
          { Comment("EA tidak bekerja, dana kurang :", AccountFreeMargin()); return(0);}
       
          if ((dSMA1>dSMA2) && (dSMA1before<dSMA2before) && RSI>50)   
          {  
             OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);        
          }   
    
          if ((dSMA1<dSMA2) && (dSMA1before>dSMA2before) && RSI<50)
          {
             OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0);
          }
       
       }
    
       /* >>> Fungsi Trailing Stop <<< */
    
       if(Trailing==true)
       {
    
       for(iTrade=0;iTrade<OrdersTotal();iTrade++)
       {
          OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);
          if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
          {
    
             if((dSMA1<dSMA2) && (dSMA1before>dSMA2before))
             {
                OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Violet);
             }
          
             if(TrailingStop>0)  
             {                 
                   if(Bid-OrderOpenPrice()>Point*TrailingStop)
                     {
                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                         return(0);
                        }
                     }
             }
    
          
          }
          else
          {
    
           if((dSMA1>dSMA2) && (dSMA1before<dSMA2before))
             {
                OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Violet);
             }
         
             if(TrailingStop>0)  
             {                 
                   if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                     {
                      if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                         return(0);
                        }
                     }
             }
       
          }
       
       }
    
       }   
     
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    NB : Mohon jika hasil testingnya menunjukkan anjlok, belum tentu konsep tradingnya salah. Coba kita bahas kembali dengan pembuat sistem. Atau setelan SL, TP dan Trailing harus diubah supaya pas dengan karakter pairnya.

    Salam Profit
    Spoiler Spoiler:


    Last edited by DwiM; 11-27-2010 at 20:25.

  7. The Following 4 Users Say Thank You to DwiM For This Useful Post:

    azzura (02-06-2012), hilmanmasulili88 (11-25-2018), Jim Fx (12-01-2015), papalui (03-27-2012)

  8. #24
    Penggemar
    ----
     
    speed is on a distinguished road speed's Avatar
    Join Date
    Sep 2010
    Posts
    186
    Accumulated bonus
    37 USD (What is this?)
    Thanks
    0
    Thanked 27 Times in 23 Posts
    Mohon ditambahkan gan :
    1. Ea biar bisa jln untk semua broker baik broker 4 digit maupun 5 digit. Kalau tak perhatikan ea ini baru bisa jln untk broker 4 digit
    2. OP nya dikasih magic number dunk.... biar nanti untuk penanganan OP selanjutnya bisa lebih flexibel. Biar ea bisa dicampur dng ea2 / OP manual tanpa adanya saling ganggu...

    Thanks

  9. The Following User Says Thank You to speed For This Useful Post:


  10. #25
    Orang Lama
    Jahat
     
    bayusasongko will become famous soon enough bayusasongko's Avatar
    Join Date
    Sep 2010
    Location
    Lampung
    Posts
    731
    Accumulated bonus
    325 USD (What is this?)
    Thanks
    13
    Thanked 157 Times in 34 Posts
    sippp gan. izin nyimak nih......kebetulan ane dah ada modal pemrograman bahasa DC......semoga cepet bisa membuat sendiri EA........
    Sahabat, jangan menunggu kaya baru bersedekah, tapi bersedekahlah maka anda akan kaya.

    Jangan menunggu sukses baru bersyukur tapi bersyukurlah maka anda sukses.

    Jangan menunggu bahagia baru tersenyum, tapi tersenyumlah maka anda akan berbahagia

  11. The Following User Says Thank You to bayusasongko For This Useful Post:


  12. #26
    Anggota
    ----
     
    Zefanya is on a distinguished road Zefanya's Avatar
    Join Date
    Sep 2010
    Posts
    105
    Accumulated bonus
    24 USD (What is this?)
    Thanks
    4
    Thanked 9 Times in 8 Posts
    waah senangnya ada trit baru cara membuat EA sederhana..

    makasih ya TS.. cara penyampaiannya terstruktur rapih dan mudah di mengerti. Ternyata ngga serumit yg aku bayangkan selama ini..

    Silakan dilanjut materinya.. ^^

  13. The Following User Says Thank You to Zefanya For This Useful Post:


  14. #27
    Anggota
    Malu-malu
     
    dpkforex is on a distinguished road dpkforex's Avatar
    Join Date
    Aug 2010
    Location
    depok
    Posts
    158
    Accumulated bonus
    46 USD (What is this?)
    Thanks
    7
    Thanked 21 Times in 18 Posts
    Quote Originally Posted by speed     
    Mohon ditambahkan gan :
    1. Ea biar bisa jln untk semua broker baik broker 4 digit maupun 5 digit. Kalau tak perhatikan ea ini baru bisa jln untk broker 4 digit
    2. OP nya dikasih magic number dunk.... biar nanti untuk penanganan OP selanjutnya bisa lebih flexibel. Biar ea bisa dicampur dng ea2 / OP manual tanpa adanya saling ganggu...

    Thanks
    Pertama... SALUT buat dirimu Boss... weleh2.. mantab dah... udah jadi Guru EA nih...

    sedikit bantuan jawab nih pertanyaan diatas.

    untuk menambah Buat broker 5 digit dan magic.
    tambahkan di input:

    extern int MagicNumber = 123;
    extern double xDigit = 1; //kalo 4 digit isi 1; untuk 5 digits isi 10.

    nah disetiap perkalian POINT, tambahkan Point*xDigit.
    cara ini lebih mudah, karena untuk mayor 5 digits, sedangkan spt JPY jadinya 4 digits, shg gak perlu logic lagi.

    contoh order spt dibawah

    PHP Code:
    if ((dSMA1>dSMA2) && (dSMA1before<dSMA2before) && RSI>50)   
          {  
             
    OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point*xDigit,Ask+TakeProfit*Point*xDigit"EAKU"MagicNumber0,Blue);   
          } 
    ok siplah ..dilanjut boss...

  15. The Following 3 Users Say Thank You to dpkforex For This Useful Post:

    batu-muliadotcom (07-07-2012), ghprod (12-21-2010), hilmanmasulili88 (11-25-2018)

  16. #28
    Pecandu
    Terinspirasi
     
    IronMan will become famous soon enough IronMan's Avatar
    Join Date
    May 2010
    Posts
    598
    Accumulated bonus
    167 USD (What is this?)
    Thanks
    3
    Thanked 125 Times in 47 Posts
    widih.... akhirnya ada yang buka thread mantap kaya gini
    ikut nyimak gan... kalau boleh tau kalau yg pakai dll gimana itu ya gan...

  17. The Following User Says Thank You to IronMan For This Useful Post:


  18. #29
    Penggemar
    ----
     
    toni17 is on a distinguished road toni17's Avatar
    Join Date
    Aug 2010
    Location
    Medan
    Posts
    297
    Accumulated bonus
    77 USD (What is this?)
    Thanks
    12
    Thanked 30 Times in 26 Posts
    Quote Originally Posted by DwiM     
    Sambil menanti pertanyaan-pertanyaan yang akan masuk, kita coba lanjut sebentar dengan membuat fungsi Trailing Stop. Ini sekalian menjawab pertanyaan bro toni17 di thread sebelah, dan bagaimana menambahkan pilihan TRUE atau FALSE untuk mengaktifkan dan mematikan Trailing Stop di EA buatan kita.

    Kita tambahkan dulu deklarasi bool Trailing=true di atas coding.

    Code:
    extern   int      TakeProfit     = 30;
    extern   int      StopLoss       = 30;
    extern   int      Slippage       = 3;
    extern   double   Lots           = 1.0;
    extern   int      TrailingStop   = 5;
    extern   bool     Trailing       = true;
    
    extern   int      SMA1Periode    = 4;
    extern   int      SMA2Periode    = 8;
    Perlu diperhatikan, deklarasi variabel yang menggunakan extern , nantinya bisa diubah oleh user EA kita ketika EA ini di attach ke chart. Gambarnya seperti ini :



    Kode Trailing saya jembreng langsung di bawah ini. Silakan saya beri waktu untuk merenungkan jalan pemikiran dari coding ini. Kalau ada yang bingung, kita bahas saja di tanya jawab nanti.

    Code:
       /* >>> Fungsi Trailing Stop <<< */
    
       if(Trailing==true)
       {
    
       for(iTrade=0;iTrade<OrdersTotal();iTrade++)
       {
          OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);
          if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
          {
          
             if(TrailingStop>0)  
             {                 
                   if(Bid-OrderOpenPrice()>Point*TrailingStop)
                     {
                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                         return(0);
                        }
                     }
             }
    
          
          }
          else
          {
       
             if(TrailingStop>0)  
             {                 
                   if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                     {
                      if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                         return(0);
                        }
                     }
             }
       
          }
       
       }
    
       }
    Hasil akhirnya ketika di backtester, akan kita lihat Trailing Stop ini akan menggeser SL ketika nilai profit semakin naik.



    Code Complete dari EA 2sma yang sudah ditambahkan Fungsi TrailingStop adalah di bawah ini. Silakan teman-teman mengcompile code ini di Meta Editornya dan silakan test di strategy tester masing-masing.

    Tanya jawab dibuka lagi nih..

    Code:
    //+------------------------------------------------------------------+
    //|                                                  EA 2sma.mq4 |
    //|                                      Dwi Malistyo ea@dwim.web.id |
    //|                                            http://ea.dwim.web.id |
    //+------------------------------------------------------------------+
    #property copyright "Dwi Malistyo ea@dwim.web.id"
    #property link      "http://ea.dwim.web.id"
    
    
    extern   int      TakeProfit     = 30;
    extern   int      StopLoss       = 30;
    extern   int      Slippage       = 3;
    extern   double   Lots           = 1.0;
    extern   int      TrailingStop   = 5;
    extern   bool     Trailing       = true;
    
    extern   int      SMA1Periode    = 4;
    extern   int      SMA2Periode    = 8;
    
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
    
       double  dSMA1, dSMA2, dSMA1before, dSMA2before;
       int     iTrade=0;
       
       dSMA1=iMA(NULL,0,SMA1Periode,0,MODE_EMA,PRICE_CLOSE,0);
       dSMA2=iMA(NULL,0,SMA2Periode,0,MODE_EMA,PRICE_CLOSE,0);
    
       dSMA1before=iMA(NULL,0,SMA1Periode,0,MODE_EMA,PRICE_CLOSE,1);
       dSMA2before=iMA(NULL,0,SMA2Periode,0,MODE_EMA,PRICE_CLOSE,1);
    
       Comment("EA 2SMA \n"+
               "System  : pantang_merah \n"+
               "Coding  : DwiM ea@dwim.web.id \n"+
               "http://ea.dwim.web.id");   
          
       if (OrdersTotal()<1)
       {
          if (AccountFreeMargin()<1000*Lots)
          { Comment("EA tidak bekerja, dana kurang :", AccountFreeMargin()); return(0);}
       
          if ((dSMA1>dSMA2) && (dSMA1before<dSMA2before))   
          {  
             OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);        
          }   
    
          if ((dSMA1<dSMA2) && (dSMA1before>dSMA2before))
          {
             OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0);
          }
       
       }
    
       /* >>> Fungsi Trailing Stop <<< */
    
       if(Trailing==true)
       {
    
       for(iTrade=0;iTrade<OrdersTotal();iTrade++)
       {
          OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);
          if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
          {
          
             if(TrailingStop>0)  
             {                 
                   if(Bid-OrderOpenPrice()>Point*TrailingStop)
                     {
                      if(OrderStopLoss()<Bid-Point*TrailingStop)
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                         return(0);
                        }
                     }
             }
    
          
          }
          else
          {
       
             if(TrailingStop>0)  
             {                 
                   if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                     {
                      if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                        {
                         OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                         return(0);
                        }
                     }
             }
       
          }
       
       }
    
       }   
     
    //----
       return(0);
      }
    //+------------------------------------------------------------------+

    wah terima kasih master sudah mau menjawab pertanyaan saya,.
    sekali lagi terima kasih,..

    oh iya master gimana pertanyaan tentang fungsi itu??
    gimana apa bila fungsi MA di jadikan sebuah variabel? apa bisa??

  19. The Following User Says Thank You to toni17 For This Useful Post:


  20. lamborghini
  21. #30
    Penggemar
    ----
     
    toni17 is on a distinguished road toni17's Avatar
    Join Date
    Aug 2010
    Location
    Medan
    Posts
    297
    Accumulated bonus
    77 USD (What is this?)
    Thanks
    12
    Thanked 30 Times in 26 Posts
    Quote Originally Posted by IronMan     
    widih.... akhirnya ada yang buka thread mantap kaya gini
    ikut nyimak gan... kalau boleh tau kalau yg pakai dll gimana itu ya gan...
    iya gan nih treadnya sangat bagus kali untuk kita nubie dalam membuat EA,..
    oh iya gan kalo soal dll mungkin itu udh tingkat advance kali ya,..
    kalo bisa nanyanya seputar yang baru di bahas aja dulu gan,. biar nih tread berkembang,..
    ntar kalo ditanya langsung ke sana master disini pasti jelasinnya langsung kesana ntar yang pada belum tau malah makin ga nguden,. jdi malas buka nih tread,. mending kita tanyanya seputar yang udh di bahas master DwiM,. biar makin menarik nih tread,..
    maaf ya gan saya bukan mau menggurui,. tapi biar makin bagus nih tread kita,...

  22. The Following User Says Thank You to toni17 For This Useful Post:


Page 3 of 22
FirstFirst 1 2 3 4 5 13 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts