Jak zbudować automatyczny dziennik tradera? (cz. 1)

imagesZapewne każdy z nas słyszał o dzienniku tradera. Tylko zapisując na bieżąco szczegóły danej transakcji, jesteśmy w stanie śledzić swoje postępy. Narzędzie to jest szczególnie użyteczne z punktu widzenia początkującego użytkownika, ale dzisiaj pokażemy, że także bardziej zaawansowani gracze mogą znaleźć coś dla siebie.

Czym jest dziennik tradera?

Najprościej mówiąc, jest to zapis (mniej lub bardziej szczegółowy) naszych kolejnych transakcji na rynku walutowym. Wielu graczy w tym miejscu zapewne spróbuje przekonać samych siebie, że tak naprawdę narzędzie takie jest im niepotrzebne, gdyż świetnie orientują się w sytuacji na rynku i doskonale wiedzą, dlaczego otworzyli dane zlecenie. No dobrze, a co, gdy takich zleceń są dziesiątki? Czy w danym momencie bez najmniejszego problemu każdy gracz jest w stanie przypomnieć sobie sytuację panującą na rynku miesiąc temu na parze walutowej EURUSD? Do tego świetnie nadaje się dziennik tradera. Jest on jednak skuteczny tylko wtedy, gdy cały opis zlecenia, wszystkie jego modyfikacje, są przygotowywane na bieżąco. Niestety, w wielu przypadkach, o ile sam moment złożenia zlecenia jest jeszcze analizowany, to już modyfikacje takiej otwartej pozycji nierzadko nam umykają.


W przypadku strategii automatycznych sprawa wygląda jeszcze gorzej. Przecież na platformie MetaTrader dostępny jest tester strategii. Wystarczy przygotowaną wcześniej strategię uruchomić na testerze - jeżeli wyniki są dla nas zadowalające, strategia uruchamiana jest na koncie i... no właśnie, w tym momencie przestajemy zwracać uwagę na program działający w tle, nie zapisujemy szczegółowo otwartych zleceń, a o śledzeniu modyfikacji zlecenia nikt już nawet nie myśli.

Jednym z rozwiązań (bardzo popularnych zresztą) w przypadku strategii automatycznych jest alarm - w postaci sygnału dźwiękowego, informujący użytkownika o nowej sytuacji na rynku. Może to być zbliżenie się kursu do ważnego poziomu cenowego, przebicie linii trendu itp. Najczęściej skutkuje to oczywiście zwróceniem uwagi gracza na wykres cenowy. Niestety z reguły nie prowadzi to do żadnych dalszych działań z punktu widzenia użytkownika, a przecież nie o to chodzi - alarm powinien sprowokować jakąś reakcję, powinien nas zmobilizować do przeanalizowania i skomentowania sytuacji na rynku tak, aby za jakiś czas bez problemu określić ewentualne wady strategii. Śledząc na bieżąco otwartą pozycję, widząc w szczególności zmiany wartości stop loss oraz take profit, jesteśmy w stanie wyłapać najistotniejsze wady strategii. Przykład? Duża liczba zleceń zamkniętych na stop loss - dlaczego? Może w trakcie działania strategii stop loss ustalany jest zbyt blisko aktualnej ceny? Może dla otwartej pozycji w pewnym momencie następuje modyfikacja zlecenia przestawiająca stop loss na nieodpowiednią wartość? Ten i wiele innych błędów można w bardzo prosty sposób znaleźć dzięki automatycznemu dziennikowi.

Czym jest taki dziennik? Narzędziem, które pozwala śledzić moment złożenia zlecenia, śledzi na bieżąco zmiany w zleceniu, a także w jego poziomach stop loss i take profit. Pozwoli prześledzić zmiany w dowolnym zleceniu bez żmudnej analizy kolejnych słupków cenowych. Istotne jest, aby nowe elementy, czyli szczegóły złożonych (oraz zmodyfikowanych) zleceń pojawiały się na wykresie w czasie rzeczywistym. Sam dziennik może być tutaj osobną strategią automatyczną, która wskazuje sposób działania gracza, lub też dodatkową funkcją w strategii automatycznej, która pozwoli w przyszłości w prosty sposób prześledzić i odtworzyć jej działanie.

Jak powinien działać dziennik?

Jak już wspomnieliśmy wcześniej, sam dziennik jest zwykłą funkcją (lub zbiorem funkcji) wywoływaną w określonym momencie. Dla dowolnej strategii automatycznej analiza sytuacji na danej parze walutowej odbywa się w momencie pojawienia się nowej świecy na wykresie. Sama funkcja odpowiedzialna za dziennik tradera wymaga minimalnych zasobów pamięciowych i wywoływana jest tylko w określonych momentach:

  • złożenie nowego zlecenia: konieczne jest dokładne wskazanie czasu złożenia zlecenia. Skoro dziennik będzie działał chronologicznie, konieczne jest opisanie zlecenia - najlepiej przy pomocy etykiety tekstowej. Należy określić poziomy stop loss oraz take profit. Poziomy te określane są najczęściej podczas składania zlecenia, natomiast z czasem mogą być modyfikowane.
  • modyfikacja istniejącego zlecenia - szczególnie istotna podczas zleceń średnio i długoterminowych, gdzie stop loss może być wielokrotnie przesuwany. W tym celu konieczne jest wyraźne zaznaczenie na wykresie, że nastąpiła modyfikacja zlecenia już istniejącego.
  • zamknięcie zlecenia - wbrew pozorom, najbardziej złożone zagadnienie, wymagające określenia takich wartości jak: liczba pipsów zysku/straty czy czasu trwania zlecenia.


Przy tworzeniu takiego dziennika warto skorzystać z bardzo często niedocenianej linii pionowej na wykresie, która wskazuje wybrany czas. Linie poziome stosowane są do zaznaczania wsparcia i oporu, natomiast linie skośne - do wyznaczania linii trendu. Obydwa obiekty są bardzo popularne. Linie pionowe pozwalają wskazać dokładny punkt, w którym zlecenie zostało złożone/zmodyfikowane/zamknięte. Sama linia nie niesie ze sobą zbyt dużo informacji. Warto dodać tutaj etykiety, które mogą zostać umieszczone w dowolnym miejscu na wykresie. Sama manipulacja tym obiektem może wydać się nieco kłopotliwa - pamiętajmy, że całość powinna działać automatycznie, a etykiety tekstowe muszą znajdować się w konkretnych miejscach na wykresie. Za chwilę pokażemy, jak szczegółowo rozwiązać ten problem. Samo wyświetlenie tekstu możliwe jest po wcześniejszym spreparowaniu zmiennej łańcuchowej, która powinna zawierać informacje takie jak ustalony stop loss, czy take profit. Całość powinna być jednocześnie przejrzysta, tzn. każde dodatkowe etykiety tekstowe na wykresie powinny być powiązane z linią pionową określającą akcję związaną ze zleceniem.

Instalacja i przygotowanie środowiska

Najważniejszym elementem potrzebnym nam do przygotowania strategii automatycznej jest platforma MetaTrader. Program można pobrać ze strony brokera: http://teletrade-dj.pl/tradett/terminal. Broker ten pozostawia użytkownikowi wybór wersji programu. Najczęściej stosowaną przez graczy wersją jest MetaTrader 4, chociaż firma TeleTrade umożliwia skorzystanie z najnowszej wersji 5, a także aplikacji dostępnych na urządzenia mobilne. Dalszy opis platformy zawarty w artykule dotyczył będzie wersji 4.

Zaraz po pobraniu aplikacji klikamy dwukrotnie w program teletrade4setup.exe. Instalacja jest bardzo prosta, a kolejne polecenia przedstawiane są na ekranie. Warto zainstalować całe oprogramowanie w domyślnej lokalizacji, aby w przyszłości uniknąć kłopotów.

Po zainstalowaniu programu na pulpicie pojawi się nowy skrót programu „MetaTrader – Teletrade” (jeżeli podczas instalacji przyjęliśmy domyślne ustawienia, to po jej zakończeniu program powinien uruchomić się automatycznie). Zaraz na początku poproszeni zostaniemy o utworzenie rachunku (wybieramy demo). W głównym oknie MetaTradera konieczne jest utworzenie nowego rachunku (rysunek 1 a).

Po wybraniu rachunku demo poproszeni zostaniemy o podanie kilku informacji, takich jak miejsce zamieszkania, numer telefonu i mail. W przypadku rachunków demo dane te mają drugorzędne znaczenie. Istotne dla nas jest zapamiętanie hasła tradera oraz inwestora, które umożliwiają odpowiednio handel na danym rachunku oraz podgląd rachunku bez możliwości handlu. Na górnym pasku narzędzi widoczna jest żółta ikona z wykrzyknikiem (Rysunek 1 b). Jest to MetaEditor – edytor umożliwiający opracowanie własnego, automatycznego systemu transakcyjnego.

Po wybraniu w MetaEditorze nowego pliku i zaznaczeniu opcji „Doradca Ekspertowy” (Rysunek 2) wystarczy tylko nadać nazwę naszej strategii. Po wybraniu opcji „Zakończ” utworzony zostaje domyślny doradca ekspertowy.

Do dzieła!

Zakładając, że mamy system automatyczny i chcemy na bieżąco śledzić jego działanie (w szczególności modyfikacje zleceń), potrzebne będzie nam kilka funkcji wbudowanych platformy MetaTrader. Cały pomysł polega na odpowiednim nanoszeniu i manipulowaniu obiektami na wykresie. Poniżej widzimy przykład złożenia prostego zlecenia.



Zakładając, że warunek (np. przecięcie wykresu ze średnią kroczącą) jest spełniony - następuje otwarcie pozycji krótkiej dla aktualnej pary walutowej. Kolejne elementy funkcji OrderSend() oznaczają: aktualnie wybrany symbol, zlecenie krótkie, liczbę lotów, aktualną cenę sprzedaży, po jakiej nastąpi otwarcie zlecenia, możliwe odchylenie od ceny, poziom stop loss, take profit, krótki opis zlecenia, wartość stosowaną przy identyfikacji zlecenia oraz czas wygaśnięcia zlecenia i jego kolor - w tej sytuacji nieistotny. Funkcja OrderSend() zwraca numer zlecenia. W tym momencie następuje naniesienie na wykres punktu wejścia na rynek, informacja o zleceniu, a także wskazanie poziomów stop loss i take profit.



Każda próba złożenia zlecenia prowadzi do wygenerowania unikalnego numeru. W przypadku jakiegokolwiek błędu wartość ta wynosi -1. Stąd oczywisty wniosek, że aby wskazać miejsce złożenia zlecenia na wykresie, konieczne jest sprawdzenie, czy wygenerowany numer jest różny od tej wartości. Symbol "różne" w języku MQL oznaczany jest jako "!=", natomiast warunek przedstawiony został poniżej.

Jak zaznaczyć taki punkt na wykresie? O tym dowiemy się już w następnej części naszego poradnika.

Autor: Przemysław Juszczak