Automatyczny system inwestycyjny, to program zapisany w dowolnym języku do opisu i wyliczania giełdy. AFL, MQL, język Metastocka, a nawet Pascal i C. Jego podstawowym zadaniem jest obliczanie poziomów, średnich,  wskaźników lub oscylatorów, oraz podejmowanie decyzji. Skoro tak ...

Data dodania: 2011-04-02

Wyświetleń: 1885

Przedrukowań: 0

Głosy dodatnie: 0

Głosy ujemne: 0

WIEDZA

0 Ocena

Licencja: Creative Commons

To musisz mieć pewność, że Twój zaprogramowany system naprawdę robi to, co myślisz, że robi. Najlepiej sprawdzanie zacząć już na samym początku. Znacznie trudniej jest sprawdzić cały gotowy system, kiedy ma on już niejednokrotnie wiele ekranów kodu.

Dobrze jest w tym celu używać narzędzi wizualnych. Mózg człowieka dużo szybciej rozumie obrazy, najlepiej kolorowe niż tekst. W dodatku tekst syntetyczny, bez płynności, bez zdań z całą ich składnią służącą oddaniu treści. A przecież właśnie czymś takim jest kod programu.

Takim wizualnym narzędziem jest na przykład program Amibroker. Kiedy zaczynasz tworzyć kod, wystarczy wcisnąć przycisk "Apply indicator" u góry w pasku narzędziowym i już widzisz swój kod w działaniu. Oczywiście kod pokaże coś w okienku na wykresy tylko wtedy, gdy każesz mu coś rysować.

Tak więc na dobry początek zawsze każ rysować sam wykres ceny.
Obojętne, czy będzie to wykres liniowy cen zamknięcia, czy będą to świece, czy słupki. Chodzi tylko o to, żeby potem widzieć odniesienie kresek systemu do zachowań rynku. Wykres ceny powinien być ciemny (najlepiej czarny) jeżeli ma być brany pod uwagę w obliczeniach. Jeżeli ma być tylko tłem, a sama cena nie bierze udziału w decyzji, narysuj go kolorem jasnym. Niech nie dominuje na wykresie. Może to być kolor żółty lub złoty.

Następnie narysuj podstawowe składowe.
Korzystasz z poziomów czy średnich? Narysuj je kolorowymi liniami. Jeżeli poziom jest ważny dla sygnału kupna, narysuj go kolorem zielonym. Jeżeli dla sprzedaży, czerwonym. Nich linie na pierwszy rzut oka wskazują jaką mają rolę.

Średnie czy poziomy powinny być rysowane we wspólnej skali z wykresem. Jednak gdy w systemie używasz wskaźników lub oscylatorów które przyjmują inne wartości niż cena, zastosuj oddzielną skalę. Np jeżeli narysujesz ROC w jednej skali z wykresem FW20, wykres stanie się nieczytelny. Samo ROC oscyluje koło zera, a FW20 przebywa na wartościach kilkutysięcznych. W efekcie zobaczysz u góry okienka bardzo wąski wykres FW20, a u samego dołu ROC. Wszystko ściśnięte prawie w poziomą kreskę.

Także pamiętaj. Jeżeli dany element systemu wymaga oddzielnej skali zastosuj ją. Niech wykres będzie dalej czytelny, a rysunki wyraźne.

Teraz czas na podstawowe sygnały.
W miejscach podejmowania decyzji, czy to przecięcie dwóch elementów, czy osiągnięcie pewnego poziomu rysuj strzałki lub inne znaczki.

Wszędzie, gdzie ma nastąpić sygnał kupna rysuj zielone strzałki w górę. W miejscach sprzedaży rysuj czerwone strzałki w dół. Np. w systemach dwukierunkowych, gdzie zamknięcie pozycji nie koniecznie jest otwarciem pozycji przeciwnej stosuję oddzielnie strzałki pełne dla kupna (buy) i pozycji krótkiej (short), a strzałki puste w środku dla sprzedaży (sell) i dla zamknięcia pozycji krótkiej (cover). Ważne, żeby każdy element na wykresie był odróżnialny. Żebyś w dalszym etapie nie musiał się zastanawiać "co oznacza ta strzałka?". To musi wynikać z rysunku precyzyjnie.

Dodatkowo jeszcze, w bardziej skomplikowanych systemach dobrze jest wprowadzić rozróżnienie i ukrywanie.
Rozróżnienie decyduje o ważności elementu. Linie podstawowe kreśl linią cienką, linie ważniejsze, wynikające z metody obliczeń kreśl kreską grubszą, nawet gdy trzeba dodaj na niej dodatkowe pogrubione punkty. Ma być czytelnie, a w dużej ilości linii trudniej to uzyskać. Tak samo dostosuj jaskrawość kolorów do ważności linii.

Przykład z życia wzięty. Podążający stop wyliczany z ATR. Sama odległość ATR daje pod lub nad wykresem ceny zygzakowatą linię, która otacza cały czas wykres. Ją zawsze kreślę jasną cienką linią. Jest tylko podstawą dalszych obliczeń. Dopiero wynikający z niej stop, który podąża za wykresem, a nigdy się z ATR nie cofa rysowany jest linią grubszą, tu dodatkowo kropkowaną.

Druga sprawa to ukrywanie. Również konieczne przy wielu rysowanych liniach. Jeżeli linii jest np. 5, to jeszcze możesz widzieć wszystkie na ekranie. Jednak gdy będzie ich np. 30, to zobaczysz jedynie "sieczkę" zamiast wizualnej podpowiedzi. Wtedy musisz ukrywać linie tam, gdzie nie są one potrzebne. Niech będą widoczne tylko na tych fragmentach wykresu, gdzie biorą udział w podejmowaniu decyzji. Choćby jak w przykładzie powyżej. Zauważ, że czerwone kropki ATR Stop są nad wykresem tylko po sygnale pozycji krótkiej, a pod wykresem tylko po sygnale pozycji długiej.

To wszystko można i warto dodawać do kodu programu. Dzięki temu cały czas w trakcie tworzenia możesz sprawdzać wizualnie co Twój kod robi. Dzięki temu wyeliminujesz potencjalne błędy już na etapie tworzenia fragmentów kodu. Uwierz, że w ten sposób zaoszczędzisz sobie wielu frustracji. Frustracji do której dojdzie gdy okaże się, że gotowy system pisany bez wizualnego sprawdzania daje sygnały w złych miejscach lub po złych cenach.

Licencja: Creative Commons