Plugin bossaAB – automatyczne zlecenia w AmiBrokerze

“Wprowadzając możliwość automatycznego przekazywania zleceń na GPW z aplikacji AmiBroker wyszliśmy naprzeciw oczekiwaniom naszych aktywnych Klientów”.  Formułka stara i zgrana ale co napisać jeśli to prawda?

Wystarczy zajrzeć  do archiwum naszych blogów. Już w 2008 roku przy okazji udostępnienia pluginu z notowaniami do AmiBrokera,  pojawiły się komentarze zgłaszające zapotrzebowanie na api oraz cytując użytkownika GiełduGiełdu “moduł do automatycznego składania zleceń (np. wchodzącego w skład Amibrokera)”. Później w trakcie badania potrzeb naszych inwestorów okazało się, że API i moduły do automatyzacji zleceń są w czołówce “upragnionych zmian”.

Trochę to trwało ale w końcu w 2010 roku udostępniliśmy interfejs programowania aplikacji czyli w skrócie bossaAPI. Później  pierwsze aplikacje, które korzystają z bossaAPI (bossaTrader i bossaTraderPRO), aż wreszcie przyszedł czas na “moduł do automatycznego składania zleceń”.

Od 4.10.2011 r. można już chrupać orzeszki obserwując, jak zachowuje się nasza strategia, przekazując automatycznie zlecenia na GPW z AmiBrokera. Dodając łyżeczkę miodu, Plugin bossaAB, udostępnia również możliwość manualnego przekazywania zleceń, bez potrzeby używania automatów.


Dla kogo przeznaczony jest nasz plugin bossaAB?

Przede wszystkim dla osób, które mają do czynienia z językiem AFL. Znają jego podstawy na tyle, ażeby napisać najprostszy „system” np. dot. przecięć średnich kroczących:

srednia1 = 15;
srednia2 = 45;

Buy=Cross( MA(Close,srednia2) , MA(Close,srednia1) );
Sell=Cross( MA(Close,srednia1) , MA(Close,srednia2) );

Oczywiście nic nie stoi na przeszkodzie, ażeby posłużyć się jednym z wielu przykładów dostępnych w sieci. Aczkolwiek, jakby napisał Kathay – lepiej znać swoje narzędzie od środka, rozumieć go i być z nim w zgodzie.


Jak to wszystko działa ?

Plugin bossaAB rozszerza funkcjonalność języka AFL w AmiBrokerze o własne funkcje pozwalające na przekazywanie zleceń za pomocą bossaAPI na GPW. Jednakże, aby z nich skorzystać należy je ręcznie dopisać do naszego systemu.

Funkcja nolBuy przekazuje zlecenia kupna, np.:
nolBuy(“PGNIG”,””,1,0,0); – zlecenie kupna 1 szt. PGNiG z limitem PKC.

Funkcja nolSell zlecenia sprzedaży, np.:
nolBuy(“PGNIG”,””,1,0,0); – zlecenie sprzedaży 1 szt. PGNiG z limitem PKC.

 

Następnie przygotowaną strategię wystarczy jednym ruchem przeciągnąć na określony wykres.

film_bossaAB.png

 

Okno interfejsu graficznego pozwala na zarządzanie autotradingiem dla wybranych walorów oraz manualne składanie zleceń.

 

Możemy wyobrazić sobie sytuację w której mamy włączony autotrading dla wszystkich walorów na naszym rachunku, a jednocześnie istnieje potrzeba modyfikacji systemu dla jednego w walorów. Jak sobie w takiej sytuacji poradzić? Najprościej –  wyłączyć autotrading dla takiego waloru, pozostawiając sobie możliwość przekazania zlecenia ręcznie.

 

Po dokonanej modyfikacji w AFL, jednym ruchem, możemy przywrócić nasz automat do działania.

 

Mam system napisany w języku AFL, tylko nie wiem jak połączyć to wszystko z pluginem bossaAB?

Nasza propozycja zarówno dla początkujących jak i zaawansowanych użytkowników to:

skorzystać z aplikacji bossaABKreator.

 

Zadaniem aplikacji bossaABKreator jest przede wszystkim wspomaganie tworzenia kodu AFL, który korzystając z funkcji pluginu bossaAB, pozwoli na automatyczne przekazywanie zleceń na GPW.

Początkujący użytkownicy, dzięki kreatorowi poczują się jak “ryba w wodzie”, natomiast zaawansowani, dzięki komentarzom do generowanego kodu AFL, będą mogli zapoznać się w szczegółach ze sposobami wykorzystania pluginu bossaAB.

 

Co ciekawego oferuje bossaABKreator, skoro wszystko można zdefiniować samodzielnie w kodzie AFL?

Programiści, na co dzień zajmujący się tworzeniem systemów transakcyjnych w językach AFL czy MQL, z większością wyzwań poradzą sobie sami.

Dla  osób stawiających pierwsze kroki w AFL, bossaABKreator oferuje gotowe szablony związane z np.:

  • możliwością automatycznego odczytania waloru z wykresu,
  • automatycznie wybieranym numerem rachunku maklerskiego,
  • zabezpieczeniami tworzonego systemu transakcyjnego,
  • zarządzaniem wielkością pozycji,
  • określeniem limitów zleceń.

Proces budowania kodu AFL podzielony jest na etapy (kreator), co daje większą przejrzystość i ułatwia korzystanie z aplikacji. W każdym momencie można zapisać edytowany projekt by powrócić do niego w innej chwili.

 

Co to jest zabezpieczenie systemu transakcyjnego?

bossaABKreator pozwala na wprowadzenie dwóch rodzajów zabezpieczeń odnośnie zleceń, transakcji oraz interwału, mianowicie:

 

  • Następna transakcja odwrotna do poprzedniej – Tutaj w bardzo prosty sposób możemy określić, iż transakcje mają być realizowane naprzemiennie, czyli raz kupujemy, a następnie sprzedajemy.
  • Tylko jedno zlecenie w świeczce – Chyba każdy z praktyki wie, iż sygnał w danym interwale może zostać wygenerowany parę razy, szczególnie przy bardzo szybkich ruchach i dużej zmienności. Tym samym efektywność naszego systemu transakcyjnego mogłaby daleko odbiegać od oczekiwań. Ww. zabezpieczenie pozwala na przekazanie tylko jednego zlecenia w danym interwale po wystąpieniu sygnału kupna lub sprzedaży.
  • Interwał – To szczególne zabezpieczenie dla tych, którzy lubią często zmieniać interwały na wykresach. Po podłączeniu automatu mogłoby powodować niespodziewane transakcje (system przecięcia średnich godzinowych po przełączeniu na tiki stanie się systemem przecięcia średnich tikowych).
    Ustawienie na sztywno interwału w tym parametrze np. 5 min. zabezpiecza nas przed takimi niespodziankami.  Od teraz możemy oglądać wykres pod dowolnym kątem 😉 a system będzie pilnował zdefiniowanych sygnałów tylko dla wybranego interwału.

 

Czy jest możliwe użycie różnych strategii na różnych wykresach ?

Tak ale z jednym warunkiem. Każdy wykres musi posiadać unikalny identyfikator, tzw ChartID. Oznacza to, iż w AmiBrokerze nie możemy używać opcji [Default chart], gdyż nadaje ona wszystkim tworzonym wykresom to samo ChartID.

Każdy wykres powinien być tworzony za pomocą opcji [Blank Chart], a następnie uzupełniany o np. element [Basic Charts] -> [Price(all in one)].

 

 

Dlaczego muszę mieć uruchomionych tak dużo aplikacji?

Też nad tym bolejemy ale na tą chwilę żaden z dostawców nie jest idealny czytaj trzeba łączyć produkty kilku z nich. Do pełnego wykorzystania pluginu bossaAB potrzebujemy zatem uruchomionej aplikacji Notowania3PRO, która zasila AmiBrokera notowaniami oraz aplikację bossaNOL3, gdzie wykorzystywane jest bossaAPI. Oczywiście nie należy zapominać o zalogowaniu się na rachunek maklerski, inaczej nie będzie gdzie przekazywać zleceń.

Uprzedzając pytania – kiedy będzie inaczej? Jak tylko okaże się, że jest wystarczająca liczba chętnych do używania automatów. Być może już liczba uczestników Rankingu Automatów w konkursie Forex bossafx, wskaże, że jest to kierunek wart inwestycji?

Póki co dziękujemy testerom i autorowi oprogramowania za wspólny wysiłek. A wszystkich inwestorów zapraszamy do obejrzenia co Plugin bossaAB oraz bossaABKreator potrafi. Jak zawsze wszelka informacja zwrotna mile widziana 😉

Tych którzy wolą zobaczyć plugin w akcji, zapraszamy do śledzenia strony szkolenia online, gdzie w ciągu tygodnia będzie można zapisać się na webinar omawiający możliwości Pluginu bossaAB i aplikacji bossaABKreator.

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

4 Komentarzy

  1. vinc

    http://www.technologyreview.com/blog/arxiv/27222/

    jesteście zsynchronizowani? jak cykady? tylko wtedy macie wiekszą szansę:)
    bo jak nie to żaden plugin wam nie pomoże..

  2. Mariposa

    Brawo bossa!

    Na czym można grać – na futures, walutach ?

    Pozdrawiam
    M

  3. mwojciechowski

    @Mariposa
    Na wszystkich instrumentach notowanych na GPW.
    Do instrumentów forexowych (CFD na waluty, towary, indeksy) używa się MQL’a, który jest dostępny na platformie bossafx .
    Na stronie Automatyzacja handlu pokazujemy sporo przykładów jak to zrobić.

  4. ZKARWAT

    Proszę o kontakt na mój email Pana Remigiusza.

Dodaj komentarz

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

Proszę podać wartość CAPTCHA: *