Kod wykrywający konsolidację np na średnich

O jezykach programowania w platformach i nie tylko.
koniaczek
Gaduła
Gaduła
Posty: 100
Rejestracja: 18 lut 2011, 11:00

Kod wykrywający konsolidację np na średnich

Nieprzeczytany post autor: koniaczek »

Witam,

czy ma ktoś z Was kod wykrywający konsolidacje, np coś takiego, że jeśli zmiana średniej jest w jakiś tam granicach to false lub true.

Albo coś podobnego :)

Pozdrawiam
Marcin

Awatar użytkownika
siersciuch
Pasjonat
Pasjonat
Posty: 407
Rejestracja: 06 kwie 2010, 20:31

Nieprzeczytany post autor: siersciuch »

mozna też odległość średnich od siebie wziąć pod uwage
jeżeli będziesz uparty, prawdopodobnie częściej odniesiesz sukces, niż doznasz porażki.

koniaczek
Gaduła
Gaduła
Posty: 100
Rejestracja: 18 lut 2011, 11:00

Nieprzeczytany post autor: koniaczek »

Ale takiego kodu tez nie mam.... ale pomysł jest dobry. Poratuje ktoś?

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

koniaczek pisze:Ale takiego kodu tez nie mam.... ale pomysł jest dobry. Poratuje ktoś?
MACD

Andrzej Pierz

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Nieprzeczytany post autor: personov »

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.

koniaczek
Gaduła
Gaduła
Posty: 100
Rejestracja: 18 lut 2011, 11:00

Nieprzeczytany post autor: koniaczek »

Dzieki za odpowiedzi!!!

na chwilę obecna zrobiłem to tak:

Kod: Zaznacz cały

double blue = iMA(NULL,15,20,0,MODE_EMA,PRICE_CLOSE,0);
double red = iMA(NULL,15,13,0,MODE_EMA,PRICE_CLOSE,0);

Roznicasrednich= ((blue - red )/Point)
tu daje warunek:

Kod: Zaznacz cały

 if (Roznicasrednich<=2 && Roznicasrednich>=-2)
to znaczy ze jest prawdopodobnie konsolidacja

@personov jak zmienić te zmienne w Twoim kodzie by przejsc w strone m1, m5?

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Nieprzeczytany post autor: personov »

Twój sposób jest troche inny. Wykorzystałeś 2 średnie i różnicę między nimi. Ja wykorzystalem jedną i tak jakby badam jaka była jej wartość 5 świec wcześniej. Im większa jest wartość TrKn tym średnia MA jest bardziej pochylona. Im mniejsza wartość TrKn tym bardziej średnia MA jest pozioma. W mniejszych interwalach czasowych świece mają mniejsze wahania więc musiałbyś zmniejszyć TrKn ( oba ) do wartości ok. 0.0001. Ale musisz potestować. Jak najlepiej testować takie coś ?
Wstaw warunek w EA - jeśli trend to BUY, jeśli konsola to SELL. Dla buy daj kolor niebieski, dla sella czerwony. Robot zawrze mnóstwo transakcji, a Ty na wykresie zobaczysz gąszcz czerwonych i niebieskich strzałek i bedziesz wiedzial jak EA podzielił konsole i trend. Zmieniaj parametry i rób test od nowa. Tą sama metodę możesz zastosować w swoim sposobie z dwoma średnimi.
Solą życia jest kasa.

ODPOWIEDZ