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

Answered MAU TANYA SEPUTAR MASALAH SHIFT MA

Discussion in 'Belajar MQL dari Nol' started by frx junior, 08 Jun 2016.

  1. frx junior

    frx junior New Member

    Equity
    Credit
    Ref Point
    ada yang tau mengatasi masalah pada shift ma EA? saya lagi menguji strategi menggunakan indicator ma. intinya saya menggunakan 6 indicator ma dengan shift 0,1,2,3 karna sudah saya analisa ternyata strateginya sangat ampuh. saya buatkan EAnya sudah perfect codingnya, yang jadi masalah cara kerja op nya gak sesuai dengan strateginya dikarenakan indicator ma dengan shift 1,2,3 tidak bekerja bahkan tidak tampil di backtest. yang bekerja dan tampil hanya indicator dengan shift 0. ada solusinya?
     
  2. Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    Mungkin akan lebih jelas lg kalau agan sertakan kodingnya disini jadi bisa dicek kesalahannya dimana....
    Thanks
     
  3. rikyu

    rikyu Member Credit Hunter

    Equity
    Credit
    Ref Point
    shift = masa depan

    EA menggunakan logika "masa depan" tidak akan berjalan setau saya
    karena "data masa depannya" belum terjadi ... *koreksi kalo salah*
     
  4. Yasir Arafat

    Yasir Arafat Member

    Equity
    Credit
    Ref Point
    Xixiii kalau di EA itu pengunaan shift biasa untuk mengambil nilai dari candle sebelumnya gan....
    Contoh jika kita mau ambil nilai high dari 2 candle sebelumnya maka coding seperti ini.
    iHigh(Symbol(),0,2)
    Penjelasan koding
    Ihigh adalah kode bawaan mql untuk mencari nilai high
    Symbol() adalah kode pair saat ini ea diaktifkan
    0 adalah untuk timeframe saat ini ea di aktifkan
    Dan 2 adalah kode dimana ea mengambil nilai high 2 candle sebelumnya.
    Jika angka 2 ini di isi dengan nilai 0 maka nilai high yg di ambil adalah data high pada candle saat ini.
    Kira2 begitu penjelasannya...
    Semoga bisa mmbantu...
     
  5. rikyu

    rikyu Member Credit Hunter

    Equity
    Credit
    Ref Point
    kalau di MA pada chart seperti pada gambar gan ....
    pada penjelasan TS dia menggunakan nilai 1,2,3 ... makanya saya tulis demikian ... *koreksi kalo salah lagi* :)
     

    Attached Files:

    • 1.png
      1.png
      File size:
      141.2 KB
      Views:
      29
    • Like Like x 1
  6. AutoProfit

    AutoProfit Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    Shift pada MA ada 2,
    shift pada bagian tengah adalah utk menggeser MA maju/mundur,
    sedangkan shift paling ujung utk menentukan nilai MA berdasarkan index candle.
     
  7. fu84ad

    fu84ad New Member

    Equity
    Credit
    Ref Point
    Maaf mengganggu tuan2 semua..saya ada sedikit pertanyaan berkenaan indicator EMA crossover ini..sy lagi coba untuk modifikasi code nya tapi gak berjaya kerna saya tidak pandai gan..sebetulnya sy cuba bertanya dari forum yg lainnya tapi gak ada jawaban..sy suka indi ini digabung dengan NonLagMA indi..lagi bisa profit kalo udah master caranya..heheheee..


    //+------------------------------------------------------------------+

    //| EMA-Crossover_Signal.mq4 |

    //| Copyright © 2005, Jason Robinson (jnrtrading) |

    //| http://www.jnrtading.co.uk |

    //+------------------------------------------------------------------+



    /*

    +------------------------------------------------------------------+

    | Allows you to enter two ema periods and it will then show you at |

    | Which point they crossed over. It is more usful on the shorter |

    | periods that get obscured by the bars / candlesticks and when |

    | the zoom level is out. Also allows you then to remove the emas |

    | from the chart. (emas are initially set at 5 and 6) |

    +------------------------------------------------------------------+

    */

    [HASHTAG]#property[/HASHTAG] copyright "Copyright © 2005, Jason Robinson (jnrtrading)"

    [HASHTAG]#property[/HASHTAG] link "http://www.jnrtrading.co.uk"



    [HASHTAG]#property[/HASHTAG] indicator_chart_window

    [HASHTAG]#property[/HASHTAG] indicator_buffers 2

    [HASHTAG]#property[/HASHTAG] indicator_color1 Green

    [HASHTAG]#property[/HASHTAG] indicator_color2 Red



    double CrossUp[];

    double CrossDown[];

    double TestLine[];

    extern int FasterEMA = 5; Shift = 0 --------> Saya hanya mau tambah 'Shift' pada code ini, ada cara gak??

    extern int SlowerEMA = 5; Shift = 1

    //+------------------------------------------------------------------+

    //| Custom indicator initialization function |

    //+------------------------------------------------------------------+

    int init()

    {

    //---- indicators

    IndicatorBuffers(3);

    SetIndexStyle(0, DRAW_ARROW, 0, 2); //EMPTY);

    SetIndexArrow(0, 233);

    SetIndexBuffer(0, CrossUp);

    SetIndexStyle(1, DRAW_ARROW, 0, 2); //EMPTY);

    SetIndexArrow(1, 234);

    SetIndexBuffer(1, CrossDown);

    SetIndexBuffer(2, TestLine);

    //----

    return(0);

    }

    //+------------------------------------------------------------------+

    //| Custom indicator deinitialization function |

    //+------------------------------------------------------------------+

    int deinit()

    {

    //----



    //----

    return(0);

    }

    //+------------------------------------------------------------------+

    //| Custom indicator iteration function |

    //+------------------------------------------------------------------+

    int start() {

    int limit, i, counter;

    double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;

    double Range, AvgRange;

    int counted_bars=IndicatorCounted();

    //---- check for possible errors

    if(counted_bars<0) return(-1);

    //---- last counted bar will be recounted

    if(counted_bars>0) counted_bars--;



    limit=Bars-counted_bars;



    for(i = 0; i <= limit; i++) {



    counter=i;

    Range=0;

    AvgRange=0;

    for (counter=i ;counter<=i+9;counter++)

    {

    AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);

    }

    Range=AvgRange/10;



    fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);

    fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);

    fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);



    slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);

    slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);

    slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);



    if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {

    CrossUp = Low - Range*1.5;

    }

    else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {

    CrossDown = High + Range*1.5;

    }

    }

    return(0);

    }
     

    Attached Files:

  8. AutoProfit

    AutoProfit Active Member Credit Hunter

    Equity
    Credit
    Ref Point
    actually MA ini tidak susah utk di modifikasi,
    tapi saya belum paham penambahan SHIFT untuk tujuan apa, karena shift sebetulnya adalah index candle pada chart.
    Jelaskan tujuannya seperti apa, saya coba bantu.
     
  9. fu84ad

    fu84ad New Member

    Equity
    Credit
    Ref Point
    Scalping.png

    Sy gunakan EMA crossing ini untuk signal buy/sell scalping di TF M1/M5 yang di filter oleh NonLagMA dan pivot time period H1..
     
  10. fu84ad

    fu84ad New Member

    Equity
    Credit
    Ref Point
    Ok..baru sy tau gimana caranya..emang mudah bak kata gan..tp chartnya lagi ribut dgn signalnya..wakaka..trimas semua..

    fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
    fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
    fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

    slowerEMAnow = iMA(NULL, 0, SlowerEMA, 1, MODE_EMA, PRICE_CLOSE, i);
    slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 1, MODE_EMA, PRICE_CLOSE, i+1);
    slowerEMAafter = iMA(NULL, 0, SlowerEMA, 1, MODE_EMA, PRICE_CLOSE, i-1);
     

Share This Page