Testy in-sample / out-of-sample dla strategii wybicia z kanału

Zasada działania kanału Donchiana

    Kanał Donchiana to wskaźnik techniczny, który pomaga usystematyzować podążanie za trendem. Aby go narysować, wyznaczamy maksimum oraz minimum ceny z ostatnich X dni i rysujemy przedział na wykresie.

Donchian example

    Kanał niejako "podąża" za ceną. Wybicie z kanału górą uważa się za sygnał do kupna, a wybicie dołem za sygnał sprzedaży. Ponieważ cena nie może spadać bez obniżenia kanału, system zbudowany w ten sposób będzie szybko ciął straty i pozwalał zyskom rosnąć. Richard Donchian jest uważany za ojca trend-followingu.

Backtest na danych historycznych

    Kanał Donchiana jest znany od dziesięcioleci. Przetestujemy, czy nadal można dzięki niemu zarabiać. Dodamy kilka reguł, aby stworzyć pełniejszy system transakcyjny.

    Sygnał sprzedaży jest prosty: jeśli cena zamknięcia akcji jest najniższa od N dni, sprzedajemy akcje na następnej sesji.
    Sygnał kupna: jeśli cena zamknięcia jest najwyższa od M dni, kupujemy na następnej sesji.
Kupujemy za 5% wartości portfela (jeśli nie mamy tyle gotówki, czekamy). Dokładamy do istniejących pozycji, ale tylko jeśli obecna wartość posiadanych akcji nie przekracza 5% wartości portfela. W przypadku sygnałów na wielu spółkach sprawdzamy, jak mocno spółka urosła przez ostatni rok (więcej o tym za chwilę). Całość optymalizujemy na danych in-sample z okresu od 9 lipca 2007 (szczyt przed kryzysem) do 1 lutego 2018 (kolejny szczyt). Wybierzemy najlepsze parametry, a następnie przetestujemy je out-of-sample na okresie od 1 lutego 2018 do czerwca 2024.

Optymalizacja in-sample

    Sprawdzamy różne długości kanałów z zakresu od 5 do 375 dni. Optymalizujemy również warunek wyboru spółek, gdy mamy zbyt wiele sygnałów: w jednej wersji systemu wybieramy spółki, które urosły najbardziej w ostatnim roku, a w drugiej te, które urosły najmniej (lub wręcz spadły). Powodem sprawdzenia obu wersji jest to, że nie wiemy "przed czasem", który warunek da lepsze sygnały. Aby uczciwie wykonać test in-sample, musimy niejako "udawać", że nic nie wiemy o charakterystyce ruchów. Jeszcze bardziej uczciwy test uwzględniłby odwrócone sygnały kupna i sprzedaży (kupujemy po wybiciu z dolnego ograniczenia kanału, sprzedajemy po wybiciu z górnego). Jednak takie reguły nie pozwalałyby zyskom rosnąć, dlatego możemy taki system odrzucić. "Hodowanie" zysków jest najprostszą drogą do sukcesu - cena może spaść tylko o 100%, a wzrosty mogą być nieograniczone.

    Po przeprowadzeniu optymalizacji wiemy, że najlepsze długości to 47 sesji dla kupna oraz 116 dla sprzedaży. Jeśli mamy więcej sygnałów niż gotówki, powinniśmy kupować spółki, które urosły najwięcej w ciągu ostatnich 250 sesji.

    Końcowy wynik takiego systemu to ponad 700% zysku, jednak jest to wynik "papierowy" - w rzeczywistości nie da się go osiągnąć, ponieważ nie można przewidzieć, jakie wartości parametrów będą optymalne. Pozostaje mieć nadzieję, że charakterystyka rynku nie zmieni się zbytnio i parametry, które były najlepsze w przeszłości, będą również zyskowne w przyszłości.

Czy system przestał działać - testy out-of-sample

    Znając wartości najlepszych parametrów, można zaryzykować tezę, że będą one zyskowne również w przyszłości. Wprawdzie wszyscy uczestnicy rynku mogli wykonać taki test i dojść do tych samych wniosków, ale prawdopodobieństwo, że tak się stało, jest bardzo małe.

    Poniżej przedstawiamy wykres kapitału dla testu out-of-sample za okres 1 lutego 2018 - czerwiec 2024. Wartość początkowa kapitału wynosi 65585, czyli wartość WIG pierwszego dnia testu.

capital

    Jak widać, system i WIG szły łeb w łeb mniej więcej do jesieni 2019 roku. Potem system zaczął mocno zarabiać. Ostatnia hossa (od połowy 2022 roku) to również bardzo dobry okres, w którym system podwoił swój kapitał (średni wzrost cen akcji od tego okresu to tylko 51%). Wynik systemu od początku out-of-sample to zysk 335%, co daje około 26% CAGR. W tym czasie WIG wzrósł tylko o 30%, czyli jakieś 4% CAGR. Średnio akcje wzrosły w tym czasie o 122%.

     Nawet taki prosty system daje przewagę. Wybierając parametry z testu in-sample, unikamy błędu podglądu danych z przyszłości. Teraz potrzebujemy tylko czasu, kapitału i dyscypliny. Kod źródłowy znajduje się tutaj.

Następny wpis
Pytania lub uwagi? Twitter / X: Łukasz Wojtów
Software do testowania rynków finansowych: Alis