Wskaźniki z kropkami i strzałkami
Kategoria: Repozytorium kodu MQL4 |
24 maja 2008 o 15:10 |
Odpowiedzi: 5 |
Permalink
Często zachodzi potrzeba napisania wskaźnika, który w odpowiednim miejscu na wykresie ceny zaznaczy kropką lub strzałką jakiś ważny punkt, np. osiągnięcie przez oscylator określonego poziomu lub przecięcie średnich ruchomych.
Osobiście bardzo lubię tego typu wskaźniki, ponieważ nie “zaciemniają” one wykresu, a jednocześnie pozwalają precyzyjnie określić miejsce spełnienia określonego warunku, co nie zawsze można łatwo odczytać z okienka oscylatora.
Implementacja takiego wskaźnika jest bardzo prosta, a szablon zamieszczam poniżej.
#property indicator_chart_window
// określamy liczbę oraz kolorystykę buforów wskaźnika
#property indicator_buffers 2
#property indicator_color1 RoyalBlue
#property indicator_color2 Red
// warto także pogrubić nasze kropki, aby były bardziej wyraźne
#property indicator_width1 2
#property indicator_width2 2
// definiujemy tablice wskaźnika
double long[];
double short[];
// zmienna zewnętrzna do określenia odległości kropki od świeczki
extern int margin=20;
int init() {
// ustawiamy właściwości wyświetlania buforów wskaźnika
SetIndexBuffer(0,long);
SetIndexStyle(0,DRAW_ARROW,0,1);
SetIndexArrow(0,159); // 159 to kod kropki
SetIndexBuffer(1,short);
SetIndexStyle(1,DRAW_ARROW,0,1);
SetIndexArrow(1,159);
return(0);
}
int start() {
// rozpoczynamy sprawdzanie warunków dla 500 ostatnich okresów
for(int i=0;i<500;i++) {
if(........) { // warunek na long (niebieska kropka poniżej świeczki)
long[i]=Low[i]-margin*Point;
} else {
long[i]=EMPTY_VALUE;
}
if(........) { // warunek na short (czerwona kropka powyżej świeczki)
short[i]=High[i]+margin*Point;
} else {
short[i]=EMPTY_VALUE;
}
}
return(0);
}
Kod do rysowania strzałek wygląda analogicznie, z tym, że jako drugi parametr funkcji SetIndexArrow podajemy 241 dla long oraz 242 dla short.

5 odpowiedzi do wpisu "Wskaźniki z kropkami i strzałkami"
Jarek
Witam, Jak zrobić żeby w Heiken Ashi Ma.mq4 rysowały się strzałki przy przejściu z jednego koloru na drugi. Tzn. np. kiedy tren jest spadkowy i rysują się czerwone kreski to w momencie zmiany trendu czyli po zamknięciu pierwszej świecy z zieloną kreską żeby rysowała się strzałka UP. Mam nadzieję, że nie zagmatwałem tego o co mi chodzi.
luktom
Musisz sprawdzić bufory poprzez pobranie ich przy użyciu iCustom, z tym, że w przypadku wskaźników Heiken Ashi zazwyczaj nie wystarczy jedynie sprawić czy wskaźnik nie jest pusty, a trzeba sprawdzić czy jeden bufor jest większy od drugiego.
Jarek
Tak zgadza się trzeba sprawdzać czy jeden bufor jest większy od drugiego. W ten sposób stworzyłem nawet EA przy pomocy http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/index.html#Var1. Ale jestem za cienki w programowaniu żeby to wykorzystać do rysowania strzałek. Wydaje mi się że to jest banalnie proste. Ale nie dla mnie. Czy EA może pracować jednocześnie jako wskaźnik i rysować takie strzałki? Wydaje mi się, że nie powinno Ci zająć dużo czasu zmodyfikowanie Heiken Ashi, że by dokładał strzałki ;)
luktom
Wrzucę na bloga jutro rano inny sposób rysowania strzałek, bo tym to w EA raczej strzałek nie narysujesz...
luktom
Oj, chyba się starzeję... bo już to publikowałem wcześniej ;) http://luktom.biz/blog/e497/rysowanie-strzalek-na-wykresie