Rysowanie strzałek na wykresie

Kategoria: Repozytorium kodu MQL4 | 12 lutego 2009 o 16:29 | Odpowiedzi: Brak | Permalink

Bardzo często, podczas pisania EA zachodzi potrzeba weryfikacji, czy EA dobrze interpretuje dane odczytane z wskaźników. W zadaniu tym bardzo pomaga mi funkcja drawArrow.

Funkcja pozwala na łatwe dodanie do wykresu strzałki skierowanej w górę lub w dół, dzięki czemu można wizualnie prześledzić momenty generowania sygnałów, zwrotów trendów, spełnianie warunków czy też czego tylko dusza zapragnie :)

void drawArrow(string iName,int signal,int margin) {

 string name=iName+TimeToStr(Time[0],TIME_DATE|TIME_MINUTES|TIME_SECONDS);
 double p=0;

 if(signal>0) {
  p=Low[0]-margin*Point;
 }

 if(signal<0) {
  p=High[0]+margin*Point;
 }

 if(signal!=0) {

  if(ObjectFind(name)==-1) {
   ObjectCreate(name,OBJ_ARROW,0,Time[0],p);
  }

  ObjectSet(name,OBJPROP_PRICE1,p);

  if(signal>0) {
   ObjectSet(name,OBJPROP_ARROWCODE,241);
  }

  if(signal<0) {
   ObjectSet(name,OBJPROP_ARROWCODE,242);
  }
 }
}

Funkcja przyjmuje trzy parametry:

  • iName - nazwa dla konkretnej serii strzałek (dzięki temu można nanieść wiele serii strzałek na ten sam wykres)
  • signal - decyduje o tym, czy strzałka będzie w dół (wartości mniejsze od zera) czy też w górę (wartości większe od zera)
  • margin - odległość w pipsach od high/low bieżącej świeczki

0 odpowiedzi do wpisu "Rysowanie strzałek na wykresie"