Systemy automatyczne (EA) część 3/4

1986

Budowa własnego automatu transakcyjnego, definiowanie założeń, zaprogramowanie systemu, back testy, optymalizacja, testowanie na demo oraz live.

W tym miejscu dla wielu osób zaczynają się schody. Do napisania własnej strategii musimy posiadać podstawową wiedzę z zakresu programowania. Najpopularniejszym językiem programowania EA jest MQL (MetaQuotes Language). Używany jest on na platformie MetaTrader4, programie najczęściej używanym przez brokerów do handlu walutami. Istnieją oczywiście inne języki programowania przeznaczone na inne platformy, na których też da się stworzyć swoje własne roboty. Taką alternatywą dla MQL jest np. język C#, używany np. w NinjaTrader. W tym miejscu osoby z mała wiedzą z zakresu programowania mogą pomyśleć, że to jednak nie dla nich. Nic bardziej mylnego, dla takich inwestorów też jest nadzieja. Mowa o Visual Builderach, czyli specjalnych skryptach, dzięki którym bez znajomości języka MQL lub C# można zaprogramować swoją własną strategię. Są to programy, do których wystarczy wpisać założenia, jakimi ma się kierować nasz system, a on automatycznie przekształca to na język przypisany do konkretnej platformy. Jest to ogromne ułatwienie dla początkujących osób zainteresowanych tematem. Wynikiem końcowym jest w pełni działająca strategia, do której mamy pełen wgląd, co pozwala modyfikować kod w późniejszym okresie. Co prawda możliwości są w pewnym stopniu ograniczone, aczkolwiek można na nich stworzyć średnio-zaawansowane strategie, bądź też szkielet strategii zaawansowanej w celu jej dalszych ręcznych modyfikacji.

Do budowy systemu potrzebujemy oczywiście strategii oraz założeń, jakimi ma się kierować nasz robot przy składaniu zleceń. Mogą to być przecięcia średnich, sygnały kupna i sprzedaży na oscylatorach czy też przebicia ostatnich ekstremów cenowym. Wszystko da się dowolnie ustawić, a także połączyć kilka założeń, aby się wzajemnie uzupełniały. Jednak nie tylko naskładaniu zleceń powinna się skupić uwaga przy budowaniu systemu. Wielu doświadczonych uczestników rynku wskazuje na zamknięcie pozycji, jako najważniejszy element udanej transakcji. Tak jak w normalnym handlu mamy do dyspozycji zamknięcie za pomocą zleceń Stop Loss, Take Profit bądź Trailing Stop, możemy zamknąć także w momencie pojawienia się sygnału otwarcia pozycji przeciwstawnej, dzięki czemu będziemy cały czas na rynku. W wypadku, kiedy strategia nie stosuje stop lossów i przetrzymuje stratne pozycje np. w poszukiwaniu sygnału odwrócenia, to warto zobaczyć na testach historycznych, jaka jest maksymalna strata bezwzględna takiej strategii oraz ile wynosiła największa pojedyncza strata. Pozwoli to uniknąć przykrych niespodzianek w wypadku niedoszacowania odpowiedniej ilości kapitału oraz wolumenu poświęconego w jednej transakcji. Parametry te także możemy odpowiednio zaprogramować, EA sam będzie ustalał wolumen w zależności np. od wolnego kapitału czy stanu naszych pozycji.

Układając system nie nastawiajmy się raczej na to, że będzie on uniwersalny na każdy trend oraz parę walutową. Niektórzy mogą się z tym nie zgodzić, na każdym rynku może być przecież inny trend. Z naszych obserwacji i testów różnych strategii wynika, że zupełnie inaczej działają roboty na GBP/USD, czyli popularnym kablu, a inaczej na parach powiązanych z JPY czy NZD. Pamiętajmy o tym, kiedy tworzymy strategię, która dobrze sprawdza się, gdy wykres przebywa większość czasu w trendzie bocznym lub też taką gdzie wykres silnie rośnie bądź spada.

Jednym z podstawowych problemów, z jakimi stykamy się w Admiral Markets odnośnie automatyki handlu jest niedostosowanie robotów przez ich ‘opiekunów’ do charakterystyki platformy ECN. Programując pamiętajmy o innym kwotowaniu (do piątego miejsca po przecinku) oraz o tym, aby nie ustawiać zlecenia Stop Loss i Take profit w momencie otwierania zlecenia za pomocą egzekucji natychmiastowej. Zlecenie nie zostanie wtedy zrealizowane. Aby ustawić te poziomy, zlecenie musi być oczekującym bądź też robot musi je po otwarciu zmodyfikować dodając SL i TP.

Mając ustalone pierwsze parametry, możemy przystąpić do pierwszych z wielu testów na danych historycznych. Da nam to potencjalny obraz czy strategia ma sens oraz czy dobrze wprowadziliśmy założenia. Po przeprowadzeniu testów otrzymamy kilka wartościowych informacji. Po pierwsze raport, na którym należy uważnie przeanalizować następujące wartości: maksymalna strata względna, czyli maksymalne osunięcie kapitału (informacji istotna w wypadku kiedy systemowi oprócz sumarycznego zysku zdarzają się też duże straty, co w wypadku niekorzystnych okoliczności może doprowadzić do wyczyszczenia konta zanim system zacznie zarabiać). Całkowity zysk i przewidywany zysk to dwie liczby, które pozwolą nam wstępnie ocenić czy podążamy w dobrym kierunku. Dodatnie wartości to dopiero początek drogi, do której dochodzi optymalizacja, analiza każdej transakcji na wykresie historycznym oraz testowanie EA na koncie demo w realnych warunkach rynkowych, a następnie prawdziwy test na koncie LIVE.

Robot Forex EA -Systemy automatyczne cz.4