web statistics


Mengambil nilai indikator tanpa index buffer

Discussion in 'Tutorial MQL4' started by chandrawg, Mar 15, 2011.

  1. chandrawg

    chandrawg
    Expand Collapse
    Moderator

    Joined:
    Aug 30, 2008
    Messages:
    577
    Likes Received:
    2
    Sebelumnya sudah di bahas bagaimana membaca nilai indikator dengan index buffer di http://www.forexindo.com/forum/tutorial-mql4/1104-bagian-9-implementasi-custom-indikator.html, tetapi tidak semua indikator memiliki index buffer. nah disini saya akan coba bahas bagaimana mengambil nilainya dengan menggunakan "objectget".

    pada contoh saat ini saya akan coba membuat ea menggunakan indicator camarilla
    setelah di attach ke chart akan tampil gambar indicatornya seperti ini

    [​IMG]

    sebelum masuk ke coding kita harus mengetahui dulu nama-nama dari object yang akan kita gunakan. dalam kasus ini yang kita butuhkan nama dari garis-garis H3 Long, L4 Short, H3 Short dan H4 Long. untuk mengetahui namanya, klik kanan di dalam chart lalu pilih "Object List" akan tampil seperti gambar berikut.
    [​IMG]
    di atas kita sudah bisa melihat nama dari object2 yang kita butuhkan, yaitu:
    L3 Long = L3 Line
    L4 Short Breakout = L4 Line
    H3 Short = H3 Line
    H4 Long Brekaout = H4 Line

    selanjutnya buka metaeditor untuk coding.
    kita akan mengambil harga dari garis-garis horisontal camarilla tersebut dengan objectget.
    formatnya
    Code:
    double ObjectGet(string name, int index);
    string name = nama objectnya
    int index = value yang akan diambil dari object tersebut. mis: waktu,harga,warna, dll.
    
    karena kita akan mengambil harganya maka untuk "index"nya kita gunakan "OBJPROP_PRICE1".

    maka kita codingkan seperti berikut
    Code:
    double beli=ObjectGet("l3 line",OBJPROP_PRICE1); // Level dimana kita akan melakukan order buy
    double sl_beli=ObjectGet("l4 line",OBJPROP_PRICE1); // Level StopLoss untuk posisi buy
    double jual=ObjectGet("h3 line",OBJPROP_PRICE1); // Level dimana kita akan melakukan order sell
    double sl_jual=ObjectGet("h4 line",OBJPROP_PRICE1); // level stoploss untuk posisi sell
    
    dari code di atas kita sudah mendapatkan harga dari masing2 garis-garis camarilla tersebut. selanjutnya kita akan coding perintah order dengan system :

    -Buy di level L3 Long, Stop Loss L4 Short Breakout
    -Sell di level H3 Short, Stop Loss H4 Long Breakout

    Code:
    if (OrdersTotal()<1) // code untuk hanya melakukan order jika tidak ada order aktif. sehingga hanya ada satu transaksi.
       {
          if (Bid+1*Point >= beli && Bid-1*Point <= beli) OrderSend(Symbol(),0,0.1,Ask,3,sl_beli,jual,0,0,0,0);
          else if (Bid+1*Point >= jual && Bid-1*Point <= jual) OrderSend(Symbol(),1,0.1,Bid,3,sl_jual,beli,0,0,0,0);
       }
    
    mungkin ada yang bertanya kenapa saya tidak gunakan
    "if (bid==beli)" atau "if (bid==jual)" yang codenya lebih pendek dan simple. tapi pada prakteknya kalau kita gunakan code itu maka seringkali saat harga bid sudah menyentuh garis, EA nya tidak melakukan order. sehingga saya gunakan code di atas yang lebih mudah mendeteksi harga yang sama.

    ok ea kita sudah selesai, code selengkapnya seperti ini

    Code:
    int start()
    {
    double beli=ObjectGet("l3 line",OBJPROP_PRICE1); // Level dimana kita akan melakukan order buy
    double sl_beli=ObjectGet("l4 line",OBJPROP_PRICE1); // Level StopLoss untuk posisi buy
    double jual=ObjectGet("h3 line",OBJPROP_PRICE1); // Level dimana kita akan melakukan order sell
    double sl_jual=ObjectGet("h4 line",OBJPROP_PRICE1); // level stoploss untuk posisi sell
    
    if (OrdersTotal()<1)
       {
          if (Bid+1*Point >= beli && Bid-1*Point <= beli) OrderSend(Symbol(),0,0.1,Ask,3,sl_beli,jual,0,0,0,0);
          else if (Bid+1*Point >= jual && Bid-1*Point <= jual) OrderSend(Symbol(),1,0.1,Bid,3,sl_jual,beli,0,0,0,0);
       }
    return(0);
    }
    
    kelemahan dari mengambil harga indikator berdasarkan objectget adalah saat kita menjalankan EA ini maka indicatornya juga harus di attach ke chart. karena EA tersebut mencari objectnya di chart tersebut.

    Detailed Statement

    iseng2 backtest dari januari bisa capai 100%. untuk lebih lanjut mengenai bagaimana cara optimize EA bisa ikut seminar di http://www.forexindo.com/forum/semi...an-optimasi-expert-advisor-robot-trading.html

    Silahkan reply thread ini jika ada yang ingin ditanyakan mengenai "objectget" :x
     
    #1 chandrawg, Mar 15, 2011
    Last edited: Mar 15, 2011
  2. rhon

    rhon
    Expand Collapse
    New Member

    Joined:
    Feb 24, 2011
    Messages:
    9
    Likes Received:
    0
    kalau Custom indicatornya ada alertnya gimana ya cara mengambilnya...
     
  3. rhon

    rhon
    Expand Collapse
    New Member

    Joined:
    Feb 24, 2011
    Messages:
    9
    Likes Received:
    0
    Mas candra, kl ternyata objectnya kira2 seperti ini gmn ya cara ngambilnya
    4 [IN10NEWS]
    06:50 | JPY
    A:-2.3% |F:-0.9% |P:4.2% |R:...

    Dari Indinya IN1OTION
    4shared.com/file/cfXayO39/_IN10TION_NewsReader_v0999h_li.html

    Moga-moga aja digubris saiya......8-|
     
    #3 rhon, Apr 11, 2011
    Last edited: Apr 11, 2011
  4. chandrawg

    chandrawg
    Expand Collapse
    Moderator

    Joined:
    Aug 30, 2008
    Messages:
    577
    Likes Received:
    2
    mau diambil alertnya ?
    lihat object listnya. jika value2 tersebut memiliki nama berarti bisa diambil.
     
  5. rhon

    rhon
    Expand Collapse
    New Member

    Joined:
    Feb 24, 2011
    Messages:
    9
    Likes Received:
    0
    Houuureee.... akhirnya.......:eek::eek:

    Mksdnya yg sy lingkarin warna kuning dari link yg dibawah ini gmn ya cara
    ngambilnya.....:-?
    Karena kalau analisa teknikal digabung dengan fundamental mantap tuh.....

    hatetepe://i55.tinypic.com/23s4sm.jpg (ilangkan huruf a dan e pd hatetepe)

    Keterangan gbr yg sy lingkarin :
    - Kalau actual < forecast => warnanya merah
    - Nah berarti kita bisa mengambil dari perubahan warnanya

    Misal begini :
    double obj;
    int start()
    obj = ObjectGet("xxxxxxx",OBJPROP_COLOR);
    IF (DoubleToStr(obj,0) == "255") // Warna merah
    maka harga turun........

    Nah begitu maksudnya....
    Mudah2an ada harapan untuk orang baru.... hikz

    Note:
    To be able to post links or images your post count must be 20 or greater.. weew...
     
    #5 rhon, Apr 11, 2011
    Last edited: Apr 11, 2011
  6. rhon

    rhon
    Expand Collapse
    New Member

    Joined:
    Feb 24, 2011
    Messages:
    9
    Likes Received:
    0
    Mau donkz....


    Nah itu dia yg sy ceritakan td di atas.... Gmn yah.....
     
  7. chandrawg

    chandrawg
    Expand Collapse
    Moderator

    Joined:
    Aug 30, 2008
    Messages:
    577
    Likes Received:
    2
    iya coba dilihat nama object listnya dari angka2 yang anda maksud. lalu ikuti petunjuk di post 1.
     
  8. aguseko60

    aguseko60
    Expand Collapse
    New Member

    Joined:
    Feb 19, 2012
    Messages:
    20
    Likes Received:
    1
    master chandra
    saya mau minta tolong nih (saya sudah coba2 sampai pusing sendiri master)
    1.apakah bisa mengambil nilai dari garis vertikal (yg ambil dari hline-nya sdh ketemu master)
    2.kalau mengambil dari warna buffer-nya apa bisa master
    untuk code-nya gimana ya?
    3.misalkan gini master :
    A.saya mau ambil titik dari persilangan dari garis horisontal(hline) dan garis vertikal(vline) yg warnanya hijau untuk menentukan OP BUY
    B.dan bila terjadi cross hline dan vline berwarna merah maka buka OP SELL
    NB: saya sudah berusaha master mencoba-coba sampai pusing sendiri
    MASALAHnya= ketika terjadi cross hline+vline memang terjadi OP BUY(hijau)/SELL(merah)
    terus OP close (karena setting profitnya sdh terpenuhi)
    tetapi ketika harga memantul lagi mengenai HLINE terjadi OP lagi walaupun tidak-
    cross lagi dengan VLINE (ini yg tdk saya harapkan).
    ingin saya terjadinya OP adalah cuma waktu tejadi cross HLINE+VLINE saja
    saya sangat mohon bantuan master CHANDRAWG supaya OP saya ini bisa sesuai Rule.

    atas bantuannya saya ucapkan banyak terima kasih

    salam
     

Share This Page