Problem jest w tym, że średnie działają z opóżnieniem ponieważ wykonują obliczenia wstecz ( jak każdy wskaźnik ). Swojego czasy bawiłem sie przy robocie, który również miał wykrywać konsolę na H4 . Najlepszym sposobem było zbadanie pochylenia średniej, badając jej wartość o x okresów wstecz. Dodalłem do EA 2 MA - drugie miało taki sam okres tylko przesunięte było o shift. Jeśli różnica była powyżej y to był trend, jeśli poniżej to jest konsola. Jednak wyniki nie były dobre. Jeśli byl trend to zanim EA wykrył następujacą po nim konsolę to tak naprawdę było już po konsoli. Cholerne opóźnienia. Postanowiłem dodać drugi poziom przechylenia średniej MA. Jeden poziom dotyczył przejścia z konsoli na trend, a drugi dałem mniejszy przy przejściu z trendu do konsoli. Oznaczalo to, że jak był trend to wystarczyło lekkie załamanie MA do poziomu i EA wykrywalo konsolę.
Później była zabawa parametrami.
Poniżej przedstawiam parametry do TFa H4. Myslę, że nic lepszego ze średnich się nie wyciśnie. Na wykresie zaznaczyłem poziomymi liniami okresy, które te parametry rozróżniły. Jak ktoś chciałby sie pobawić na mniejsze TFy to wystarczy zmienić tylko TrKn1 i TrKn2. Ja sie nie bawiłem.
Kod: Zaznacz cały
extern double TrKn1 = 0.002;
extern double TrKn2 = 0.001;
extern int trend = 0;
double MA1 = iMA(Symbol(),Period(),65,0,0,0,0);
double MA2 = iMA(Symbol(),Period(),65,0,0,0,5);
if(trend==1){
if (-TrKn2 < (MA1-MA2) && (MA1-MA2) < TrKn2) trend=0;
}else if(trend==0){
if ((-TrKn1 > (MA1-MA2)) || ((MA1-MA2) > TrKn1)) trend=1;
}
trend to 1, konsola to 0.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Solą życia jest kasa.