Wykrywanie formacji na wykresach OHLC w backtestach

Wykrywanie formacji na wykresach OHLC w backtestach
bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1674
1

Osobom które tworzą własne narzędzia analityczne w .Net, lub opierają swoje analizy o szeroko pojęte price action mogę polecić narzędzie którego kiedyś bardzo mi brakowało w .Net i sam musiałem stworzyć, później rozwijałem w małym zespole, a mianowicie NuGet / repo które automatyzuje wykrywanie wszelkiego rodzaju formacji na wykresach:

https://github.com/przemyslawbak/OHLC_Candlestick_Patterns

Co jakiś czas dodawane są nowe funkcjonalności

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
1

Fajne, choć trochę ciężko mi uwierzyć że gdzieś tego już nie ma, mi się często wydaje że nie ma jakiejś biblioteki po czym implementując ją i konkretne algorytmy z tym związane często w końcu natrafiam na niszowe repo na githubie gdzie ktoś robił to samo.

W tym przypadku github podpowiada 3 strony wyników gdzie jest sporo podobnie wyglądających projektów, choć faktycznie wygląda na to że nikt nie zrobił z tego nugetowej paczki
https://github.com/kjcingel/CandlestickPatternRecognizer
https://github.com/BrendenCo/stockCandlestickAnalyzer
https://github.com/studio-hills/candlestick-analyzer-winforms
https://github.com/DanaBenish/CandleStickTrack
https://github.com/mattiadeidda91/CandlestickPatterns
https://github.com/harsha-yuvaraj/Stock-Analysis
https://github.com/victoria-field7/StockMarketDataApp
https://github.com/aatif101/Stock-Analyzer

Osobiście do takich zastosowań trzymałbym się pythona ze względu na wielkość społeczności, dedykowanych rozwiązań i prostoty kodu, ale chwali się że społeczność portuje rozwiązania na inne języki.

Korzystasz z tego osobiście do inwestowania?
Wydaje mi się że skuteczność tego typu analiz spada z każdym rokiem wraz ze wzrostem udziału AI i automatycznego pozbawionego emocji inwestowania, narzędzia próbują wyprzedzić prognozy o jeden krok w sumie zmieniając wszystkie zasady giełdy, powoli trzeba brać to pod uwagę i być dwa kroki do przodu.

Z punktu widzenia kodu jest trochę niedociągnięć, polecam zainstalować jakiś linter, użyć wbudowanych w VS refraktoryzacji, użyć resharpera albo dać do review AI. Kod jest niepotrzebnie rozwlekły w wielu miejscach i nie korzysta z nowszych featerów języka, ale też na przykład ma kilka quirków które wpływają na to że nie jest thread-safe, np

Kopiuj
        IPatterns _patterns;

        public AccuracyObject GetAverPercentPatternAccuracy(List<OhlcvObject> dataOhlcv, string patternName)
        {
            _patterns = new Patterns(dataOhlcv);

            var signalsList = _patterns.GetPatternsSignalsList(patternName);

            return GetAccuracyResults(signalsList, patternName);
        }

czemu metody Get tworzą i przypisują nowe obiekty do pól klasy? Takie zachowania tworzą kłopotliwe "gotchas" jeśli ktoś by chciał to wykorzystać w zrównoleglonym kodzie, choć nigdzie w sumie nie wspominasz że klasy są thread safe, ale z reguły metody "Get" takie są gdy nie mutujemy obiektu nawet gdy nie jest to jasno określone.

bakunet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 1674
0
obscurity napisał(a):

W tym przypadku github podpowiada 3 strony wyników gdzie jest sporo podobnie wyglądających projektów, choć faktycznie wygląda na to że nikt nie

Tutaj na obronę napiszę jedynie, że często oferują po kilka świeczkowych prostych patternów, chyba żaden nie wykrywa większych formacji.

Osobiście do takich zastosowań trzymałbym się pythona, ale chwali się że społeczność portuje rozwiązania na inne języki.

Nie wiem też czy Pythonowe paczki oferują taki zakres formacji. Ale nie robiłem większego researchu

Korzystasz z tego osobiście do inwestowania?

Używam jako część większego systemu analitycznego, który na bieżąco przepuszcza dane przez te metody i zapisuje wyniki, które później są zestawiane z innymi wskaźnikami.

Z punktu widzenia kodu jest trochę niedociągnięć, polecam zainstalować jakiś linter, użyć wbudowanych w VS refraktoryzacji, użyć resharpera albo dać do review AI. Kod jest niepotrzebnie rozwlekły w wielu miejscach i nie korzysta z nowszych featerów języka, ale też na przykład ma kilka quirków które wpływają na to że nie jest thread-safe,

Ciekawa uwaga, jak będę miał więcej czasu to przyjrzę się temu bliżej

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.