• 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 :)

Answered MAU TANYA SEPUTAR MASALAH SHIFT MA

frx junior

New Member
Credits
0
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?
 
Mungkin akan lebih jelas lg kalau agan sertakan kodingnya disini jadi bisa dicek kesalahannya dimana....
Thanks
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?
 
shift = masa depan

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

EA menggunakan logika "masa depan" tidak akan berjalan setau saya
karena "data masa depannya" belum terjadi ... *koreksi kalo salah*
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...
 
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...
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* :)
 

Attachments

  • 1.png
    1.png
    141.2 KB · Views: 29
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.
 
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);

}
 

Attachments

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);

}

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.
 
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..
 
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.

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);
 
Back
Top