Prawdziwa historia budowy automatycznego systemu

Transkrypt

Prawdziwa historia budowy automatycznego systemu
 Dr Tomasz Filipiak Prawdziwa historia budowy automatycznego systemu transakcyjnego -­ studium przypadku Konferencja Profesjonalny Inwestor, Władysławowo 27 -­‐29.11.2009
Szanowni Państwo, Rok temu podczas poprzedniej edycji konferencji Profesjonalny Inwestor zaprezentowałem Państwu formację, której wykorzystanie podczas panującej wtedy bessy mogło przynieść znaczne zyski. W czasie WallStreet13 w czerwcu 2009, przedstawiłem gotową już strategię inwestycyjną o nazwie BlackBody (BB), bazującą na wykorzystaniu tejże formacji wraz z jej odbiciem lustrzanym. Ponadto zwróciłem uwagę, że ze względu na jasno określone kryteria wejścia na rynek, zamknięcia pozycji oraz ustawienia linii obrony można ją zaimplementować na jedną z dostępnych w Polsce platform elektronicznych. W ten oto sposób BlackBody doczekała się swojej wersji automatycznej grającej na instrumencie CFD na kontrakty na WIG20. W międzyczasie, wykorzystując zalety programu Metatrader oraz języka programowania MQL4 udało się wprowadzić do strategii bardzo wiele parametrów, które pozwoliły zbadać wypływ wielu czynników na poziom zysku, obsunięcia kapitału itp. Przedmiotem moich warsztatów będzie przedstawienie Państwu wyników prac analitycznych nad automatyczną strategią BlackBody oraz niewątpliwych korzyści płynących z zaimplementowania do kodu szeregu parametrów, których wykorzystanie może wpłynąć na zwiększenie efektywności jej działania. Opracowana przy tym metodologia ma charakter uniwersalny i może być wykorzystana do analizy każdej innej strategii. Zaprezentowany poniżej materiał nie jest streszczeniem warsztatów. Jego wcześniejsza lektura oraz wykorzystanie bezpośrednio podczas zajęć ma jedynie pomóc w właściwym odbiorze zaprezentowanych treści. Serdecznie zapraszam, Dr Tomasz Filipiak
1. Krótki opis strategii BlackBody w wersji klasycznej Strategia BB wykorzystywana jest do gry krótkoterminowej na najbardziej płynnej serii kontraktów terminowych na WIG20. Gra na danej serii toczy się aż do jej wygaśnięcia. Pozycje otwarte podczas danej sesji są zawsze zamykane tego samego dnia. Strategia nie otwiera pozycji w dniu, w którym otwarcie sesji nastąpiło dokładnie na poziomie wczorajszego zamknięcia. Wielkość pozycji otwieranej na każdej sesji jest taka sama, uzależniona jedynie od założeń inwestora. Ze względu na fakt, że inwestowany jest jedynie depozyt zabezpieczający należy pamiętać, aby na rachunku znajdowały się dodatkowe środki niezbędne do jego uzupełnienia podczas możliwych obsunięć. Strategia zajmuje pozycję krótką SBB (rys.1), gdy rynek otworzy się powyżej wczorajszego zamknięcia oraz gdy co najmniej jedna dziesięciominutowa świeca zamknie się powyżej dzisiejszego otwarcia. Miejscem zajęcia pozycji będzie poziom usytuowany jeden punkt poniżej otwarcia notowań. Stop dla pozycji zostaje ustawiony punkt powyżej dotychczasowego dziennego maksimum, natychmiast po potwierdzeniu realizacji zajęcia pozycji krótkiej. Jeśli w trakcie sesji doszłoby do aktywacji zlecenia zabezpieczającego, to ponowny spadek przez poziom, na którym uprzednio została otwarta pozycja obliguje do ponownego jej zajęcia, niezależnie od ilości wcześniej zajmowanych transakcji. Nowy S/L ustawiany jest na poziomie aktualnego dziennego maksimum powiększonego o jeden punkt. Zamknięcie pozycji następuje o godzinie 16.09, na minutę przed zakończeniem notowań ciągłych. Rys.1 Short BlackBody (SBB) Strategia zajmuje pozycję długą LBB (rys.2), gdy rynek otworzy się poniżej wczorajszego zamknięcia oraz gdy co najmniej jedna dziesięciominutowa świeca zamknie się poniżej dzisiejszego otwarcia. Miejscem zajęcia pozycji będzie poziom usytuowany jeden punkt powyżej otwarcia notowań. Stop dla pozycji zostaje ustawiony punkt poniżej dotychczasowego dziennego minimum, natychmiast po potwierdzeniu realizacji zajęcia pozycji długiej. Jeśli w trakcie sesji doszłoby do aktywacji zlecenia zabezpieczającego, to ponowny wzrost przez poziom, na którym uprzednio została otwarta pozycja obliguje do ponownego jej zajęcia, niezależnie od ilości wcześniej zajmowanych transakcji. Nowy S/L ustawiany jest na poziomie aktualnego dziennego minimum pomniejszonego o jeden punkt. Zamknięcie pozycji następuje o godzinie 16.09, na minutę przed zakończeniem notowań ciągłych. Rys.2 Long BlackBody (LBB) 1. Automatyzacja strategii inwestycyjnej W życiu każdego inwestora prędzej czy później pojawia się pomysł zbudowania własnej strategii inwestycyjnej. Wcześniejsza długotrwała obserwacja rynku, analiza różnych warunków otwarcia i zamknięcia pozycji, ustalenia poziomu obrony bardzo w tym pomagają. W tym procesie oczywista staje się konieczność zbierania ogromnej ilości danych potrzebnych do testowania i weryfikacji wyników jej działania (backtesting). Jeśli strategia okaże się zyskowna pozostaje wykorzystać ją w praktyce. Aby doszło do ostatecznego przełożenia między wynikami uzyskiwanymi w teorii a faktycznym zarabianiem pieniędzy musi być spełniony bardzo ważny warunek. Każde założenie systemu musi być bezwzględnie respektowane. Jeśli tak się nie dzieje, dość często okazuje się, że teoretycznie zyskowna strategia w praktyce traci. Ponadto zawsze należy mieć na uwadze, że obecne warunki rynkowe mogą różnić się od tych, które panowały podczas budowania systemu i być może trzeba je będzie wziąć pod uwagę podczas modyfikacji założeń. Dość poważnym powodem strat jest brak konsekwencji inwestora w przestrzeganiu zasad strategii. Wahanie inwestora podczas otwierania pozycji na rynku często kończy się zbyt późno zawartą transakcją lub nawet jej brakiem. Niechęć do natychmiastowego wystawienia zlecenia zabezpieczającego po zajęciu pozycji, brak czasu na wnikliwą obserwację rynku to kolejne psychologiczne uwarunkowania stojące za niepowodzeniami. Częstym problemem wielu inwestorów, dla których inwestowanie nie jest jedynym źródłem dochodów jest brak czasu. Codzienne obowiązki związane z pracą zarobkową, studiami, krótkoterminowymi wyjazdami czy chorobą powodują, że nie są oni w stanie konsekwentnie wypełniać wcześniejszych ustaleń . Zastosowanie automatycznej strategii nie pozwoli na wyżej opisane sytuacje. Jeśli posiadamy zyskowną strategię inwestycyjną to w czasie, kiedy zajmujemy się pracą, nauką lub odpoczynkiem automatyczny system transakcyjny samodzielnie będzie pilnował realizacji wszystkich założeń. Cechami, które predestynują systemy automatyczne do skutecznego wykorzystania na rynku są: -­‐ stałe śledzenie rynku bez udziału inwestora, -­‐ zawieranie odpowiednich transakcji we właściwym momencie, -­‐ automatyczne natychmiastowe ustawianie zleceń zabezpieczających, -­‐ zarządzanie kapitałem i wielkością pozycji, -­‐ brak wpływu emocji na sposób zawierania transakcji, Przedstawiając zalety systemów automatycznych nie sposób nie wspomnieć też o wadach i zagrożeniach wynikających z ich stosowania. Podstawowym zagrożeniem jest zmiana warunków rynkowych, przy których strategia się sprawdzała. Taka sytuacja może doprowadzić do strat, dlatego też należy stale monitorować wyniki systemu. Należy również zaplanować wcześniej moment, w którym dokonamy kontrolowanego wyłączenia w celu wprowadzenia do niego niezbędnych zmian. Systemy automatyczne są również narażone na bardzo prozaiczne niebezpieczeństwa, przy których stają się nieskuteczne. Należy do nich chociażby utrata dostępu do Internetu lub czasowy brak zasilania komputera. Wydaje się jednak, że przewaga zalet jest na tyle duża, że nie ma wątpliwości, co do korzyści ze stosowania tego typu narzędzi w praktyce. Automatyzacja procesu inwestycyjnego pozwala zaoszczędzić czas i nerwy inwestorów. Rys.3 Schemat blokowy obrazujący proces budowania, testowania i wykorzystania automatycznej strategii inwestycyjnej. 2. Parametry w automatycznej strategii BlackBody – KombajnBB Wyjaśnienie: Nazwa KombajnBB powstała spontanicznie podczas prac nad wprowadzaniem do kodu strategii AutoBB całego szeregu parametrów, które pozwoliły zbadać wiele zależności między zachowaniem rynku a jej wynikami. Wszystkie nazwy przedstawionych poniżej parametrów są nazwami własnymi i nie są wyrażeniami składni języka MQL4. Wszystkie odległości między poszczególnymi pozio-­‐
mami (odsunięcia, długości, dystanse) podawane są w punktach (1 pkt. = 10 zł.) UID – unikalny identyfikator strategii; MaxLots – maksymalna wielkość pozycji wyrażona liczbą lotów; ShiftSL – odsunięcie S/L od poziomu dotychczasowego maksimum (dla SBB) albo minimum (dla LBB); ShiftOpen – odsunięcie poziomu, przy którym strategia zajmie pozycję od otwarcia notowań; CloseHour – godzina zamknięcia pozycji; CloseMinutes – minuta zamknięcia pozycji; OpenHour – godzina, od której strategia bada rynek pod kątem zajęcia pozycji; OpenMinutes – minuta, w godzinie określonej w parametrze OpenHour, od której strategia bada rynek pod kątem zajęcia pozycji; NoTrnHour – godzina, od której strategia nie otworzy nowej pozycji; NoTrn Minutes – minuta w godzinie określonej w parametrze NoTrnHour, od której strategia nie otworzy nowej pozycji; TmpSLHourFrom – godzina, o której ustawiony zostanie tymczasowy S/L; TmpSLMinutesFrom – minuta w godzinie określonej w parametrze TmpSLHourFrom, o której ustawiony zostanie tymczasowy S/L; TmpSLHourTo – godzina, o której zostanie usunięty tymczasowy S/L; TmpSLminutesTo – minuta w godzinie określonej w parametrze TmpSLHourTo, o której zostanie usunięty tymczasowy S/L; TmpSL – odległość ustawienia S/L od bieżącego kursu; MaxSL – maksymalna wartość S/L w chwili otwierania pozycji; MinGap – minimalna odległość między wczorajszym zamknięciem a dzisiejszym otwarciem, poniżej której strategia danego dnia nie zajmie pozycji; MaxGap – maksymalna odległość między wczorajszym zamknięciem a dzisiejszym otwarciem, powyżej której strategia danego dnia nie zajmie pozycji; FirstBody – minimalna długość korpusu pierwszej w danym dniu piętnastominutowej świecy, przy której strategia będzie mogła zająć pozycję; FirstCandle – minimalna długość pierwszej w danym dniu piętnastominutowej świecy, przy której strategia będzie mogła zająć pozycję; DistanceToOpenFrom – minimalna odległość między maksimum (dla SBB) / minimum (dla LBB) a otwarciem notowań, która jest niezbędna, aby można było wejść na rynek; DistanceToOpenTo – maksymalna odległość między maksimum (dla SBB) / minimum (dla LBB) a otwarciem notowań, która jest niezbędna, aby można było wejść na rynek; MyProfit_1 – poziom zysku z pierwszej otwartej danego dnia pozycji, przy którym zostanie ustawiony nowy S/L, aby w przypadku cofnięcia rynku wziąć wcześniej ustalony zysk; MyTakeProfit_1 – poziom wcześniej ustalonego zysku z pierwszej otwartej pozycji, który zostanie zrealizowany po uprzednim aktywowaniu S/L MyProfit_2 – znaczenie jak MyProfit_1, z ta różnicą, że dotyczy drugiej otwartej pozycji danego dnia; MyTakeProfit_2 – znaczenie jak MyTakeProfit_1, z ta różnicą, że dotyczy drugiej otwartej pozycji danego dnia; Lot_1 ÷ Lot_5 – wielkość kolejno otwieranych pozycji wyrażona w lotach; DayDouble – podwajanie podstawowej wielkości pozycji po zyskownym dniu; ResetAfterDouble – anulowanie podwajania pozycji po drugim zyskownym dniu; Friday_0 – jeśli pierwszym dniem zyskownym był piątek, parametr anuluje dublowanie wielkości pozycji w poniedziałek; FromTransaction – możliwość zawarcia pierwszej transakcji dopiero od kolejnego sygnału strategii (np. dopiero od drugiego) MaxTransactions – maksymalna ilość transakcji otwierających pozycję na rynku danego dnia; StayLonger – parametr, którego włącznie sprawi, że jeśli tuż przed godziną 16.09 jest otwarta pozycja, która jest równa parametrowi MaxTransactions, system pozostawi ją do następnej sesji – tego dnia pozycja nie zostanie zamknięta; SBB_OFF – parametr wyłączający SBB (nie będą grane krótkie pozycje); LBB_OFF – parametr wyłączający LBB (nie będą grane długie pozycje); Debug – parametr techniczny, który pozwala analizować zachowanie się strategii (nie wpływa na jej działanie); WriteProfit – zapisuje do pliku informacje o dziennym zysku bądź stracie co pozwala na rysowanie krzywej kapitału.