Strategie inwestycyjne w pytaniach czytelników

Eksperci od automatyzacji handlu odpowiadają na pięć pytań czytelników. Wśród poruszanych kwestii są m.in. wyniki stosowanych systemów i rady dla programistów.

Publikacja: 22.05.2015 08:10

Strategie inwestycyjne w pytaniach czytelników

Foto: GG Parkiet

Przez ostatnie dwa miesiące z pomocą ekspertów od automatyzacji handlu – Bartłomieja Górskiego i Tomasza Filipiaka – zaprezentowaliśmy w tym miejscu cykl sześciu artykułów pokazujących, jak wykorzystać narzędzia informatyczne do budowy strategii inwestycyjnych. Pokazaliśmy m.in., jakie możliwości daje język programowania MQL dostępny na platformach Meta Trader, jakie są wady i zalety korzystania z robotów inwestycyjnych, ile różnych parametrów może posiadać jeden system, na jakie niuanse zwracać uwagę podczas wyboru brokera, i w końcu – w jaki sposób testować skuteczność strategii na danych historycznych. Zdajemy sobie sprawę, że dokładne opisanie wszystkich wymienionych tu kwestii wymaga znacznie obszerniejszej formy publikacji niż jedna strona tygodniowo. Cykl miał jednak służyć zachęceniu czytelników do zgłębiania tematyki automatyzacji handlu, która na zachodnich rynkach jest już szeroko stosowana. Dobrze zaprojektowana i przetestowana strategia może niewątpliwie dawać wiele korzyści – od oszczędności czasu i nerwów po zadowalające wyniki.

Na zakończenie cyklu publikujemy pytania czytelników i odpowiedzi ekspertów związane z poruszanymi tu kwestiami. Spośród otrzymanych pytań wybraliśmy te, które naszym zdaniem były najciekawsze i najbardziej odnosiły się do tematyki automatyzacji handlu. Wiele osób pytało o wyniki systemów stosowanych przez Górskiego i Filipiaka, dlatego obaj panowie zaprezentowali linię kapitału dla najdłużej działającego robota. Początkujący programiści pytali o to, jak zacząć przygodę z środowiskiem języka MQL. Obok znajdują się odpowiedzi na pięć wybranych pytań.

[email protected]

Współautorami artykułów o automatyzacji handlu są prywatni inwestorzy Tomasz Filipiak oraz Bartłomiej Górski.

Bartłomiej Górski z wykształcenia jest programistą. Zanim zajął się budowaniem automatycznych strategii inwestycyjnych, pracował w dziale informatycznym dużej korporacji. Zdobytą wiedzę wykorzystał do budowania algorytmów, które wraz z Filipiakiem stosują od kilku lat na rynku forex, zarabiając w ten sposób na życie.

Tomasz Filipiak z wykształcenia jest doktorem chemii. Na rynkach inwestuje od połowy lat 90. Choć na początku grał zupełnie manualnie, to teraz w głównej mierze bazuje na automatyzacji handlu. Przy projektowaniu strategii wykorzystuje swoje wieloletnie doświadczenie. Często prowadzi wykłady na konferencjach dla inwestorów indywidualnych oraz w ramach szkoleń Instytutu Rynku Kapitałowego i Szkoły Giełdowej na GPW. PZ

Pytania od czytelników:

1. Po lekturze artykułów zastanawiam się nad rozpoczęciem nauki programowania. Chciałbym się dowiedzieć, w jaki sposób zacząć? Czy możecie zaproponować jakąś literaturę na początek? Poza tym, czy od razu powinienem się uczyć MQL? Myślałem też nad AmiBrokerem.

Programowanie to przede wszystkim umiejętność rozwiązywania skomplikowanych problemów w najszybszy i najprostszy sposób. Naukę programowania należy zatem rozpocząć od zdobycia umiejętności budowania algorytmów. Wybór konkretnego języka programowania zależy już typowo od indywidualnych preferencji osoby programującej. Język MQL jest oparty na języku C. Podstawy obu języków (czyli np. typy zmiennych, pętle, budowa instrukcji warunkowych itp.) są niemalże identyczne, a mnogość przykładów dostępnych w internecie przemawia właśnie za wykorzystaniem języka MQL. Na stronie http://book.mql4.com/ znajduje się podstawowy kurs programowania na platformę Metatrader omawiający wszystkie niezbędne zagadnienia potrzebne do napisania własnych narzędzi. Poza kursem znajdziemy tam również „Code Base", czyli ogólnie dostępny zbiór gotowych wskaźników, skryptów i automatów, które można wykorzystać np. w celach edukacyjnych.

2. Nie chciałbym przekazywać swoich pieniędzy automatowi, ale strategie półautomatyczne bardziej mi odpowiadają. Czy mogą panowie zaproponować na początek (jestem początkującym inwestorem) jakiś prosty system, który mógłbym testować na demo i ulepszać w miarę upływu czasu? Chodzi o coś już sprawdzonego, a jednocześnie niezbyt skomplikowanego.

Na początek proponujemy zastosowanie strategii, którą opisaliśmy w jednym z naszych artykułów (Inside Bar). Sygnał płynący ze słupków może być z powodzeniem zastosowany w handlu półautomatycznym czy ręcznym. System został przez nas sprawdzony i na parze walutowej NZD/USD daje bardzo dobre wyniki. Krzywa kapitału została zaprezentowana w odcinku: „Wady i zalety automatyzacji handlu na rynkach finansowych".

3. Pracuję nad strategią wykorzystującą zniesienia Fibonacciego, ale mam pewien problem, który utrudnia mi pracę. Kiedy nakładam zniesienie Fibonacciego na wykres w skali arytmetycznej, a następnie zmieniam skalę na logarytmiczną, to te zniesienia nie wypadają w tych samych miejscach. Te rozbieżności są tym większe, im większe są zmiany kursu. Czy to możliwe, czy to błąd programu (używam MetaStocka)? Bo z tego, co wiem, zniesienia Fibo dzielą po prostu odcinek i operują wartościami bezwzględnymi, tzn. nie liczy się zmiana procentowa, tylko odległość liczbowa. Problem wydaje się błahy, ale w testach dostaję przez to różne wyniki. Czy lepiej stosować skalę logarytmiczną czy arytmetyczną?

Różnice wynikające z podejścia logarytmicznego oraz arytmetycznego doskonale obrazuje następujący załączony obrazek „Proporcje długości fal – WIG20". Na rysunku przedstawiono wykres WIG20 w okresie marzec 2008–marzec 2009, gdzie na osi Y zastosowaliśmy skalę logarytmiczną. Wówczas to mieliśmy do czynienia z silną, pięciofalową sekwencją spadkową. Jak widać, fala pierwsza i trzecia są sobie niemalże równe pod względem długości wyrażonej w punktach (podejście arytmetyczne). Wzajemny stosunek długości fal wyrażony w procentach spadku daje się opisać jednym z najważniejszych współczynników geometrii Fibonacciego: 0.618 (podejście logarytmiczne). Oba te fakty potwierdziły uformowanie końca całej długiej sekwencji spadkowej zgodnie z teorią fal Elliotta. W tym przypadku warto było się posłużyć jednym i drugim podejściem. To od tradera zależy, czy chce porównywać wartości punktowe czy procentowe. Paweł Danielewicz, autor dwóch książek o geometrii Fibonacciego, w swoich analizach stosuje jedynie podejście arytmetyczne.

4. Jaka jest zyskowność waszych systemów? Czy możecie podać konkretne statystyki – zyski, obsunięcia, serie strat i zysków itp.? Jakie są graniczne wartości tych parametrów, po których decydujecie się wyłączyć dany system?

Jako praktyczny przykład podamy statystyki naszego automatu najdłużej działającego na rynku (patrz wykres linii kapitału). Powyższy wynik został osiągnięty na instrumencie cfd na niemiecki indeks DAX w okresie od stycznia 2012 do maja 2015 r., wielkość pozycji to jeden lot. Dla prawidłowej oceny tych statystyk wyraźnie trzeba zaznaczyć, że strategia wykorzystuje zamknięcia parcjalne, które przez moduł analityczny MT4 są traktowane jako całkowicie odrębne transakcje. Nasze procedury wyłączania strategii są nieco bardziej skomplikowane (wieloetapowe) i opierają się na wielu czynnikach.

5. Chciałbym zastosować podejście, nazwijmy to, „ruletkowe". Chodzi mi o wyszukiwanie konkretnych sekwencji świec – wzrostowych i spadkowych, a następnie oczekiwanie, że kolejna świeca przerwie dotychczasową sekwencję. Czy można w MQL zaprogramować i przetestować na danych historycznych coś w rodzaju sygnalizatora takich sekwencji? Przykładowo, że będzie on wysyłał alert, gdy na jednym z obserwowanych rynków pojawi się sekwencja, powiedzmy, pięciu spadkowych świec pod rząd? Logika takiego podejścia miałaby polegać na grze wbrew dotychczasowemu trendowi/sekwencji świec. Czy panów zdaniem tego typu gra wbrew trendowi może być opłacalna? Czy zwiększanie pozycji w sytuacji, gdy np. po piątej świecy nie nastąpi zwrot, jest dobrym wyjściem? Innymi słowy – jaki sposób zarządzania wielkością pozycji panowie by tu zaproponowali?

Rynki rządzą się pewnymi prawami, a właściwe wykorzystanie powtarzających się sekwencji może prowadzić do stworzenia zyskownego systemu handlowego. W jednym z artykułów cyklu opisaliśmy narzędzia do monitorowania rynku i wysyłania określonych alertów. Wszystkie opcje, które zostały wymienione w pytaniu, są możliwe do zaprogramowania. Jedynym limitem jest tu wyobraźnia projektanta. Narzędzie może być oczywiście stworzone w taki sposób, aby monitorowało wiele rynków jednocześnie. Odnosząc się do pytania o opłacalność takiego podejścia, naszym zdaniem gra z trendem jest o wiele bardziej skuteczna i opłacalna. Gra przeciwko trendowi niesie ze sobą zdecydowanie większe ryzyko. Każdy pomysł na handel automatyczny, jeżeli zostanie przejrzyście zdefiniowany, może być zbadany na danych historycznych i potwierdzony w teście out of sample. Zaproponowany wyżej pomysł związany z formacjami powstającymi przy użyciu świec japońskich może być dobrym początkiem do budowy automatu. W kwestii zarządzania pozycją odradzamy zwiększanie pozycji dla sygnału, który aktualnie jest na stracie. Takie podejście bywa bardzo złudne i może prowadzić do bolesnych strat.

Inwestycje
Trzy warstwy regulacji
https://track.adform.net/adfserve/?bn=77855207;1x1inv=1;srctype=3;gdpr=${gdpr};gdpr_consent=${gdpr_consent_50};ord=[timestamp]
Inwestycje
Jak przeprowadzić spółkę przez spór korporacyjny?
Inwestycje
Porozumienia akcjonariuszy w spółkach publicznych
Materiał Promocyjny
Cyfrowe narzędzia to podstawa działań przedsiębiorstwa, które chce być konkurencyjne
Inwestycje
Unikanie sporów potransakcyjnych