Od kilku miesięcy klienci DM BOŚ mogą korzystać z aplikacji bossaAPI. W odróżnieniu od wielu innych usług, propozycji czy narzędzi oferowanych przez biura maklerskie to nie skupia na sobie, aż tak ogromnego zainteresowania. Przede wszystkim ze względu na konieczność podstawowych zasad programowania. Mimo tego bossaAPI jest wykorzystywane bardzo aktywnie. Może nie widać tego po aktywności uczestników na specjalnym forum (dla zalogowanych użytkowników bossa.pl), ale jak się okazało na ostatnim szkoleniu w Gdańsku powstają już na tej bazie całkiem złożone aplikacje. 

Żeby przybliżyć nieco meandry tworzenia mechanizmów wykorzystujących bossaAPI przeprowadziliśmy rozmowę z jednym z użytkowników aplikacji. Oczywiście nie poruszałem w rozmowie wątków technicznych – tę działkę pozostawię programistom na forum, zwłaszcza, że dla mnie to język obcy. Rozmówca chce pozostać anonimowy zgodził się jednak na odpowiedzenie na pytania Czytelników bossa.

Jak długo działa Pan na rynku finansowym?

Odkąd sięgam pamięcią. Zacząłem we wczesnych latach dziewięćdziesiątych jeszcze w średniej szkole. Pamiętam sytuacje, gdy człowiek na długiej przerwie gnał do domu, żeby w telegazecie zerknąć jakie kursy na dzień dzisiejszy się ustaliły, a potem do DM złożyć ewentualnie zlecenia (o internecie i Bossie wtedy nikt nawet nie myślał). Czasy modemów analogowych, BBS i ogromnych rachunków za telefony 🙂

Jakimi instrumentami głównie w tej chwili Pan handluje?

Aby precyzyjnie odpowiedzieć na to pytanie trzeba by dokładniej zdefiniować określenie „handluje”. Największa część portfela to akcje, jednocześnie jest to najbardziej pasywna jego część. Największy obrót generuję na rachunku instrumentów pochodnych.

Wykorzystuje Pan w swojej aktywności giełdowej coś co powszechnie określa się mianem “automatów”. Jak sądzę dotyczy to przede wszystkim tej części aktywnej – czyli pochodnych?

Tak.

Kiedy zainteresował się Pan tymi możliwościami albo jakie potrzeby/wydarzenia doprowadziły do tego.

Możliwości jakie dawało DDE podpięte pod Excela z VBA były wystarczające z punktu widzenia analizy. Najsłabszym ogniwem był interfejs z domu maklerskiego służący do składania zleceń. Nie było szans generować zleceń ręcznie na podstawie sygnałów systemu. Nie było szans na szybką egzekucję zleceń warunkowych. Już około roku przed uruchomieniem BossaAPI pytałem Państwa o takie rozwiązanie. Tajemnicze odpowiedzi jakie wtedy otrzymywałem pośrednio wskazywały na to, że należy mieć nadzieję 🙂

Wiele osób automatyczny trading kojarzy niemal dosłownie z nic nie robieniem. Wystarczy włączyć aplikację, zaczyna się sesja i spokojnie można wyjść i zająć się swoimi sprawami. Jak wygląda Pana dzień pracy podczas sesji

Niestety nie do końca tak jak w powyższym przykładzie. Jest to kwestia ograniczonego zaufania. Po pierwsze BossaAPI wymaga jeszcze kilku szlifów, po drugie – nie wszystkie sytuacje byłem w stanie przewidzieć pisząc aplikację (na marginesie dodam, że mój zapał do kodowania zmniejsza się zaraz po uzyskaniu podstawowej funkcjonalności).

Trading nie jest moim podstawowym zajęciem, pracuję na etacie i bez BossaAPI nie byłem w stanie reagować w interesujących mnie momentach. Dzięki BossaAPI system analizuje sytuację, wyłapuje okazje i przygotowuje zlecenia do wysłania – decyzję o złożeniu zleceń jednak nadal podejmuję ja.

Wydaje się, że to nie jest wyłącznie problem takiego czy innego oprogramowania, ale każdego. Bardzo mało osób ma świadomość ryzyk związanych z automatami. Gdyby mógł Pan wymienić te najważniejsze (albo dotychczasowe) i ogólnie powiedzieć co jest lub co może być kłopotem przy tego rodzaju handlu?

Panie Grzegorzu, z tego się można doktoryzować. Ja specjalistą od ryzyka nie jestem, ale zauważam następujące:

– związane z niedoskonałością/niedostępnością każdego z wykorzystanych komponentów systemu (własna aplikacja, bossAPI, NOL3 i tp.)

– związane z niedostępnością łącza internetowego w kluczowych dla systemu momentach.

Niektóre da się zminimalizować angażując środki finansowe, inne są niezależne ode mnie i trzeba je wkalkulować w “system”.

Na marginesie – warto zdać sobie sprawę, że mając np. 5 komponentów systemu z przykładową dostępnością na poziomie 98% otrzymujemy system z dostępnością już tylko nieco ponad 90%.

Dla mnie największym kłopotem jest niedoskonałość własnej aplikacji oraz jeden błąd bossAPI dający fałszywy obraz notowań, który zgłosiłem już na forum bossa.pl.

Żeby nie odchodzić od tematu – świetnym narzędziem pozwalającym przeprowadzić diagnostykę systemu oraz zidentyfikować miejsce powstania błędu jest log dwukierunkowej komunikacji FIXML, który w tle generuje NOL3. Daje on możliwość przeprowadzenia diagnostyki w bardziej komfortowych (niż czas sesji) warunkach i ciągłego udoskonalania własnego kodu.

Jak często i ile transakcji dziennie Pan wykonuje?

O tym decyduje rynek. Średnio w dnach kiedy śledzę notowania jest to kilkadziesiąt transakcji.

Czyli transakcji dokonuje Pan uwzględniając interwały raczej minutowe, niż godzinowe?

Dokładnie tak.

Ile dni w miesiącu – średnio – przeznacza Pan na aktywny handel?

Około 15 sesji w miesiącu system śledzi notowania, ale moje zaangażowanie szacuję na poziomie pojedynczych godzin w całym tym okresie.

Czyli wchodzi Pan na rynek wyłącznie wówczas, gdy rynek spełnia określone przez Pana kryteria. Nie próbuje na siłę być “day-traderem”, jeśli tylko ma Pan wolną chwilę?

W strategii, którą zautomatyzowałem – tak. Nic na siłę.

Traderzy niechętnie dzielą się warsztatem, ale zapytam. Czy Pana technika bazuje wyłącznie na wykresach ceny, wykorzystuje jakieś średnie,  czy może oscylatory

Delikatny temat… Wyłącznie wykresy cenowe + wolumen. Nie jestem zwolennikiem utrudniania sobie życia. Wszelkie średnie, oscylatory są przecież pochodną ceny i wolumenu.

Interesuje mnie wątek łączenia tradingu z inną pracą zawodową. Traduje Pan tylko w niektóre dni. Czy ma Pan jakieś kryteria wyboru tych dni? A w związku z tym, czy nie zdarzają się sytuacje gdy może Pan poświecić dzień na handel i okazuje się, że rynek nie pasuje do Pana kryteriów (np. zbyt niska zmienność)

“Tradować” mogę tylko wtedy, gdy nie koliduje to z moimi obowiązkami służbowymi. Są dni kiedy nie śledzę rynku. Większość czasu spędzam jednak w biurze. Ponad 90% czasu poświęcam pracy zawodowej – bossaAPI dał mi możliwość sprawdzenia kilku moich pomysłów bez ryzyka zaniedbywania obowiązków. Na te kilka minut gdy aplikacja zgłasza optymalne kryteria po prostu odrywam się od pracy.

Czyli można powiedzieć, że w momencie dokonywania transakcji monitoruje Pan tylko czy wszystko idzie zgodnie z planem?

Tak – rzut oka na monitor – czy NOL jest on-line, czy poziomy cen z NOL3 zgadzają się z tymi z aplikacji, czy wreszcie nie mamy do czynienia z wyjątkiem, którego bossaAPI w obecnej wersji jeszcze nie obsługuje. Oczywiście można te czynności zautomatyzować, tylko wtedy ktoś musiałby kontrolować te mechanizmy kontrolne  Nie kontroluję jednak i nie poddaję w wątpliwość samych transakcji sugerowanych przez aplikację – jedynie sprawdzam, czy podjęte zostały na bazie rzeczywistych danych.

Czy korzysta Pan z jakiegoś specjalnego oprogramowania

Nie. Aplikacja jest napisana od podstaw pod MS Visual Basic Express.

Jak Pan ocenia potencjał algo trading w Polsce?

Moim zdaniem jest to nisza dla zapaleńców z dużą wiedzą z zakresu tradingu i informatyki (oraz oczywiście dla instytucji finansowych – ale one od dawna już się tym zajmują).

Co (jeśli w ogóle) algo-trading  zmienia w emocjach, podejściu psychicznym?

W moim przypadku – znacznie redukuje stres związany z wyczekiwaniem na określone zdarzenia na rynku i koniecznością szybkiego reagowania. Redukuje możliwość popełnienia pomyłki przy przygotowaniu zleceń. Każdorazowo decyzja o zaangażowaniu kapitału jest jednak podejmowana przeze mnie na podstawie informacji podawanych przez system – emocji nie udało się więc wyeliminować, psychicznie jednak sytuacja jest dużo bardziej komfortowa.

Z perspektywy czasu, co uważa Pan za najtrudniejsze właśnie w sferze emocjonalnej co daje się rozwiązać przy automatyzacji handlu?

Panie Grzegorzu – na swoim przykładzie nie potrafię odpowiedzieć na to pytanie, a nie jestem ekspertem żeby rozmawiać na ten temat na poziomie ogólnym. Automatyzacja handlu to dla mnie przede wszystkim komfort z uwagi na to, że całą “biurokrację” związaną ze zleceniami załatwia aplikacja i oszczędność czasu, z uwagi na to, że nie muszę sam wyszukiwać okazji inwestycyjnych. W sumie jakby się zastanowić, to dzięki temu udaje się wyeliminować zjawisko żalu po niewykorzystanej okazji – a to już sfera emocji.

Nie będę pisał jak zastosowanie systemu eliminuje emocje, bo jak wyżej napisałem – decyzje nadal podejmuję ja. Zresztą celowo staram się nie nadużywać określenia system, bo po prostu nie wierzę, że coś takiego da się skonstruować.

Czyli można powiedzieć, że jest to zgodne z popularnym u niektórych traderów przeświadczeniem, że o wiele lepszą  skuteczność można uzyskać samemu wymyślając algorytmy i systemy, a już same zlecenia niech realizuje ktoś inny (student, API itp)?

A co w przypadku “awarii” systemu, wykonania niepoprawnego zlecenia, niedomknięcia strategii opcyjnej lub zaistnienia innej nieprzewidzianej sytuacji (bo przecież aplikacje inwestorów indywidualnych nie przechodzą testów, kod nie jest bezbłędny)?

Sytuacji nieprzewidywalnych nie można oprogramować, wiec pozostaje przykładowy student z bogatą wiedzą z obszaru, w którym działa system, z decyzyjnością, dużym doświadczeniem i odpornością na stres. W innym przypadku pojawia sie istotny czynnik podnoszący ryzyko.

Tylko ze taki przykładowy student już dawno zajmuje się tym na własny rachunek, a nawet jeśli nie – będzie potrafił docenić wartość kodu, czy też odtworzyć zasady działania systemu.

Tak wiec z mojego punktu widzenia – czyli inwestora indywidualnego działającego na własny rachunek – nie mogę zgodzić sie z przekonaniem akurat tej części traderów, o której Pan mówi.

Jaka najgorsza  “wpadka” zdarzyła sie Panu w związku ze stosowaniem API?

Jestem w trakcie – choć nie jest to przypadek katastrofalny, to jednak najgorszy w krótkiej historii korzystania z API. Automat zasugerował sprzedaż części FW20Z10, które posiadam. Ruch spadkowy był jednak na tyle dynamiczny, że zlecenie się nie zrealizowało po interesującym mnie kursie. Na dzień dzisiejszy jest to łącznie około 600 pkt potencjalnej straty, więc przy założeniu, że nie byliśmy na jakimś średnioterminowym szczycie – do odrobienia w kilka sesji. Sytuację poprawia fakt, że transakcja wskazana przez aplikację była korzystna więc do części analitycznej nie można się przyczepić.

Co zasugerowałby Pan innym potencjalnym użytkownikom BossAPI?

Wykorzystany w bossAPI protokół komunikacyjny nie jest bardziej skomplikowany od innych, a nawet – ze względu na tekstowy charakter przesyłanych komunikatów – jest dużo prostszy do przyswojenia. Pamiętajmy jednak, że testy prowadzimy na własnych rzeczywistych rachunkach. Jest to znaczna różnica w stosunku do codzienności każdego programisty.

Podstawowe rady:

– Dokładnie przestudiować log NOL3 (nol3app.log).

– Przeprowadzić testowe transakcje, które nas interesują z poziomu www i zobaczyć jakie komunikaty są generowane.

– Zapoznać się z informacjami na forum i aktywnie z niego korzystać.

– W pierwszym etapie nie oddawać kontroli nad składaniem zleceń automatowi. U mnie w pierwszym etapie przygotowany do wysłania komunikat FIXML każdorazowo był wyświetlany na ekranie i podlegał akceptacji (zarówno zlecenia, jak i anulaty, czy modyfikacje).

– Przy instrumentach pochodnych – ograniczyć depozyt na koncie do minimalnego poziomu wymaganego do testów.

Ktoś może pomyśleć, że to przesada, ale chodzi o ochronę własnego kapitału w okresie eliminacji błędów, a kod o długości choćby kilkudziesięciu linii (mój ma ponad 2,5 tysiąca) żyje czasem własnym życiem, nawet jeśli nie działa w tak “rozproszonym” środowisku z jakim mamy tu do czynienia.

Dziękuję za rozmowę

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

8 Komentarzy

  1. exnergy

    Właśnie takie opinie są najcenniejsze – oby więcej takich wpisów się pojawiało.
    Problemy typu – awaria łącza, albo np. przerwanie sesji przez giełdę to są rzeczy, które mogą zaburzać działanie takich nazwijmy to systemów wspomagania decyzji. Mam nadzieję, że tak jak z udoskonalaniem notowania3pro i pluginów do Ami tak i z Api będziemy świadkami lepszej stabilności.

  2. Adam_S

    Jezeli rozmowca moze odpowiedziec, to prosze podac nazwy programow jakie sa potrzebne do polaczenia API z NOLem.
    Tzn Excel, NOL3, API i VB Express? Caly kod pisze w VB i w nim tworze polaczenie miedzy wszystkimi tymi programami?

  3. Raf

    Pewnie, że mogę. Kwestia anonimowości została podniesiona z uwagi na poruszone kwestie zawodowe, a nie chęć pozostania w konspiracji 🙂

    Wariantów jest nieograniczona ilość. Osobiście korzystam z VB, bo mam duże doświadczenie z VBA w Excelu i Access’ie i łatwiej było się przestawić niż przypominać sobie C++.

    Do stworzenia działającego programu wystarczy oprogramować przesyłanie komunikatów bossAPI z poziomu dowolnego współczesnego języka (np. VB) i działający NOL3. Reszta to dodatki, których zastosowanie ogranicza chyba tylko fantazja programisty.

  4. Adam_S

    Tak myslalem ze to ty 🙂

    Postaram sie w tym tyg sciagnac VB Express i sprobowac cos z tym zaczac…
    Ile czasu zajelo ci stworzenie pierwszej komunikujacej sie wersji?

  5. Raf

    Nie pamiętam dokładnie (kilka dni), ale prosto nie było – dobrze że mądrzejsi ode mnie na forum pomogli przebrnąć przez problemy. Jakby co służę pomocą, ale przenieśmy się na forum.

  6. raskoks

    Mam takie pytanie : czy do skladania zlecen przez automat – uzytkownik musi byc zalogowany do rachunku (przez WWW) czy zlecenia maja przeprowadzana autantykacje w “locie” (login haslko w aplikacji)?

  7. Raf

    Naprawdę polecam forum. Jest o tym w wątku “Używanie BossaAPI bez konieczności uruchamiania NOLa z przeglądarki?”. Jest konieczne zalogowanie przez WWW.

  8. deli deli

    Stoliczku, stoliczku ze Swarzędza nakryj się. Regalia Elektrimu wypatrzone przeze mnie w Chorzowie-Batorym, pokażcie się w Słońcu.
    Korzeń w śniegu teraz na leżach jako pamięć płodna. Cezura trzynastego pogrozi elitom bez czucia wiary i pamięci. Giełda nasza nie papierowa, nie z automatu jastrząb i sikorka.

Dodaj komentarz

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

Proszę podać wartość CAPTCHA: *