poniedziałek, 3 marca 2014

Gdzie ustawić poziom stop loss?

Dziś trochę o zleceniach stop loss, czyli takich, które mają ograniczać stratę jeśli transakcja nie pójdzie po naszej myśli. Żeby zrozumieć gdzie leży siła, a gdzie słabość tego typu zleceń przyjrzyjmy się poniższemu przykładowi.

Niebieskie kropki na obrazku to transakcje historycznie dokonane przez nasz przykładowy system. Część z nich zakończyła się zyskiem (kropki po prawej stronie od linii 0), pozostałe zakończyły się stratą.



Początkowo każda transakcja zaczynała z punktu 0, ale do swojego miejsca dotarła niekoniecznie idąc wprost od 0 do punktu docelowego. Mogło przecież zdarzyć się, że kupiona spółka na początku trochę zyskała, a dopiero później zaczęła mocno spadać. Może też się zdarzyć odwrotnie, a więc początkowo spółka spadała, aby ostatecznie wybić się ponad 0. Kolejny obraz pokazuje przykładowy zakres wahań w ramach danej transakcji.

Końce poziomy niebieskich linii informują nas jaka była minimalna, a jak maksymalna wycena danej transakcji w trakcie jej trwania. Np. transakcja na samym dole najprawdopodobniej na początku traciła (dlatego niebieska linia wchodzi na część ujemną), aby później ostro wybić na plus i zakończyć się w punkcie maksymalnym swoich wahań.

Jeśli chcielibyśmy ograniczyć stratę na pojedynczej transakcji ustalamy sobie poziom, przy którym kończymy transakcję idącą nie po naszej myśli. Ten poziom to pionowa czerwona przerywana linia.

Dzięki wprowadzeniu tej linii każdą z transakcji możemy przydzielić do jednej z trzech grup:

  • transakcje nie zmienione przez stop loss - są to transakcje, które nawet w najgorszym momencie znajdowały się powyżej poziomu stop loss, a więc nie zostały ucięte. Na obrazku powyżej są to transakcje, które nie mają pomarańczowej strzałki (licząc od góry są to transakcje: 3,4,5,6,9,10,12,13).
  • transakcje, które zakończyłyby się poniżej poziomu stop loss - są to transakcje, które dzięki istnieniu poziomu ograniczającego zakończyły się z mniejszą stratą niż gdyby go nie było. To właśnie dla tej grupy transakcji tworzymy poziom stop loss, gdyż dzięki ucięciu dużych strat ogólny wynik strategii będzie lepszy. Na obrazku powyżej są to transakcje mające pomarańczową strzałkę skierowaną w prawo (czyli transakcje nr: 1,7,11).
  • transakcje, które zakończyłyby się powyżej poziomu stop loss, ale zostały przez niego ucięte - to jest ciemna strona korzystania z poziomu stop loss. Jest to grupa transakcji, która standardowo zakończyłaby się na plusie lub tylko lekkim minusie, ale z racji sporych wahań w pewnym momencie przecięły poziom stop loss i zostały zakończone ze stratą. Na obrazku są to transakcje mające pomarańczową strzałkę skierowaną w lewo (czyli transakcje nr: 2,8)
Po uwzględnieniu poziomu SL (stop loss) wynikowe transakcje wyglądały by tak.


Jak widać, korzystając ze zleceń obronnych musimy starać się dobrać taki poziom linii odcinającej, aby korzyść wynikająca z poprawnie uciętych transakcji przewyższała straty z błędnie uciętych.

Oto co się stanie, gdy poziom SL ustawimy zbyt blisko linii 0. 

Niemal wszystkie transakcje (w tym sporo takich, które zakończyłyby się dużym sukcesem)  zostaną ścięte przez poziom SL przez co wartość oczekiwana naszej strategi mocno spadnie.

Jeśli z kolei poziom SL ustawimy zbyt daleko jak na poniższym obrazku. To nie dotknie ona żadnej transakcji i system będzie działał tak jakby poziom SL w ogóle nie istniał.

Widzimy, że idealny poziom SL znajduje się gdzieś pomiędzy poziomem 0, a głębokim minusem.
Jak znaleźć ten poziom?

Będziemy potrzebowali listy historycznych transakcji naszego systemu bez uwzględniania poziomu SL. O każdej transakcji powinniśmy mieć 3 informacje:
  • cena zakupu
  • cena sprzedaży
  • najniższy punkt w trakcie trwania transakcji
Przykładowa tabelka z transakcjami.


Oczywiście im więcej historycznych transakcji tym nasze wyniki będą bardziej wiarygodne. Absolutne minimum to kilkadziesiąt transakcji. Do dalszej analizy użyjemy listy 550 transakcji, których dokonał system, który ostatnio testowałem.

Mając listę transakcji musimy policzyć ile wyniósł zysk z transakcji bez uwzględniania SL oraz ile wyniósł drop down czyli spadek kapitału od kupna do minimum.


Mając policzony zysk i drop down będziemy sprawdzać po kolei jak zachowałaby się nasza strategia dla różnych poziomów stop loss. W poniższym przykładzie sprawdzam wartości -20%, -15%, -10%, -5%. Standardowo robię to co 1% ale zasada działania jest taka sama, a nie chcę tu zaciemniać obrazu.

Teraz dla każdej transakcji sprawdzam czy jej drop down czyli największy spadek przekroczył poziom SL?
  • Jeśli nie to znaczy, że transakcja zostaje nie zmieniona, a więc w kolumnie "zysk po uwzględnieniu SL" przepisuję tą samą wartość, która jest w komórce "zysk"
  • Jeśli tak, to zamiast przepisywać zysk, w kolumnie "zysk po uwzględnieniu SL" wpisuję tyle ile wynosi obecny SL, bo to właśnie na tym poziomie transakcja zostałaby ucięta.


Żeby lepiej zrozumieć schemat działania przeanalizujmy dla przykładu drugą transakcję od dołu, która ma parametry:
zysk = -2,63%
drop down = -6,58%

Na początku zakładamy poziom SL = -20%. Taki poziom jest mniejszy niż drop down badanej transakcji, a więc transakcja nie zostanie zmieniona przez SL czyli jej zysk to nadal -2,63%. Przy poziomach SL wynoszących kolejno -15% i -10% znów nic się nie stanie.

Gdy jednak jako poziom SL przyjmiemy -5% to, okazuje się że ta transakcja zostałaby ucięta przez stop loss (gdyż w najgorszym momencie spadała aż -6,58%), a więc w pole "zysk po uwzględnieniu SL" wpisujemy w tym wypadku -5% bo tyle wynosi SL.

Oczywiście powyższego sprawdzania nie dokonujemy ręcznie. Z pomocą przychodzą nam Excelowe formuły.

Oto jak wyglądają wyniki dla testowanego systemu (550 historycznych transakcji, Stop lossy sprawdzane od -60% co 1%)



Trafialność - Czyli jak często transakcja kończy się zyskiem.
Średni zysk z transakcji - wartość oczekiwana transakcji

Podstawowe parametry tego systemu (czyli bez korzystania ze stop loss) są takie same jak te przy SL = -60% (bo przy tym poziomie żadna transakcja nie została odcięta). Przeanalizujmy co dzieje się z parametrami przy podnoszeniu poziomu SL:
  • Trafialność, która początkowo wynosi ok. 57% (lewa oś) utrzymuje się na tym poziomie aż do okolic -22%. Oznacza to, że w badanym systemie nie ma transakcji, które spadłyby niżej niż -22% a potem zdołały się jeszcze podnieść i wyjść na plus. Dalej trafialność zaczyna spadać. Na początku powoli, ale później przyspiesza, żeby pod koniec zanurkować. Im bliżej poziomu 0 ustawiamy stop lossa, tym więcej dobrych transakcji niesłusznie ucinamy, co widać jako spadającą trafialność.
  • Średni zysk z transakcji początkowo wynosi ok. 8,2%. Rośnie coraz szybciej, aż do pewnej wartości równowagi w okolicach 8,8%. Pozostaje w tej okolicy dla stop lossa będącego w granicach -14% i -6%, a następnie ostro nurkuje.
Ten poziom równowagi, który pojawia się chwilę po tym jak trafialność zaczęła spadać jest tym czego szukamy. Jest to miejsce, w którym odcinamy sporo złych transakcji, które zakończyłyby się dużym minusem, a tylko trochę dobrych, które zakończyłyby się plusem.

W naszym przypadku poziom równowagi znajduje się pomiędzy stop lossem wynoszącym -14% i -6%, a więc biorąc środek tego przedziału zastosowalibyśmy stop loss na poziomie -10%.

Ale nie zawsze jest tak różowo.

Ten sam schemat postępowania zastosowałem to innego systemu, który preferuje zakup spółek znajdujących się w trendzie spadkowym (a więc zanim zaczną rosnąć często zaliczają pogłębienie spadków).

Oto wyniki:

Tutaj wykres średniego zysku z transakcji jest znacznie mocniej ściągany ku dołowi i okazuje się, że nie ma takiego poziomu SL, który pozwoliłby podnieść zyski systemu. Czy to oznacza, że w takim wypadku powinniśmy zrezygnować ze stosowania stop lossa?

Aby odpowiedzieć na to pytanie zastanówmy się po co w ogóle ustawia się poziom stop loss. Są dwa główne powody:
  • Poprawienie wartości oczekiwanej transakcji - z tego punktu widzenia stop loss powinien być ustawiany tylko i wyłącznie w optymalnym położeniu dającym największe zyski
  • Zabezpieczenie systemu przed czarnymi łabędziami - więcej o tym pisałem tutaj. Z tego punktu widzenia stop loss powinien być ustawiany zawsze. Do tego musi być ustawiony jak najbliżej punktu 0, aby zminimalizować straty.
Patrząc zbiorczo nasz poziom SL powinien szukać konsensusu pomiędzy tymi dwoma warunkami, a więc:
  • ustawiajmy go zawsze
  • ustawiajmy go możliwie blisko punktu 0, ale tam gdzie średni zysk z transakcji jeszcze nie opada.
A więc w prezentowanym przypadku nie wolno nam zrezygnować ze stop lossa. Powinniśmy go ustawić w okolicy -30%. Nawet jeśli w tym punkcie nasza wartość oczekiwana będzie delikatnie mniejsza, niż bez używania stop lossa, to samo istnienie zabezpieczenia przed czarnymi łabędziami jest warte tej drobnej straty.

Jeśli wpis Ci się podoba zapisz się na newsleter, aby nie przegapić nowych artykułów:

13 komentarzy:

Jonatan pisze...

W kwestii kupna mieszkania polecam przeglądać raz na jakiś czas stronę klikmapa, tutaj przykładowo Legnica - http://www.klikmapa.pl/mieszkania-na-sprzedaz,mi-legnica.html

haael pisze...

Tylko że z black swanami jest ten problem, że często tworzą ogromne luki. Stop loss zakłada, że zawsze znajdzie się kupiec na naszą transakcję po każdej cenie. Tymczasem wiemy, że kurs jednego dnia może wynosić 100zł a drugiego 50zł bez żadnych stanów pośrednich. Ustawianie stop lossa pomiędzy 100 a 50zł nic nie da, ponieważ nie znajdziemy tam nigdy kupca na naszą transakcję.

To się nazywa ryzyko płynności.

Ba, może się okazać jeszcze gorzej, że krótko po gwałtownym spadku następuje odbicie. I że właśnie stop loss ustawiony w złym miejscu powoduje, że sprzedajemy w najgorszym możliwym momencie.

Właśnie taka sekwencja zdarzeń zaszła na rynku srebra w maju 2011 roku. I sporo inwestorów popłynęło sobie wtedy do Krainy Wiecznych Zysków, właśnie przez stop lossy.

Podsumowując - stop loss chroni przed "zwyczajnymi" błędami systemu transakcyjnego ale nie przed black swanami.

10procentrocznie pisze...

Myślę, że najlepszym zabezpieczeniem przed czarnymi łabędziami byłoby połączenie trzech elementów: stop lossy, wielkość pozycji w pojedynczej transakcji i dywersyfikacja.


Wtedy nawet jeśli zaskoczy nas nagły spadek waloru o 30% (a nasz stop loss był na -15%), to jeśli na ten walor stawialiśmy np. 10% całego portfela stracimy 3% całego kapitału (zamiast zakładanego -1,5%).

Arek pisze...

Nie rozumiem wykresu 1.: zachowanie się systemu.
Cyt. "Trafialność, która początkowo wynosi ok. 57% (lewa oś) utrzymuje się na
tym poziomie aż do okolic -22%. Oznacza to, że w badanym systemie nie ma
transakcji, które spadłyby niżej niż -22%" -
Rozumiem, że zarówno przy S/L 22% jak i 60% nie zostanie wycięta nam żadna transakcja, to na jakiej podstawie rośnie nam zyskowność?

Muszę przyznać, że bardzo ciekawa analiza :) Jak w kazdym przypadku, również warto uwzględniać historię wykresu spółki.

Odnośnie black swanów - kłania się, tak jak piszesz, zarządzanie portfelem - nie ma idealnie płynnego rynku - zatem dywersyfikacja jest najlepszą bronią.

WAZ pisze...

A o lukach Filipie słyszałeś jak TPSA (Orange), Alior, ... nie mówiąc już o lukach weekendowych na FX. Twoja analiza zawiera gruby błąd metodyczny. Czasami (wcale nie tak rzadko) strata zrealizowana przewyższa SL nawet kilkukrotnie.
Pozdr
WAZ

10procentrocznie pisze...

Cytat jest trochę niefortunnie ucięty. Całe zdanie z artykułu brzmi:


"Oznacza to, że w badanym systemie nie ma transakcji, które spadłyby niżej niż -22%, a potem zdołały się jeszcze podnieść i wyjść na plus."


Czyli redukując stop loss z poziomu -60% w kierunku -22% wyrzucamy trochę transakcji, ale wszystkie, które wyrzucamy są transakcjami, które ostatecznie i tak zakończyłyby się na minusie. (Dlatego ich wyrzucenie przez SL nie powoduje spadku trafialności).


To dzięki temu wycinaniu przez SL transakcji, które zakończyłyby się na głębszym minusie, średni zysk z transakcji rośnie.


Czasem (np. gdy stop loss wynosi ok. -44%) możemy dostrzec nagłe spadki średniego zysku z transakcji, bez zmiany trafialności. Oznacza to, że stop loss wyrzucił transakcję, która normalnie zakończyłaby się na lekkim minusie (np. -5%). W takiej sytuacji trafialność nie spada, bo transakcja i tak zakończyłaby się na minusie, ale średni zysk spada bo zamiast transakcji z wynikiem -5% mamy transakcję z wynikiem -44%.

10procentrocznie pisze...

Trafna uwaga.

Myślę, że najlepszym zabezpieczeniem przed lukami byłoby połączenie trzech elementów: stop lossy, wielkość pozycji w pojedynczej transakcji i dywersyfikacja.

Wtedy nawet jeśli zaskoczy nas nagły spadek waloru o 30% (a nasz stop loss był na -15%), to jeśli na ten walor stawialiśmy np. 10% całego portfela stracimy -3% całego kapitału (zamiast zakładanego -1,5%).



Dlatego mimo, iż stop lossy nie są zabezpieczeniem ostatecznym to myślę, że warto je ustawiać, a jeśli już je ustawiamy, to warto mieć jakiś sposób na policzenie gdzie najkorzystniej go ustawić.

Jasiek pisze...

Inwestuje na gieldzie od wielu lat i powiem Ci ze wiedze moze i masz ale nie masz wiedzy do przekazywania wiedzy. Piszesz tak jakby kazdy musial wiedziec o co Ci dokladnie chodzi i jaka mysl masz aktualnie w glowie.
Popracuj nad precyzyjnym przekazywaniem wiedzy w latwy, prosty, zrozumialy sposob. Bez zbednych szmerow

Hanup pisze...

Zgadzam sie

Andrzej pisze...

Minęło już trochę czasu, ale może przeczytasz ;-). Czy myślałeś o dodaniu nowej funkcjonalności do fundamentalnej, która by liczyła optymalny poziom stopa dla portfeli (na podstawie dotychczasowych transakcji)? Coś takiego by się bardzo przydało (albo chociaż minimalny poziom pomiędzy kupnem a sprzedażą dla każdej pozycji). Pozdrawiam

Filip pisze...

Obawiam się, że aby obliczyć optymalny poziom stop lossa potrzeba by bardzo wielu transakcji (ok. 200-300). W praktyce taka funkcja mogłaby spełniać swoją rolę dopiero gdyby ktoś dysponował danymi za co najmniej 5 lat.


Co do minimalnego poziomu między kupnem i sprzedażą do nie do końca rozumiem o co chodzi. Rozwiń proszę :)

Andrzej pisze...

Moze 20-30 transakcji juz by dalo pewne pojecie gdzie taki SL powinien byc ustawiony dla danej strategii. Minimalny poziom - chodzilo mi o minimalna cene pomiedzy kupnem a sprzedaza - dokladnie to co jest potrzebne do analizy, to co pokazujesz w tabelkach powyzej jako Min.

Filip pisze...

Już rozumiem :) Pomysł dobry, ale i tak obawiam się, że 20-30 to za mało i większość użytkowników nie wiedziałaby co z takim narzędziem zrobić. W najgorszym razie obecnie można policzyć optymalny stop loss ręcznie. Przy 20-30 transakcjach całość zajmie kilka minut.

Jeśli po dodaniu Twój komentarz jest niewidoczny, upewnij się czy Twoja przeglądarka ma włączoną opcję obsługi ciasteczek (cookies).

Prześlij komentarz