Rysowanie strzałek na wykresie

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

Autor: Łukasz Tomaszkiewicz

Podziel się ze znajomymi:

Prześlij nam swoje uwagi

[contact-form-7 404 "Not Found"]
  • Facebook