Jest to bardzo słuszna sugestia, gdyż po pierwsze oswaja nas z możliwością popełnienia błędu i po drugie – pozwala ten błąd mieć pod kontrolą. Jeśli chodzi o odpowiedź na pytanie, to zdania są podzielone. Jedni uważają, że można ryzykować tylko 0,5 proc., a inni zgadzają się ryzykować 10 razy więcej. Wybór dokładnej liczby z przedziału 0,5-5 proc. zależy od indywidualnych preferencji i zasobności portfela. Programując nasz algorytm przyjęliśmy założenie, że nie chcemy stracić w jednej transakcji więcej niż 1 proc. posiadanego na koncie kapitału.
Do trzymania się zasad dotyczących ryzyka nie potrzebujemy oczywiście inwestycyjnego robota, ale praktyka pokazuje, że większość inwestorów największy problem ma właśnie z dyscypliną. Robot nie zna takiego pojęcia – wykonuje instrukcje, które zostały mu zaprogramowane. Jak zatem nauczyć go obliczać wielkość dopuszczalnej straty?
Na początku robot musi wiedzieć, jaka jest aktualna wartość wolnych środków na naszym koncie. Aby uzyskać taką informację wykorzystujemy jedną z tzw. funkcji informacyjnych konta, a mianowicie: "AccountFreeMargin()". Podaje ona wartość aktualnych środków w walucie konta bieżącego (w naszym przypadku PLN), które są dostępne do otwierania nowych pozycji. Jest to podejście bardziej konserwatywne, bo przy kalkulacji nie uwzględnimy tych środków, które już są na rynku zainwestowane w otwarte pozycje. Gdybyśmy chcieli je uwzględnić, można wywołać inną funkcję – "AccountEquity()". Pełny spis wraz z wyjaśnieniem znaczenia funkcji informacyjnych konta znajduje się pod linkiem (http://bossa.pl/fx/narzedzia/automatyzacja/slownik/funkcje/informacyjne/).
W celu obliczenia wielkości ryzykowanej kwoty wystarczy sumę wolnych środków pomnożyć przez 0,01 (obrazek obok; zmienne nazywane są w języku polskim, by całość była bardziej czytelna). Otrzymana kwota to nasz limit straty. Od niego oraz od przyjętego poziomu stop loss zależeć będzie to, jakiej wielkości pozycję możemy otworzyć. Jak zbudować mechanizm zarządzania jej wielkością?
Podczas tworzenia reguł otwierania pozycji przyjęliśmy założenie, że początkowy stop loss ma być zawsze oddalony od ceny wejścia o 50 pipsów, a take profit ma być trzy razy większy. Ponieważ zlecenia są zbyt odległe zawęziliśmy je na potrzeby tego materiału odpowiednio do 15 i 30 pipsów. Aby robot obliczył właściwą wielkość pozycji, musi podzielić wielkość dopuszczalnej straty przez odległość stop lossa, liczoną w pipsach. Zanim jednak tego dokona musimy pamiętać, że gramy na parze EUR/USD, dlatego rozliczenia muszą być dokonywane w dolarze. Aby złotówki zamienić na amerykańską walutę wystarczy kwotę w złotówkach podzielić przez aktualny kurs USD/PLN. Aby go uzyskać należy skorzystać z funkcji "MarketInfo()", która zwraca określone informację na temat danego instrumentu. Funkcja ma dwa parametry – pierwszy to symbol instrumentu (u nas "USDPLN"), a drugi to zwracana informacja (u nas cena ASK, czyli MODE_ASK). Dzieląc Limit_Straty przez kurs dolara otrzymujemy poziom ryzyka wyrażony w amerykańskiej walucie. Otrzymaną kwotę dzielimy przez 15 (odległość stop lossa) i otrzymujemy ilość ryzykowanych dolarów na jeden pips. Ile to oznacza lotów? Skoro przy jednym locie jeden pips to 10 dolarów, to wystarczy otrzymaną kwotę podzielić przez 10 i otrzymamy dopuszczalną wielkość pozycji. Aby lepiej zrozumieć tę kwestię posłużmy się przykładem. Załóżmy, że mamy na koncie 100 000 PLN, a kurs USD/PLN wynosi 4 PLN. Ryzyko na poziomie 1 proc. daje nam dopuszczalną stratę 1000 PLN, co w przeliczeniu na dolary daje 250 USD. Dzieląc te kwotę prze liczbę 15 pipsów (odległość stop lossa) otrzymujemy 16,7 USD/pips. Skoro przy jednym locie relacja ta wynosi 10 USD/pips, to z prostej, matematycznej proporcji wynika, że w naszym przypadku otworzyć możemy 1,7 lota.