Jedną z rzeczy, które odróżniają Amibrokera od programów do wyświetlania notowań, niekiedy nawet bardzo zaawansowanych jest możliwość zdefiniowania własnych najbardziej nawet wymyślnych alertów. Do dyspozycji mamy bowiem nie tylko proste warunki takie jak przekroczenie pewnego pułapu cenowego, czy wielkości wolumenu, ale dzięki językowi AFL możemy zdefiniować alert w odpowiedzi na każdą możliwą do opisania w formie skryptu sytuację.

O wyzwoleniu alertu, program może poinformować użytkownika na cztery sposoby, od prostej informacji tekstowej wyświetlanej w oknie AlertyAlert Output, przez odegranie sygnału dźwiękowego, a na wysłaniu emaila, czy uruchomieniu aplikacji zewnętrznej kończąc. Wszelkie ustawienia związane z alertami znajdziemy w zakładce Alerts w menu konfiguracji Amibrokera (Tools -> Preferences ). Konfiguracja obejmuje między innymi ustawienia konta poczty elektronicznej, które posłuży nam do przesyłania alertów na skrzynkę pocztową, a także przegląd (aktywowanie i blokowanie generowania) alertów z poszczególnych z poszczególnych źródeł.

Funkcja, która służy do definiowania warunków alarmu to AlertIF. Jej składnia jest następująca:

AlertIF( warunek, akcja, text, typ = 0, flagi = 1+2+4+8, lookback = 1 );

Teraz kilka słów o każdej z części składowych tej funkcji.

1. Warunek jest wyrażeniem typu prawda/fałsz. Alarm uruchamiany jest w momencie pojawienia się wartości niezerowej.

2. Na drugim miejscu oznaczonym jako akcja definiujemy styl powiadomienia nas o zaistnieniu alarmu. Do wyboru mamy:

a) SOUND ścieżka-do-pliku-wav

b) EMAIL

c) EXEC ścieżka-do-pliku lub strony-internetowej

Pozostawienie tego pola pustego spowoduje wyświetlenie tekstu w oknie Alert Output.

3. Text służy do definiowania tekstu, który zostanie przesłany w wiadomości email lub wyświetlony na ekranie.

4. Typ określa rodzaj alarmu, 0 – domyślny, 1 – kupno, 2- sprzedaż, 3 – pozycja krótka, 4 – pokrycie pozycji krótkiej.

5. Flagi umożliwiają nam użycie kombinacji kilku różnych akcji w odpowiedzi na pojawienie się alertu, np. komunikat i sygnał dźwiękowy (1+2).

6. Ostatni parametr lookback kontroluje ile słupków wstecz zostaje sprawdzonych.

Skoro już wiemy, jak wygląda składnia funkcji AlertIF, przejdźmy do przykładów:

Przykładowy prosty alert w oparciu o przecięcie linii sygnalnej przez MACD

// definiujemy zmienne, które posłużą nam za “warunki” do

// wykorzystania w alertach

Buy = Cross( MACD(), Signal() );

Sell = Cross( Signal(), MACD() );

Short = Sell;

Cover = Buy;

// pierwszy alert wyśle do nas maila o treści ?Kupuj nazwa_waloru”

AlertIF( Buy, “EMAIL”, “Kupuj “+FullName(), 1 );

// ten alert z kolei poinformuje nas o sygnale sprzedaży przy pomocy dźwięku z pliku wav

AlertIF( Sell, “SOUND C:\\Windows\\Media\\Ding.wav”, “Audio alert”, 2 );

// przy pomocy tego alertu możemy uruchomić program lub WWW

AlertIF( Short, “aplikacja.exe”, “Uruchamiamy aplikacje”, 3 );

// ten chyba nie wymaga komentarza;)

AlertIF( Cover, “”, “Zamknij krótkie pozycje!”, 4 );

Poza MACD możemy wykorzystać oczywiście każdy inny wskaźnik, np. ADX, czy RSI. Oczywiście przy pomocy składni if języka AFL możliwa jest kombinacja kilku warunków, np. przebicie przez RSI poziomu 30, wraz z przebiciem się linii sygnalnych na MACD.

Funkcjonalność alertów z Amibrokera możemy wykorzystać w dość pomysłowy sposób – np. wysłanie komunikatu w formie emaila może mieć jeszcze jedno, dodatkowe zastosowanie. Praktycznie wszyscy dostawcy skrzynek pocztowych za niewielką opłatą udostępniają swoim Klientom możliwość wysyłania powiadomień sms o przychodzącej wiadomości, wraz z początkiem jej treści. Taką usługę możemy wykorzystać do przesyłania na nasz telefon komórkowy/palmtop sygnałów płynących ze stosowanego przez nas systemu transakcyjnego. Przy ?połączeniu” Amibrokera z naszym telefonem istotną rzeczą jest rozsądne ustawienie warunków aktywacji alertów, w przeciwnym razie w szybkim czasie skrzynka odbiorcza może pękać w szwach, a my nie widząc wykresu nie będziemy w stanie podjąć żadnej decyzji w oparciu o takie sygnały

Ciekawe zastosowanie może mieć teoretycznie funkcja EXEC. Przy jej użyciu możemy bowiem uruchomić dowolny skrypt, lub adres URL, które będą w stanie wywołać konkretną akcję na rachunku maklerskim, np. kupić lub sprzedać dany walor. W przypadku udostępnienia przez brokera odpowiedniego interfejsu otrzymujemy prawie gotową receptę na automatyczny system tradingowy. Rozwiązanie takie nie jest jeszcze gotowe w DM BOŚ ale kto wie co przyniesie przyszłość 😉

Bartłomiej Szuba

[Głosów:8    Średnia:3/5]

7 Komentarzy

  1. anonim

    czyli zmierzamy do automatyzacji systamow tranzakcyjnych dla ogolu.
    Jak na razie brak API i trzeba robic numery typu wywolywanie stron… Sciagniecie notowan w real-time tez jest problemem (no chyba ze poprzez pliki)
    cos mi mowi, ze za x lat tradingiem beda sie zajmowac dzisiajsi programisci 🙂

  2. anonim2

    W bosiu, na razie komunikaty powitalne kładą sprawę, bo skrypt własny do logowania da sie stworzyć.
    Ale pomyślmy najpierw, jak sygnały mają byc wysyłane, skoro analiza z funkcją backfill, czyli rzeczywista RTime trwa do 2 godzin, jeżeli w ogóle uda sie jej dobiec na akcjach GPW do końca bez wywrotki systemowej. Ograniczony kadłubek to wybór kilku walorów i na ograniczonej próbie walka z rynkiem.

  3. TS

    Może zanim będzie ten automatyczny system tradingowy to chociaż uda się wprowadzić mozliwość automatycznego wystawiania zleceń stop do realizowanego zlecenia, tzn. składamy zlecenie: kup po cenie X a jak kupisz wystaw zlecenie zabezpieczające po cenie X-60. Są jakieś widoki na taką opcję ?

  4. mwojciechowski

    @anonim2
    Dostaliśmy informacje ze Statiki, że powstanie nowy, lepszy plugin.

    @TS
    Wszystko zależy od wyników ankiety czyli od zapotrzebowania klientów. Tego rodzaju zlecenia są według mnie bardzo interesujące
    ale jeśli inwestorzy stwierdzą, że np. wieloportfelowość jest dla nich potrzebniejsza to ugnę się pod naporem większości.

  5. Konlin

    @mwojciechowski
    Gdzie jest ta ankieta o funkcjonalności? Na stronie głównej bossy widzę ankietę dot. dziennika transakcji.

    Ps. Na samym początku pytałem o możliwość oznaczania autorstwa notek, już sobie z tym poradziałem przez yahoo pipes.

  6. mwojciechowski

    @konlin
    Ankieta będzie wysłana jako komunikat powitalny przy logowaniu się na rachunek.
    Już niedługo…

  7. klient

    ponieważ bossa poważnie zajęła się promowaniem Amibrokera, to może warto aby wydała polską wersję podręcznika do tego programu? szczególnie powinna ona zawierać ponad to co oferuje wersja ang, zastosowanie programu w połaczeniu z Notowania3, i rachunkami w bossa

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę podać wartość CAPTCHA: *