1. Welcome back! Thank you for being a part of this Traders Community. Let's discuss and share :)
    Selamat datang kembali! Trimakasih telah menjadi bagian dari Komunitas Trader ini. Mari berdiskusi dan berbagi :)
    Dismiss Notice

Tutorial Belajar coding / membuat enumerasi

Discussion in 'Belajar MQL dari Nol' started by susanto, 25 Apr 2015.

  1. susanto

    susanto Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    code yang masih jarang di terapkan,, tapi sangat berguna salah satunya adalah enumerasi

    apa enumerasi itu??:hmm::hmm::hmm:

    ini yang disebut enumerasi,.,.,:hore::hore:

    [​IMG]


    lalu bagaimana membuat nya:confused:

    ini dia code nya..:dancing banana::dancing banana:


    Code:
    #property copyright "Copyright 2015, MetaQuotes Software Corp."
    #property link "https://www.mql4.com"
    
    enum TF { D1 , H4,H1,M30,M15,M5,M1 } ;
    
    extern TF time_frame = D1 ;
    penggunaan nya bisa seperti ini...:training:
    Code:
    void OnTick()
      {
    //---
        if( time_frame == 0 )
          {
            Comment(" pilih d1 ya? ") ;
          }
      if( time_frame == 1 )
          {
            Comment(" pilih h4 ya? ") ;
          }
      if( time_frame == 2 )
          {
            Comment(" pilih h1 ya? ") ;
          }
      if( time_frame == 3 )
          {
            Comment(" pilih m30 ya? ") ;
          }
      if( time_frame == 4 )
          {
            Comment(" pilih m15 ya? ") ;
          }
    
    
      }
    semoga membantu bagi yang sedang belajar membuat EA...:trio penguin:
     

    Attached Files:

    Last edited by a moderator: 04 May 2015
  2. mahoo bar

    mahoo bar Member Credit Hunter

    Equity
    Credit
    Ref Point
    Mencoba memahami fungsi enum
    Code:
    enum TF { D1 , H4,H1,M30,M15,M5,M1 } ;
    
    extern TF time_frame	=	D1 ;
    ini apa artinya kl bagian extern time_frame dipilih D1 maka nilainya akan 0, kl H4 nilainya akan 1....dst,

    dan kl seperti code di bawah ini
    Code:
    enum PeriodData 
      {
       CurrentTF = 0,
       M1=1,      
       M5=5,      
       M15=15,
       M30=30,      
       H1=60,      
       H4=240,    
       D1=1440,    
       W1=10080,    
       MN=43200,
      };
    
    extern PeriodData Box_TimeFrame =H1;
    
    dan yg ini kalo extern Box_TimeFramenya dipilih H1 maka nilainya akan 60 sesuai dengan nilai dibelakang "=" pada enum,

    dan bagaimana dengan tipe datanya apa selalu int ato bisa dengan tipe data yg lain karena ane perhatikan dibelakang extern menggunakan nama dari enum baru diikuti nama variabel
    Code:
    extern TF time_frame	=	D1 ;
    , sedangkan biasanya extern selalu diikuti dengan tipe data baru nama variabel...
    Code:
    extern int time_frame = PERIOD_D1;
    mohon koreksinya gan
     
  3. susanto

    susanto Active Member Credit Hunter

    Equity
    Credit
    Ref Point


    tidak gan..
    fungsi enum ,, seperti kita membuat pilihan,, layak nya true false..

    enum PeriodData
    {
    CurrentTF = 0,
    M1=1,
    M5=5,
    M15=15,
    M30=30,
    H1=60,
    H4=240,
    D1=1440,
    W1=10080,
    MN=43200,
    };

    gag bisa pakai "=" di dalam enum

    enum PeriodData
    {
    CurrentTF ,
    M1,
    M5,
    M15,
    M30,
    H1,
    H4,
    D1,
    W1,
    MN
    };

    kalau seperti ini bisa..
    jadi nanti fungsi " PeriodData " adalah seperti BOOL.. tetapi, kalau fungsi bool hanya terbatas pada true dan false,, tapi kalau "period data" yang tadi di buat, bisa di pilih sesuai yang kita inputkan..
     
  4. mahoo bar

    mahoo bar Member Credit Hunter

    Equity
    Credit
    Ref Point
    apakah enum ini bisa dipakai juga untuk menghasilkan nilai string ya gan, sekalian gan mau nanya
    SymbolInfoString
    ane gagal paham baca mql4 book
     
  5. Donny Nurcahyo

    Donny Nurcahyo New Member

    Equity
    Credit
    Ref Point
    Koreksi gan..
    Code:
    enum TF {D1,H4,H1,M30,M15,M5,M1};
    Ketika dipilih, maka hasilnya adalah index dari list enum tersebut, contoh pilihan D1 akan menhasilkan 0, H4 menjadi 1, dan seterusnya.
    Dan untuk mendapatkan nilai timeframe dari pilihan tersebut, kita perlu menambahkan code lagi. Entah menggunakan if-then-else, switch, atau data array
    Menurut saya, yang lebih efektif adalah dengan menambahkan default value pada tiap enum_list tersebut. caranya
    Code:
    enum TF {D1=1440, H4=240, H1=60, M30=30, M15=15, M5=5, M1=1 };
    extern TF time_frame	=	D1 ;
    Print("variabel time_frame :"+ time_frame); // 1440
    [​IMG]
     
    Last edited: 17 May 2015
  6. ngasqus

    ngasqus Active Member Pioneer

    Equity
    Credit
    Ref Point
    Wah bahasan tingkat dewa :worried:
    Mencoba paham dan harus alias wajib
     
  7. mahoo bar

    mahoo bar Member Credit Hunter

    Equity
    Credit
    Ref Point
    biar tambah rame, kl sepi belajarnya jadi kurang semangat
     
  8. Yogi Trader

    Yogi Trader New Member

    Equity
    Credit
    Ref Point
    garuk garuk. Kepala nih gan, alias masih awan codingan mql :)
     
  9. mahoo bar

    mahoo bar Member Credit Hunter

    Equity
    Credit
    Ref Point
    Kl ada minat belajar kan ada yg gratis tis tis...
     
  10. zega-fx

    zega-fx Member Credit Hunter

    Equity
    Credit
    Ref Point
    mau tanya, rumus mengambil data harga dari data history trading terakhir untuk coding? misalnya kita membuka posisi dengan SL dan TP, setelah harga kena SL maka untuk mengambil data harga tsbt untuk membuat entry harga sebelumnya +100 atau - 100point, bagaimana ya?

    klo ini bahasan tingkat curut... hahaha.. masih newbie ni gan..
    :D
     
    slamat pagi gan, saya mau bertanya bagaimana mendapatkan kuadrat math pow untuk menggandakan lot, seperti ini..
    NormalizeDouble(StartLots * MathPow(LotsExponent,????)); saya tidak mengerti dengan yang ada pada tanda "????" itu, mohon pencerahan... bagaimana mengambil data tersebut ke dalam variable. tolong di bantu ya, trmkasih..
     
  11. ngasqus

    ngasqus Active Member Pioneer

    Equity
    Credit
    Ref Point
    Wah dah kelas berat nich manggil@SoeHoe dan HendroFX untuk memberikan pencerahan
     
  12. susanto

    susanto Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    ??? jumlah order yang mau di kalikan,.,
    contoh seperti ini,.
    PHP:
    NormalizeDouble(StartLots MathPow(LotsExponentTotalOrderSell  ));
     
  13. zega-fx

    zega-fx Member Credit Hunter

    Equity
    Credit
    Ref Point
    iya mas, maksud saya mengambil totalordernya untuk memanggil data urutan ordernya bagaimana ya..? " doubel TotalOrderSell = ??????;
     
    wah... mas ini berlebihan.. ini mah pertanyaan curut untuk seorng proggramer, ini saya bru belajar... saya mau mengalikan Lot seperti sistem martingale. cuma saya mau POW nya menghitung semua jumlah order baik itu OP_BUY atau OP_SELL. tolong di bantu rumusnya dong...
     
    atau begini, bagaimana menghitung jumlah total order (buy dan sell) dari history? tolong di bantu dong gan.... :sweating:
     
  14. HendroFX

    HendroFX Moderator Moderator

    Equity
    Credit
    Ref Point
    untuk menghitung total order dari Histori, maka harus menggukanan OrderSelect dengan Mode HISTORY, pilih dulu dengan menggunakan order select, lalu filter pemilihannya dengan hanya memilih order buy atau sell saja, dan juga dengan memilih order dengan Magic number. Saya yakin kalau mas pernah belajar Operator FOR, maka bisa menjalankan fungsi ini. Setelah terpilih gunakan hitung++, lalau kembalikan dengan retrun(hitung).
     
  15. zega-fx

    zega-fx Member Credit Hunter

    Equity
    Credit
    Ref Point
    terimakasih mas, akan saya coba... :ok::smoke:
     
  16. SANLANA

    SANLANA Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    masternya datang..langsung clear...mantaapppp
     
  17. Trancexe

    Trancexe Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    berarti klo saya bikin gini

    Code:
    enum pilih
    { pilih1, pilih2
    }
    
    input pilih pilihanku = pilih1;
    
    
    if (pilihanku=1)
    {
    siganal=1
    }
    sudah benar ya?
     
  18. HendroFX

    HendroFX Moderator Moderator

    Equity
    Credit
    Ref Point
    Secara garis besar sudah benar, Saya koreksi sedikit cara penulisannya:
    Code:
    enum pilih
    { pilih1, pilih2
    };
    
    input pilih pilihanku = pilih1;
    
    
    if (pilihanku==1)
    {
    siganal=1;
    }
    Walau sedikit tetapi wajib dikoreksi agar tidak terjadi error :)
     
  19. Trancexe

    Trancexe Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    == itu klo ga salah artinya.. periksa xx..
    jadi di fungsi if akan mengecek value yang kita masukkan sudah sesuai belum. benar kan pak?

    makasih pak koreksinya :D
     

Share This Page