Wskaźniki z kropkami i strzałkami

Kategoria: Repozytorium kodu MQL4 | 24 maja 2008 o 15:10 | Odpowiedzi: 5 | Permalink
mql4code_kropki_strzalki

Przykładowy wygląd

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

    20 marca 2009 o 23:05

    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

    22 marca 2009 o 00:49 | Odwiedź stronę WWW autora

    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

    22 marca 2009 o 11:04

    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

    23 marca 2009 o 17:32 | Odwiedź stronę WWW autora

    Wrzucę na bloga jutro rano inny sposób rysowania strzałek, bo tym to w EA raczej strzałek nie narysujesz...

  • luktom

    23 marca 2009 o 23:58 | Odwiedź stronę WWW autora

    Oj, chyba się starzeję... bo już to publikowałem wcześniej ;) http://luktom.biz/blog/e497/rysowanie-strzalek-na-wykresie