Kontrakty – strategia jednego dnia. Suplement.

Jeszcze jedna ze strategii jednodniowych na kontrakty terminowe, którą dodaję jako bonus.

 

Konkurs strategii nie przyniósł rozstrzygnięć ku mojemu rozczarowaniu. Po statystykach odsłon widzę, że wejść na wpis konkursowy było dużo ponad średnią, jednak nie wyłoniliśmy zwycięzcy. Domyślam się, że budowniczych systemów transakcyjnych nam wśród Czytelników nie brakuje, zadecydowały inne względy 🙂

Żeby pokazać, że tego rodzaju strategie można układać w nieskończoność, dodaję jeszcze jedną z mojego zbioru.

Wykorzystuje ona możliwość wprowadzonego dopiero co przez BOŚ tzw. depozytu intra day. Polega on na tym dla przypomnienia, że jeśli pozycja jest zamykana tego samego dnia to DM BOŚ pobiera depozyt tylko o wielkości 50% depozytu regularnego, czyli takiego gdy pozycja jest przetrzymywana dłużej niż jedną sesję. To pozwala na grę w czasie dnia dwukrotnie większą ilością kontraktów o nowym mnożniku x20.

Ma to znaczenie ponieważ nowy kontrakt o mnożniku x20 wymaga dwukrotnie wyższego depozytu niż dopiero co wygasłe serie kontraktów o mnożniku x10. Opcja ‘intra day’ pozwala na użycie o połowę mniejszych środków, mniej więcej takich jak przy starych kontraktach x10, jednakże przy tym oferuje wyższy zysk za każdy zdobyty punkt przy niżej zatem relatywnie prowizji.

Strategię, którą nazwałem roboczo „Wybicie jednego dnia z minimum”, testuję na starej serii danych FW20 z bazy bossa.pl o mnożniku x10. Jednak do testów mnożnik powiększyłem do x20 aby pokazać teoretyczną przewagę, którą można było za pomocą wyższego mnożnika osiągnąć. Prowizja 10 PLN za otwarcie i zamknięcie. Wydatkujemy każdorazowo 10% posiadanego kapitału (jako początkowy przyjąłem 100 000 PLN), dzieląc na wielkość depozytu intra day wymaganego dla każdego pojedynczego kontraktu. Mniej więcej wyszło więc, że 1 kontrakt był otwierany na każde 15 000- 20 000 PLN kapitału.

Strategia jest jedynie teoretycznym ćwiczeniem z testowania systemów transakcyjnych, pokazuje statystyczne nieefektywności rynku i proszę nie traktować jej w żadnym razie jako moja rekomendacja jej użycia.

Reguły.

Dla otwarcia pozycji długiej muszą być spełnione następujące warunki:

1/ Sesja wczorajsza tworzy lokalne minimum 3 dniowe – minimum dnia (LOW) jest niższe od minimów z dwóch poprzedzających ją sesji.

2/ Wchodzimy na rynek zleceniem z limitem dzisiaj gdy kurs wzrośnie o 10 tików od otwarcia sesji.

3/ Pozycję bezwzględnie zamykamy na zamknięcie sesji tego samego dnia.

Pozycje krótkie otwiera się symetrycznie czyli maksimum wczoraj (HIGH) to najwyższy kurs z 3 sesji, przy spadku o 10 tików od otwarcia zajmujemy pozycję short i zamykamy ją na koniec dnia po cenie zamknięcia.

Wyniki testu:

Zysk całkowity netto: 2198,76%

Zysk średniorocznie: 20,95%

Maksymalne obsunięcie kapitału: 44,5 %

Transakcji: 1738

Trafnych: 52,7 %

Sharpe ratio: 1,32

Linia zmian kapitału:

 1_ Portfolio Equity

Oczywiście są to wyniki hipotetyczne, które mogą się nie powtórzyć w przyszłości.

–kat—

[Głosów:32    Średnia:3.6/5]

16 Komentarzy

  1. Kornik

    Kathay, takie wyniki, to chyba we Wszechświecie równoległym, gdzie istnieją biura maklerskie, które nie pobierają prowizji za transakcje kupna/sprzedaży…

    Strategia “Wybicie jednego dnia z minimum” PRZED:

    http://bankfotek.pl/view/1766054

    I strategia “Wybicie jednego dnia z minimum” PO uwzględnieniu prowizji:

    http://bankfotek.pl/view/1766055

  2. skrzat

    Próbuję zapisać w AB formułę dla powyższej strategii.
    Nie daje ona jednak opiwysanych wyżej wyników.
    Ponad to w pewnym momencie, system przestaje zamykac pozycje na zamknięciu tego samego dnia.

    Buy = Ref (Low, -1) < Ref (Low, -2) AND Ref (Low, -1) Ref (High, -2) AND Ref (High, -1) > Ref (High, -3);
    ShortPrice = Open-10;
    Cover = Close;

  3. kathay (Post autora)

    Sprawdziłem kod, prowizje, przeleciałem kilka losowych transakcji, policzyłem na kalkulatorze losowe wejścia z prowizjami – wszystko się zgadza jak we wpisie.

    @skrzat
    – brak operatora logicznego w środku linii z buy
    – dlaczego H,-1 ma być większy od H,-3 ?
    – dlaczego po buy robisz shortprice a nie buyprice?
    Wcina część kodu przy przesyłaniu ? bo tak się zdarza 🙁

  4. Spaider

    Niestety, ale Kornik ma rację. Zaprezntowane na wykresie wyniki są BEZ prowizji.

  5. Spaider

    Chciałbym poprawić swój poprzedni wpis. Przy zastosowaniu reguł podanych we wpisie i przy założeniu zerowej prowizji uzyskuje się wynik zbliżony do wykresu przedstawionego we wpisie – stąd mój błąd.

    Po dokładnej analizie wychodzi mi, że wynik z wykresu został uzyskany z prowizją, ale z błednym założeniem (BUY= ….. AND H>O+10, równocześnie: BuyPrice =O+10) odrzucającym wszystkie transakcje, które miały maksimum dnia równe 10 tików powyżej otwarcia dla pozycji krótkich (lub minimum dnia równe 10 tików poniżej otwarcia dla pozycji krótkich). Powyższa formuła powinna oczywiście być zapisana BUY= …. AND H>O+9.

  6. Kornik

    @Spaider

    To teraz dolicz jeszcze punkcior poślizgu, bo nie kupisz O+9, przy założeniu H>O+9, tylko będziesz kupował po O+10.

    …I co wychodzi? 🙂

    Bo mnie wychodzi taki kombajn, który prędzej urwie rączkę/nóżkę/coś cenniejszego, niż coś wymłóci. Zarabiają tylko posrednicy – mechanicy we warstacie i lekarze. 🙂

    Ten systemik ma jednak swoją wartość – jest to pierwszorzędny przykład tego, jak pazerność (nie mylić z chciwością) pośrednika – w tym wypadku GPW – tłamsi/wyklucza rozwój.

    Po pietnastu latach gry w systemie bez prowizji pozycja liczy już prawie 140 kontraktów; w systemie z prowizjami ledwo dobija 20…

    Wniosek: gdyby stworzyć odpowiednie warunki – stałe reguły gry, minimalne prowizje – to w krótkim okresie czasu (15 lat, czyli niecałe pokolenie), od samego “kurzu”, jaki będzie robił drobny ciułacz, mogą otrzymać znacznie więcej, niż zarabiają teraz w tym systemie “łupiesko-zdzierackim”.

    No, ale kto tam, na górze, myśli o D-term. Gołodupiec z nadania partyjnego, jeśli zdarza mu się myślec, to mysli tylko K-term – “utrzymać się, utrzymać się” (Dyzma) i “nachapać” się – już, teraz – bo za rok, dwa, cztery, władza może się zmienić i koryto może się urwać…

  7. Spaider

    @ Kornik
    Punkt poślizgu nie jest potrzebny bo zakup ma być po O+10 – w poprzednim wpisie powinienem zapisać: BUY= ….. AND H >= O+10, byłoby prościej (mimo, że na to samo wychodzi).
    @ kathay
    Zabrakło znaku = w warunkach zakupu, dlatego wcześniej opisane transakcje (H = 10 tików powyżej otwarcia oraz L=10 tików poniżej otwarcia) nie zostały uwzględnione w symulacji, a zgodnie z opisanymi warunkami powinny być uwzględnione

  8. Kornik

    Tę formułę można zapisać na dwa sposoby:
    – H>O+9, i wejście O+10,
    – H>=10, i wejście O+10,

    W obu tych przypadkach wynik jest daleki od tego, co pokazał Kathay.

    Ten wynik staje się osiagalny, gdy:
    1) nie uwzględni się prowizji,
    2) damy warunek, który jest nieosiągalny na rynku:
    – H>O+9 i wejście po O+9,
    – H>O+10 i wejście po O+10.

    To jest niemozliwe, chyba że będziemy puszczać zlecenie z limitem, a potem za każdym razem będziemy wznosić modły i palic kadzidła, żeby wszystko nam weszło. 🙂

    Wychodzi na to, że ten punkcik niezbędnego poślizgu, względnie te dwa punkciki prowizji, to są skrzydełka motyla, których trzepot robi trzęsienie portfela…

  9. Jac-

    > Polega on na tym dla przypomnienia, że jeśli pozycja jest zamykana tego samego dnia to DM BOŚ pobiera depozyt tylko o wielkości 50% depozytu regularnego, czyli takiego gdy pozycja jest przetrzymywana dłużej niż jedną sesję. To pozwala na grę w czasie dnia dwukrotnie większą ilością kontraktów o nowym mnożniku x20.

    Szkoda, że DM nie pobiera 5% depozytu, bo wtedy pozwoliłoby to na grę
    dziesięciokrotnie większą ilością kontraktów o nowym mnożniku x20.

  10. kathay (Post autora)

    Panowie (i Panie o ile śledzą wątek w co nie wątpię).

    W regułach transakcji celowo brakuje jednego uściślenia. Przyszło mi do głowy “popełnienie” go po błędzie jedynego uczestnika konkursu i chciałem na tej podstawie zrobić małą lekcję edukacyjną, ponieważ jak się okazuje nie wszyscy zrozumieli na czym polegał błąd owego uczestnika. Miałem nadzieję, że zostanie to błyskawicznie dostrzeżone i wypunktowane. Nawet naprowadzałem na to w komentarzu wyżej 🙂

    Co do poślizgów, ilości transakcji itd – te systemy to jedynie teoretyczne i hipotetyczne wprawki z systemów, poszukiwania nieefektywności, wydobywanie przewag z nowego mnożnika i depozytów intra. Bardziej więc lekcja z rynku, kodów, logiki i kontraktów. Oczywiste, że wymagają szlifowania przed puszczeniem w realu. Wskazuję jedynie kierunki i możliwości.

    Jac- jeśli potrzebujesz większego lewarka to masz CFD na kontrakty FW20 na bossafx:)

  11. skrzat

    @kathy
    co jest źle w poniższym kodzie, system nie zamyka pozycji na zamknięciu

    Buy=Ref(C,-1)Ref(O,-1);

    Sell=Cover=Close;

    BuyPrice=ShortPrice=Open;

  12. skrzat

    w kodzie jest jeszcze linia

    Short=Ref(C,-1)>Ref(O,-1)

  13. Kornik

    Mam poważne wątpliwości, czy to dobry kierunek – wskazywanie początkującym takich, hmm – możliwości, których “nie ma szans wykorzystać z powodu niepewności co do ceny realizacji zlecenia”…

    Więc nie dziw się, że ktoś tam czegoś nie zauważył. Po co się zagłębiać, skoro rzut oka wystarczy, żeby stwierdzić, z czym ma się do czynienia – ani to inwestowanie, ani spekulacja – to jest czystej wody hazard.

    A szybki test to potwierdza. Wystarczy uwzględnić maluteńki poślizg (te na rynku są tak pewne, jak w życiu śmierć i podatki), żeby “miliony” nagle gdzieś wyparowały.

    W tej grze tylko prowizja jest stała i tylko pośrednicy z pewnością wyjdą na swoje.

    @Jac-

    Jestem za 😉 , ponieważ sam potrzebuję zostać “zylionerem” jeszcze przed końcem tego roku, gdyż na Sylwestra chciałbym się wypluskać w szampanie razem z J-Lo, która nic się nie zmieniła, a nawet tu i ówdzie się zaokrągliła. 🙂

  14. Spaider

    @kathy

    będę się jednak upierał, że reguły transakcji są jasne (i nic w nich nie brakuje). Wskazuje na to chociażby powyższy wpis: ” Sprawdziłem kod, prowizje, przeleciałem kilka losowych transakcji, policzyłem na kalkulatorze losowe wejścia z prowizjami – wszystko się zgadza jak we wpisie.”
    Inna sprawa, że wyniki testu i wykres wiele wspólnego z tymi regułami nie mają 🙂

    @skrzat
    w warunku Buy jest oczywiście znak <, jeśli tak to system zamyka pozycje na koniec dnia

  15. Spaider

    @skrzat

    jeśli chcesz, żeby pozycje były zamykane “na zamknięciu” to musi być:

    SellPrice=CoverPrice=Close;
    Sell=Cover=1;

  16. kathay (Post autora)

    @Kornik
    Akurat ten algorytm jest jak się to określa “robust”. Jeśli chcesz możemy zrobić wersję z wejściem +/- 8 tików i 2 tiki poślizg. Obie wersje czyli +/8 z poślizgiem lub 10 bez dają całkiem przyzwoitą przewagę jak na intra strategię, która ma być raczej inspiracją do dalszych ulepszeń niż końcowym produktem.
    Pewne “braki precyzji” leżą gdzie indziej. Ale nawet ich eliminacja nie kładzie przewagi.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę podać wartość CAPTCHA: *