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