Użycie obiektów graficznych w formułach AFL

AmiBroker pozwala na odwoływanie się z poziomu języka AFL do ręcznie umieszczonych na wykresie obiektów. Ta opcja jest wyjątkową cechą AmiBrokera wśród wszystkich dostępnych na rynku programów do analizy technicznej a użycie tej opcji w praktyce jest wyjątkowo proste.

Poniższy przykład pokaże jak z AFL sprawdzić czy obecny trend został przełamany. Aby to zrobić, należy kolejno

  1. Narysować linię trendu
  2. Zdefiniwać identyfikator obiektu (Study ID)
  3. Napisać formułę, która wykrywać będzie przebicie lini trendu

Rysowanie lini trendu

Linia trendu jest pochyłą linią pomiędzy dwoma ważnymi punktami wykresu.

W przykładzie tym narysowana zostanie linia trendu wzrostowego. Linia taka jest najczęściej rysowana pomiędzy dwoma (lub większą ilością) minimów cenowych aby zobrazować jej wsparcie.

Aby narysowac linię - wystarczy wybrać narzędzie "Trend line" (Linia trendu) z paska narzędzi "Draw" (rysuj), następnie odnaleźć dwa ostatnie minima i narysować linię trendu.

Zdefiniwanie identyfikatora obiektu (study ID)

Aby zmieniać właściwości każdego narysowanego w programie AmiBroker obiektu wystarczy kliknąć na obiekcie PRAWYM przyciskiem myszy i wybrać z menu opcję "Properties" (Właściwości). Okno Właściwości które się wyświetli pozwala na zdefiniowanie punktów rozpoczęcia i zakończenia danego obiektu, jego koloru, stylu oraz trybu przedłużenia lini (lewo/prawostronnie).

Aby mieć pewnośc, że linia będzie automatycznie przedłużona wraz z napływam nowych danych, dla celów dalszej analizy użyta będzie linia trendu przedłużona prawostronnie (należy zaznaczyć odpowiednią opcję).

Okno właściwości pozwala także na zdefiniowanie "Study ID" (Identyfikatora obiektu) w oknie poniżej okna koloru. "Study ID" (Identyfikator obiektu) jest dwuliterowym kodem który może zostać przypisany do obiektu, aby możn było odwoływać się do niego z poziomu języka AFL. Predefiniowane identyfikatory to: "UP" - uptrend (trend wzrostowy), "DN" - downtrend (trend spadkowy), "SU" - support (poziom wsparcia), "RE" - resistance (poziom oporu), "ST" - stop loss (stop strata), niemniej jednak możliwe jest użycie dowolnego identyfikatora (jedynym limitem jest użycie dwóch znaków w identyfikatorze). Dzięki temu możliwe jest rysowanie poziomów wsparcia dla wielu symboli i nadanie im wszystkim identyfikatora "SU" i odwoływanie się do niego z formuły AFL.

Zatem narysowanej uprzednio linii trendu wzrostowego przypisany zostanie identyfikator "SU".

Konstrukcja formuły wykrywającej przebicie lini trendu

W przykładzie formuła ma za zadanie wykryć moment, gdy cena spadnie PONIŻEJ linii trendu. Jest to bardzo proste:

sell = cross( study( "SU" ), close );

Funkcja Study() akceptuje dwa parametry: pierwszym z nich jest StudyID (Identyfiator obiektu) - dwuliterowy kod odpowiadający identyfikatorowi przypisanemu linii trendu; drugi parametr to chart ID (identyfikator wykresu) - wartośćią domyślną jest 1 (wtedy, gdy jego wartość nie jest podana) i wtedy funkcja Study() odwołuje się do głównego wykresu ceny. Aby odwałać się do obiektów narysowanych w innych oknach, należy używać identyfikatorów opisanych w tabeli opisującej funkcję Study().