Wpis z mikrobloga

Jakiś czas temu zbudowałem algorytm oparty o ML w stylu maszyny Boltzmanna który bazując na kluczowych parametrach ma za zadanie oszacować brakujący z nich. Na tej podstawie można oszacować odchylenie od "normalności" i jak się okazuje znajdywać momenty w których parametr próbuje powrócić do statystycznych wartości - mimo, że nie był w tym celu trenowany. Był on trenowany 2 lata temu na danych wtedy starszych niż rok. Też już wtedy, bez żadnego rozległego fine tuningu zrobiłem prosty wskaźnik polegający na tym kiedy wartości mocno odchylone wracają do normalności po przecięciu statystycznej wartości. Postanowiłem zrobić teraz większy test jego skuteczności, bez zmian jego parametrów, na danych z ostatnich 300 dni dla 250 dużych spółek z NASDAQ - większość z nich nawet nie wchodziła w set treningowy. Wyniki są całkiem obiecujące.

Wyniki dla 40 dni po sygnale przedstawione na pic rel. Najlepsze wyniki są dla notowań o dużej ilości wolumenu i spekulatywnym charakterze notowań. Sygnał pojawia się średnio 4 razy w roku. Jako, że ostatnio trend był spadkowy to dla sygnałów sprzedaży wyniki są trochę lepsze. Po sygnale wartość wyższa/niższa niż sygnał miała miejsce w 95% dla buy i 98% dla sell. No ale 0.01% więcej niż sygnał to żaden sygnał. Na pic widać średnie kanały dla środkowych 30% rozkładu. Bardziej informacyjne są jednak dwa obrazki po prawo:

W 80% przypadków po sygnale minimalny ruch we wskazaną stronę wynosił co najmniej 4/5% (średnio 12/14%) a maksymalny spadek nie przekraczał 7/13% (średnio 3/5%). W najlepszych 20% było to ponad ~15% wzrostu (średnio ~22%) i mniej niż 2% (średnio 0.3%) maksymalnego spadku. Jest to tylko goły sygnał a pomóc mu można dokonując chociażby wstępnej analizy spółek i na jego sygnału po prostu wejść w odpowiednim momencie.

#gielda
Pobierz
źródło: comment_1668820442rwVHKuoGDYWQpfZM1i2f1b.jpg
  • 11
@Bejro: Nie używam tego w ten sposób ale jeszcze szybka kalkulacja pod trading: celując w 80% sukcesu daje to średnio 13% zysku na pozycję i 20% szansy, że spadnie pod 13% - jako ceny close, więc można dodać troszkę zapasu do SL. Wtedy przy 80% na brak SL oznaczających 50% szans na TP 13% i średniej cenie po 40 dniach wynoszącej 4% (manualne zamknięcie) oraz 20% na stratę SL 16% daje
@majkitb: Tak wyszło xD Ten sygnał nie oznacza zmiany trendu a bardziej jego załamanie więc niekoniecznie spodziewałbym się teraz wzrostów o 100% ale statystycznie coś powinno podskoczyć
@krzy_glob: Open source od razu ( ͡° ͜ʖ ͡°). Obecnego kodu raczej nie będę udostępniać ale gdy pierwszy raz zbudowałem model na którym bazuje ten wskaźnik to pochwaliłem się i udostępniłem tu repo https://github.com/Bejro/marketPredict . Jest tam dokładnie ten sam model *.h5 oraz podobna analiza wskaźnika.
Teraz tylko chyba padas datareader nie działa ale można zastąpić go paczką yfinance. I nie zapisuję też scalerów bo śmiecą. Z