Closed Thread
Page 4 of 22
FirstFirst ... 2 3 4 5 6 14 ... LastLast
Results 31 to 40 of 214

Thread: Studi Kasus: Membuat EA Sederhana.

  1. #31
    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's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    451
    Accumulated bonus
    70.35 USD (What is this?)
    Caught Buffets
    1 (What is this?)
    Thanks
    37
    Thanked 774 Times in 140 Posts
    Quote Originally Posted by speed View Post
    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
    Hallo bro Speed.

    Ide-nya diterima. Soal coding untuk broker 4 Digit dan 5 Digit saya lihat sudah dibantu codingnya oleh Master dpkforex. Tapi nanti akan masukkan ke coding yang tadi deh, biar tambah complete.
    OrderSend-nya pakai Magic Number ? Hehehe iya deh. Tidak sulit khan menambahkan fungsi ini. Terima kasih masukkannya.


    Quote Originally Posted by bayusasongko View Post
    sippp gan. izin nyimak nih......kebetulan ane dah ada modal pemrograman bahasa DC......semoga cepet bisa membuat sendiri EA........
    Hallo bro bayusasongko.

    Siap gan. Ijin diberikan hehehe.

    Nah, jika sudah ada background programming pasti lebih cepat adaptasi di bahasa MQL ini. Nanti menyumbang coding disini ya ? Ditunggu share-nya. Terima kasih.


    Quote Originally Posted by Zefanya View Post
    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.. ^^
    Halo Zefanya, nama yang bagus.

    Membuat EA tidak rumit kan ? Karena itu saya senang mengoprek EA. Ikutan di thread ini ya, meramaikan belajar EA supaya banyak EA-EA coder yang lahir dari forum ini.

    Terima kasih, JBU.


    Quote Originally Posted by dpkforex View Post
    Pertama... SALUT buat dirimu Boss... weleh2.. mantab dah... udah jadi Guru EA nih...

    sedikit bantuan jawab nih pertanyaan diatas.
    Weleh master guru dpkforex. Terima kasih atas dukungan dan supportnya.

    Teman-teman, master EA dpkforex ini adalah guru saya. Tahun 2007 di saat saya belum tahu apa-apa soal forex, beliau ini chatting saya untuk mendownload software dari situs aneh bernama LiteForex.org. Saya disuruh memasukkan istilah aneh ke software, yaitu sebuah password yang namanya password investor. Dengan heran saya mengamati chart yang kata master dpkforex dijalankan secara otomatis oleh sebuah program bernama Expert Advisor buatan beliau. Saat itu saya belum berminat dengan forex, tapi berbulan-bulan kemudian saya mulai mendapat minat dan belajar Marketiva dari dasar. Beliau inilah yang memperkenalkan saya dengan dunia Forex dan menumbuhkan minat saya dengan EA.

    Boss dpkforex, terima kasih atas bantuannya di forum. Saya belum pantas disebut guru EA. Saya cuma newbie yang senang tulis-menulis. Jadi ilmu secuprit ini saya share supaya bisa menarik minat teman-teman untuk jadi EA Coder. Siapa tahu kita bisa bikin club penggemar EA Programming, hahaha . Bisa ngopi bareng di mall menikmati hidup, sementara EA-nya yang kerja siang malam cari duit . Master dpkforex lah yang guru saya, saya masih mau belajar dari dirimu.

    Jabat erat.


    Quote Originally Posted by IronMan View Post
    widih.... akhirnya ada yang buka thread mantap kaya gini
    ikut nyimak gan... kalau boleh tau kalau yg pakai dll gimana itu ya gan...
    Hallo bro IronMan, terima kasih untuk commentnya. Silakan nyimak, bantu-bantu meramaikan ya.
    DLL saya juga baru belajar sih, jujur aja. Pakai Microsoft C++. Tapi menurut saya di thread dasar EA belum perlu dibahas deh. Fokusnya teman-teman bisa membuat EA dasar lebih dulu. Salam hangat.


    Quote Originally Posted by toni17 View Post
    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??

    Hallo bro Toni. Terima kasih juga. Bro Toni lah yang mendorong saya membuat thread ini. Hehehe.

    Mengenai fungsi dijadikan satu variabel -- ya tidak bisa. Tapi pasti maksudnya adalah supaya fungsi itu bisa dipanggil dengan cara praktis ? Nanti akan saya contohkan memecah fungsi-fungsi supaya bisa dipanggil. Salam hangat.
    Last edited by DwiM; 10-11-2010 at 08:38 AM.

  2. <a href="http://www.mt5.com/id/">Forex Portal MT5</a>
  3. The Following User Says Thank You to DwiM For This Useful Post:

    azzura (02-06-2012)

  4. #32
    Penggemar
    ----
     
    toni17 is on a distinguished road toni17's Avatar
    Join Date
    Aug 2010
    Location
    Medan
    Posts
    329
    Accumulated bonus
    62.30 USD (What is this?)
    Thanks
    12
    Thanked 20 Times in 19 Posts
    Quote Originally Posted by DwiM View Post
    Hallo bro Speed.

    Ide-nya diterima. Soal coding untuk broker 4 Digit dan 5 Digit saya lihat sudah dibantu codingnya oleh Master dpkforex. Tapi nanti akan masukkan ke coding yang tadi deh, biar tambah complete.
    OrderSend-nya pakai Magic Number ? Hehehe iya deh. Tidak sulit khan menambahkan fungsi ini. Terima kasih masukkannya.




    Hallo bro bayusasongko.

    Siap gan. Ijin diberikan hehehe.

    Nah, jika sudah ada background programming pasti lebih cepat adaptasi di bahasa MQL ini. Nanti menyumbang coding disini ya ? Ditunggu share-nya. Terima kasih.




    Halo Zefanya, nama yang bagus.

    Membuat EA tidak rumit kan ? Karena itu saya senang mengoprek EA. Ikutan di thread ini ya, meramaikan belajar EA supaya banyak EA-EA coder yang lahir dari forum ini.

    Terima kasih, JBU.




    Weleh master guru dpkforex. Terima kasih atas dukungan dan supportnya.

    Teman-teman, master EA dpkforex ini adalah guru saya. Tahun 2007 di saat saya belum tahu apa-apa soal forex, beliau ini chatting saya untuk mendownload software dari situs aneh bernama LiteForex.org. Saya disuruh memasukkan istilah aneh ke software, yaitu sebuah password yang namanya password investor. Dengan heran saya mengamati chart yang kata master dpkforex dijalankan secara otomatis oleh sebuah program bernama Expert Advisor buatan beliau. Saat itu saya belum berminat dengan forex, tapi berbulan-bulan kemudian saya mulai mendapat minat dan belajar Marketiva dari dasar. Beliau inilah yang memperkenalkan saya dengan dunia Forex dan menumbuhkan minat saya dengan EA.

    Boss dpkforex, terima kasih atas bantuannya di forum. Saya belum pantas disebut guru EA. Saya cuma newbie yang senang tulis-menulis. Jadi ilmu secuprit ini saya share supaya bisa menarik minat teman-teman untuk jadi EA Coder. Siapa tahu kita bisa bikin club penggemar EA Programming, hahaha . Bisa ngopi bareng di mall menikmati hidup, sementara EA-nya yang kerja siang malam cari duit . Master dpkforex lah yang guru saya, saya masih mau belajar dari dirimu.

    Jabat erat.




    Hallo bro IronMan, terima kasih untuk commentnya. Silakan nyimak, bantu-bantu meramaikan ya.
    DLL saya juga baru belajar sih, jujur aja. Pakai Microsoft C++. Tapi menurut saya di thread dasar EA belum perlu dibahas deh. Fokusnya teman-teman bisa membuat EA dasar lebih dulu. Salam hangat.





    Hallo bro Toni. Terima kasih juga. Bro Toni lah yang mendorong saya membuat thread ini. Hehehe.

    Mengenai fungsi dijadikan satu variabel -- ya tidak bisa. Tapi pasti maksudnya adalah supaya fungsi itu bisa dipanggil dengan cara praktis ? Nanti akan saya contohkan memecah fungsi-fungsi supaya bisa dipanggil. Salam hangat.
    wah saya jadi seneng nih,..
    iya saya juga seneng kali master, karna master langsung cepat tanggap terhadap saran saya,.. terima kasih banyak ya master,..
    semoga amal baiknya di limpahkan ke profit tradingan master dari atas ya Maha kuasa,..
    semoga dengan adanya ini trader2 yang ada disini dapat terbantu untuk membuat EA2 baru dengan sistem trading masing2,..

    iya master benar sekali maksud saya seperti itu biar fungsi itu bisa di panggil secara praktis,..
    atau dengan cara membuat fungsi-fungsi tersebut dalam satu file2 yang berbeda misal ma.mq4, macd.mq4
    nah file tersebut kita panggil fungsinya pada ea dengan menambahkan code
    Code:
    #include ma.mq4
    jadi ibaratnya menjalankan mq4 pada file EA, ato bisa di bilang komunikasi antar MQ4 gitu master,..
    jadi kita bisa lebih mudah lagi membuat banyak logika2 ea dengan menggunakan fungsi yang sudah ada,..
    Itu sih cuma imajinasi saya aja master,. gimana menurut master,..
    kalo ada yang lebih praktis lagi itu sangat membantu,..

    oh iya ini saya masih aga binggung logikanya master,. kalo bisa tolong dijabarkan,.
    terus itu kan ada variabel baru tu itrade, nah itu variabelnya di buat looping lagi supaya kenapa master,..
    sory banyak nanya,. takut salah nanti kalo di tengah jalan,.
    ingat kata pepatah malu bertanya sesat dijalan,.. hehehehe.,..
    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);
                        }
                     }
             }
       
          }
       
       }
    
       }

  5. #33
    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's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    451
    Accumulated bonus
    70.35 USD (What is this?)
    Caught Buffets
    1 (What is this?)
    Thanks
    37
    Thanked 774 Times in 140 Posts

    Yuk Latihan membuat EA

    Teman-teman trader yang giat belajar EA.

    Yuk, kita berlatih dulu. Sebelum nanti kita lanjutkan dengan materi yang lain, sebaiknya kita evaluasi hasil yang sudah kita jabarkan kemarin dengan berlatih kasus. Kan judul thread ini memang studi kasus. Jadi kita perdalam coding EA kita dengan latihan kasus.

    Di sub forum Strategi Transaksi IndoMT5 ini kita dapatkan banyak strategi yang bisa kita jadikan sarana latihan. Saya ingin ada 2 atau 3 teman-teman yang mau menunjukkan hasil coding buatannya sendiri, supaya kita bisa rembug rame-rame dimana salahnya dan benarnya . Jangan takut atau malu, justru thread ini mau membantu teman-teman yang ingin belajar EA sampai bisa.

    Ini salah satu kasus yang menarik dan cukup simpel, siapa yang mau mengerjakan ?

    http://indo.mt5.com/showthread.php?271-Triple-ma

    Spoiler Spoiler:


    Lalu ada lagi kasus menantang di Strategi Transaksi

    http://indo.mt5.com/showthread.php?2...D-Berdasar-RSI

    Spoiler Spoiler:


    Siapa yang bisa membuatkan coding dari sistem trading ini ? Nanti rame-rame kita hadiahi cendol deh.

    Kalau peminat thread ini rame, kita akan lanjutkan dengan thread Studi Kasus Varian EA Scalper dan Studi Kasus Varian EA Martiangle. Tapi kalau peminat EA tidak terlalu banyak, mungkin kita cukupkan di thread ini saja

    BTW, sebelum membuat EA dari konsep trading di atas sebaiknya kita minta ijin TS di thread masing-masing agar diijinkan sistemnya dioprek jadi EA di sini.

    Sekian dan Salam hangat
    Last edited by DwiM; 11-27-2010 at 05:25 PM.

  6. The Following User Says Thank You to DwiM For This Useful Post:

    azzura (02-06-2012)

  7. #34
    Penggemar
    ----
     
    Fx1st is on a distinguished road Fx1st's Avatar
    Join Date
    Sep 2010
    Location
    Smg
    Posts
    397
    Accumulated bonus
    71.95 USD (What is this?)
    Thanks
    27
    Thanked 53 Times in 39 Posts
    Quote Originally Posted by DwiM View Post
    Teman-teman trader yang giat belajar EA.

    Yuk, kita berlatih dulu. Sebelum nanti kita lanjutkan dengan materi yang lain, sebaiknya kita evaluasi hasil yang sudah kita jabarkan kemarin dengan berlatih kasus. Kan judul thread ini memang studi kasus. Jadi kita perdalam coding EA kita dengan latihan kasus.

    Di sub forum Strategi Transaksi IndoMT5 ini kita dapatkan banyak strategi yang bisa kita jadikan sarana latihan. Saya ingin ada 2 atau 3 teman-teman yang mau menunjukkan hasil coding buatannya sendiri, supaya kita bisa rembug rame-rame dimana salahnya dan benarnya . Jangan takut atau malu, justru thread ini mau membantu teman-teman yang ingin belajar EA sampai bisa.

    ----

    Kalau peminat thread ini rame, kita akan lanjutkan dengan thread Studi Kasus Varian EA Scalper dan Studi Kasus Varian EA Martiangle. Tapi kalau peminat EA tidak terlalu banyak, mungkin kita cukupkan di thread ini saja

    BTW, sebelum membuat EA dari konsep trading di atas sebaiknya kita minta ijin TS di thread masing-masing agar diijinkan sistemnya dioprek jadi EA di sini.

    Sekian dan Salam hangat
    jangan berenti di sini Bro..
    ini lagi memahami dulu rulesnya sama utak atik...
    maklum ... otaknya rada rada deket di dengkul
    jadi rada lelet mikirnya
    Rule number #1.Don't lose your money ,
    Rule number #2.Don't ever-ever forget rule number #1.

  8. #35
    Penggemar
    ----
     
    speed is on a distinguished road speed's Avatar
    Join Date
    Sep 2010
    Posts
    213
    Accumulated bonus
    33.60 USD (What is this?)
    Thanks
    0
    Thanked 23 Times in 19 Posts
    Wah jangan berhenti lah bro....kan baru mulai....
    Ditunggu pelajaran buat ea scalpernya...
    Usul : buat ea scalper berdasarkan price action
    panduan / ebook nya di sini

    Thanks

  9. #36
    Orang Lama
    Genit
     
    amtwoxtwo is a glorious beacon of light amtwoxtwo is a glorious beacon of light amtwoxtwo is a glorious beacon of light amtwoxtwo is a glorious beacon of light amtwoxtwo is a glorious beacon of light amtwoxtwo's Avatar
    Join Date
    Sep 2010
    Location
    Sekitaran Bumi
    Posts
    958
    Accumulated bonus
    73.30 USD (What is this?)
    Thanks
    90
    Thanked 508 Times in 253 Posts
    Quote Originally Posted by dpkforex View Post
    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...
    Bisa jg dg setting auto point..
    PHP Code:
    double point
    trus masukkan di init() atau start() jg boleh
    PHP Code:
    if(Digits==|| Digits==5point=10*Point;
        else                       
    point=Point
    Selesai sudahh memeriksa digit broker

    logic di order jd gini
    PHP Code:
    if ((dSMA1>dSMA2) && (dSMA1before<dSMA2before) && RSI>50)   
          {  
             
    OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*point,Ask+TakeProfit*point"EAKU"MagicNumber0,Blue);   
          } 
    Ingat.. semua variabel Point udh bsa dganti skrg mnjadi point.. agar otomatis mendeteksi broker 4 ato 5 digit..
    Yahuuu

  10. #37
    Penggemar
    ----
     
    toni17 is on a distinguished road toni17's Avatar
    Join Date
    Aug 2010
    Location
    Medan
    Posts
    329
    Accumulated bonus
    62.30 USD (What is this?)
    Thanks
    12
    Thanked 20 Times in 19 Posts
    wah pertanyaan ku belum di jawab tu master yang diatas tu,... tolong donk master biar nanti ga ketinggalan diriku,..

  11. #38
    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's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    451
    Accumulated bonus
    70.35 USD (What is this?)
    Caught Buffets
    1 (What is this?)
    Thanks
    37
    Thanked 774 Times in 140 Posts

    Membuat Fungsi.

    Teman-teman trader.

    Sedikit melanjutkan pembahasan dasar kita. Pada coding sebelumnya ada kesalahan logika yang sebetulnya cukup menganggu, tapi nanti saya kita perbaiki agar tidak membingungkan alur pembelajaran teman-teman yang pemula.

    Kesalahan logika itu adalah penempatan if(Trailing==true). Sebetulnya fungsi ini hanya untuk menyetel agar fungsi trailing bisa dihidupkan atau dimatikan. Tapi kesalahan saya adalah menempatkan fungsi OrderClose di dalam bracket if(Trailing==true) ini. Akibatnya jika user mematikan fungsi Trailing, maka program EA tidak akan menutup OP jika MA berpotongan pada arah berlawanan.

    Kita akan perbaiki hal ini.

    Tapi, YA AMPUN kalau kita menambahkan coding di dalam program ini, maka baris coding akan bertambah banyak dan bertambah ruwet. Semakin sulit jika nanti kita harus memperbaiki kode EA ini. Disarankan, untuk EA yang semakin banyak code-nya, kita memecah fungsi-fungsinya agar semakin gampang dilacak dan diperiksa masalahnya.

    Saya akan memecah fungsi Trailing untuk buy menjadi BuyTrailing() dan SellTrailing(), saya copy paste coding itu menjadi fungsi baru seperti ini :

    Code:
    void BuyTrailing()
    {
    
        if(Bid-OrderOpenPrice()>Point*TrailingStop)
        {
            if(OrderStopLoss()<Bid-Point*TrailingStop)
            {
                 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                 return(0);
            }
        }
    
    
    }
    Dan fungsi trailing untuk sell menjadi SellTrailing() seperti di bawah ini :

    Code:
    void SellTrailing()
    {
         if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
         {
             if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
             {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                  return(0);
             }
         }
    
    }
    Lalu saya pecah fungsi OrderSend() untuk Buy dan Sell menjadi seperti di bawah :

    Code:
    void Buy()
    {
        OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);        
    
    }
    
    void Sell()
    {
        OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0);
    }
    Akibatnya kita akan mendapatkan code complete dari program EA adalah seperti ini. Perhatikan cara memanggil fungsi (Call).

    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)   
          {  
             Buy();
          }   
    
          if ((dSMA1<dSMA2) && (dSMA1before>dSMA2before) && RSI<50)
          {
             Sell();
          }
       
       }
    
       /* >>> Fungsi Trailing Stop <<< */
    
       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 (Trailing==true)
             {
                if(TrailingStop>0)  
                {                 
                   BuyTrailing();
                }
             }
    
          
          }
          else
          {
    
           if((dSMA1>dSMA2) && (dSMA1before<dSMA2before))
             {
                OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Violet);
             }
         
             if (Trailing==true)
             {
                if(TrailingStop>0)  
                {                 
                   SellTrailing();
                }
             }
       
          }
       
    
       }   
     
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    
    void Buy()
    {
        OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);        
    
    }
    
    void Sell()
    {
        OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0);
    }
    
    void BuyTrailing()
    {
    
        if(Bid-OrderOpenPrice()>Point*TrailingStop)
        {
            if(OrderStopLoss()<Bid-Point*TrailingStop)
            {
                 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                 return(0);
            }
        }
    
    
    }
    
    void SellTrailing()
    {
         if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
         {
             if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
             {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                  return(0);
             }
         }
    
    }
    Saya coba menjalankan lagi di Strategy Tester, hasilnya berjalan baik :

    Spoiler Spoiler:
    Last edited by DwiM; 11-27-2010 at 07:27 PM.

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

    azzura (02-06-2012), rolandi (10-21-2010)

  13. #39
    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's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    451
    Accumulated bonus
    70.35 USD (What is this?)
    Caught Buffets
    1 (What is this?)
    Thanks
    37
    Thanked 774 Times in 140 Posts

    Broker 5 Digits

    Sekarang kita menambahkan satu fitur sederhana yang sudah dijawab oleh master dpkforex dan master amtwoxtwo mengenai broker 5 Digit. Kita hanya mengulas lagi dan memasukkan ke dalam code kita.

    Agar EA kita bisa running di chart milik broker yang memiliki 5 Digits, kita harus memiliki variabel yang sudah disediakan oleh Metatrader, yaitu Digits.

    Kalau Digits ini bernilai 3 atau 5 : ini adalah chart milik broker 5 Digit.
    Kalau Digits ini bernilai 2 atau 4 : ini adalah chart milik broker 4 Digit.

    Saya akan menambahkan fitur Digits ini ke dalam fungsi Buy() milik kita :

    Code:
    void Buy()
    {
       if (Digits==3 || Digits==5) // Perintah untuk broker 5 Digits
       {
          OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point*10,Ask+TakeProfit*Point*10,0);
       }
       else // Perintah untuk broker 4 Digits
       {
          OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);
       }        
    
    }
    Dengan code sederhana ini, begitu EA kita drag ke chart, EA akan langsung menyesuaikan programnya menjadi program 5 Digit atau 4 Digit.

    Di bawah ini saya kutipkan keseluruhan kode yang memakai fitur 5 Digit. Harap diketahui, program ini sengaja saya panjangkan demi untuk edukasi. Supaya mudah dipahami alurnya buat programmer pemula. Dalam kenyataan sih kode fitur 5 Digit bisa kita singkat dengan mudah. Semoga berguna.

    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)   
          {  
             Buy();
          }   
    
          if ((dSMA1<dSMA2) && (dSMA1before>dSMA2before) && RSI<50)
          {
             Sell();
          }
       
       }
    
       /* >>> Fungsi Trailing Stop <<< */
    
       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 (Trailing==true)
             {
                if(TrailingStop>0)  
                {                 
                   BuyTrailing();
                }
             }
    
          
          }
          else
          {
    
           if((dSMA1>dSMA2) && (dSMA1before<dSMA2before))
             {
                OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Violet);
             }
         
             if (Trailing==true)
             {
                if(TrailingStop>0)  
                {                 
                   SellTrailing();
                }
             }
       
          }
       
    
       }   
     
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    
    void Buy()
    {
       if (Digits==3 || Digits==5) // Perintah untuk broker 5 Digits
       {
          OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point*10,Ask+TakeProfit*Point*10,0);
       }
       else // Perintah untuk broker 4 Digits
       {
          OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0);
       }        
    
    }
    
    void Sell()
    {
       if (Digits==3 || Digits==5)
       {
          OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point*10,Bid-TakeProfit*Point*10,0);
       }
       else
       {
          OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0);
       } 
      
    }
    
    void BuyTrailing()
    {
       if (Digits==3 || Digits==5)
       {
          if(Bid-OrderOpenPrice()>Point*10*TrailingStop)
          {
             if(OrderStopLoss()<Bid-Point*10*TrailingStop)
             {
                 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*10*TrailingStop,OrderTakeProfit(),0,Green);
                 return(0);
             }
          }
       }
       else
       {
          if(Bid-OrderOpenPrice()>Point*TrailingStop)
          {
             if(OrderStopLoss()<Bid-Point*TrailingStop)
             {
                 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                 return(0);
             }
          }
       
       
       }
    
    }
    
    void SellTrailing()
    {
    
       if (Digits==3 || Digits==5)
       {
       
         if((OrderOpenPrice()-Ask)>(Point*10*TrailingStop))
         {
             if((OrderStopLoss()>(Ask+Point*10*TrailingStop)) || (OrderStopLoss()==0))
             {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*10*TrailingStop,OrderTakeProfit(),0,Red);
                  return(0);
             }
         }
         
       }
       else
       {
        if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
         {
             if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
             {
                  OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                  return(0);
             }
         }
        
       
       }
    
    }
    Last edited by DwiM; 11-27-2010 at 07:27 PM.

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

    arifwp80 (05-20-2013), azzura (02-06-2012), fxforgood (03-29-2014)

  15. #40
    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's Avatar
    Join Date
    Sep 2010
    Location
    Jakarta
    Posts
    451
    Accumulated bonus
    70.35 USD (What is this?)
    Caught Buffets
    1 (What is this?)
    Thanks
    37
    Thanked 774 Times in 140 Posts
    Quote Originally Posted by toni17 View Post
    iya master benar sekali maksud saya seperti itu biar fungsi itu bisa di panggil secara praktis,..
    atau dengan cara membuat fungsi-fungsi tersebut dalam satu file2 yang berbeda misal ma.mq4, macd.mq4
    nah file tersebut kita panggil fungsinya pada ea dengan menambahkan code
    Code:
    #include ma.mq4
    jadi ibaratnya menjalankan mq4 pada file EA, ato bisa di bilang komunikasi antar MQ4 gitu master,..
    Mungkin yang dimaksud adalah fungsi-fungsi dikumpulkan dalam Libraries ya ?. Ya bisa saja, kalau kita punya function yang akan sering dipanggil berulang-ulang maka diletakkan saja di file Library.

    OK deh, balik ke Laptop

    Ayo teman-teman. Mana nih yang mau mencoba Coding pada Kasus-kasus yang saya usulkan di atas ?. Atau barangkali ada yang masih belum jelas mengenai pembahasan di atas. Kalau tidak ada yang bertanya, maka kita bingung lho : ini bener-bener sudah mengerti atau malahan tidak ada yang mengerti sama sekali hehehe.

    Saya tunggu deh, siapa yang berani mengajukan Coding-nya atas kasus di atas. Atau ada yang mau tanya-tanya dulu ? Silakan

  16. The Following User Says Thank You to DwiM For This Useful Post:

    azzura (02-06-2012)

Closed Thread

Posting Permissions

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