>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Rust

Jak chińska teoria analizy giełdowej przeniosła się do Rust

W azjatyckim handlu algorytmicznym istnieje popularna koncepcja analizy technicznej zwana Chan Lun (Chan Lun, czyli teoria „Chan Zhong Shuo Chan”). Odrzucając filozoficzne ozdobniki dotyczące zen i mądrości wschodu, w swojej istocie jest to ścisły model geometryczny fraktalnej dekompozycji wykresów cenowych na wzorce: szczyty, dołki, segmenty i tak zwane strefy konsolidacji centralnej.

Biblioteka czsc przeniosła te algorytmy do kodu. Projekt był pierwotnie napisany w czystym Pythonie, ale gdy przyszło do iterowania przez dane tickowe i obsługi setek sygnałów w locie, interpreter nie dawał rady. W gałęzi 1.0 autorzy przepisali cały rdzeń matematyczny w Rust, pozostawiając znajome powiązania Pythona na zewnątrz przez PyO3.

Przyjrzyjmy się, jak to narzędzie działa i dlaczego jest interesujące poza chińskim rynkiem.

Pod maską

Architektura projektu jest wyraźnie podzielona na dwie warstwy: szybka warstwa obliczeniowa w Rust i interfejs użytkownika w Pythonie.

Warstwa Rust (czsc._native) wykonuje ciężką pracę:

  • Podstawowe struktury danych i łączenie świec w wyższe interwały czasowe
  • Rozpoznawanie wzorców geometrycznych dla teorii Chan (fraktale FX, segmenty BI, strefy ZS)
  • Biblioteka ponad 220 gotowych funkcji sygnałowych
  • Wskaźniki techniczne (SMA, EMA, Wstęgi Bollingera)

Warstwa Python organizuje przepływy pracy:

  • Konektory do źródeł danych, takich jak Tushare, TQSdk i giełdy kryptowalut przez CCXT
  • Budowanie strategii i kompozycja zdarzeń tradingowych
  • Generowanie samodzielnych raportów HTML z wykresami interaktywnymi

To podejście zapewnia niezły wzrost szybkości: parsowanie dziesiątek tysięcy świec i generowanie sygnałów odbywa się bez typowych opóźnień Pythona.

Szybki start

Wymagany jest Python 3.10 lub nowszy. Instalując z PyPI, kompilator Rust nie jest potrzebny, ponieważ autor buduje gotowe pakiety wheel dla popularnych platform:

Budując ze źródeł, będziesz potrzebować najnowszego cargo i narzędzia maturin:

Praca z wykresami i rozpoznawanie wzorców

Biblioteka przyjmuje notowania jako standardowy pandas.DataFrame, następnie konwertuje je do struktur RawBar i oblicza geometrię ruchu cen:

Obiekt CZSC automatycznie filtruje świece wewnętrzne (mechanika jednego zakresu cenowego obejmującego inny), znajduje ekstrema lokalne i składa z nich segmenty kierunkowe.

Synteza wyższych interwałów czasowych i generowanie sygnałów

Jedną z przydatnych funkcji w bibliotece jest BarGenerator. Pozwala na wprowadzanie świec minutowych w strumieniu i uzyskiwanie zsynchronizowanych świec dla interwałów 5-minutowych, 30-minutowych lub dziennych w locie:

Po syntezie interwałów można dołączyć gotowe sygnały. Ponad dwieście wzorców jest wbudowanych w repozytorium, zaimplementowanych w Rust:

Wizualizacja i backtesting

Patrzenie na surowe tablice punktów jest niewygodne. czsc ma wbudowany moduł wizualizacji oparty na plotly i lightweight-charts. Generuje gotowy samodzielny plik HTML ze świecami nałożonymi na segmenty i punkty wejścia:

Do weryfikacji strategii autor wyodrębnił obliczenia zwrotów do osobnego pakietu o nazwie wbt (Weight Back Test), który jest twardą zależnością. Model operuje na zmianach docelowych wag portfela w czasie, a nie na dyskretnych zleceniach, co upraszcza skalowanie do koszyka instrumentów.

Niuanse i niedociągnięcia

Projekt ma specyfiki, o których warto wiedzieć przed rozpoczęciem:

  • Prawie cała dokumentacja, komentarze w kodzie i nazwy sygnałów są w języku chińskim. Aby zrozumieć logikę niektórych funkcji, będziesz potrzebować tłumacza pod ręką.
  • Silne powiązanie z azjatyckimi źródłami danych (Tushare, Tianqin), choć dostępność CCXT wygładza to dla handlujących kryptowalutami.
  • Wersja 1.0 złamała wsteczną kompatybilność z gałęzią 0.9. Jeśli wcześniej pracowałeś z czsc, będziesz musiał przepisać kod pod nowy interfejs API.

Kto znajdzie ten projekt użyteczny

Biblioteka będzie przydatna dla programistów quant i traderów szukających alternatywy dla klasycznych wskaźników, takich jak RSI czy MACD. Chan Lun zapewnia ścisłą formalizację poziomów wsparcia i struktur trendu, a rdzeń w Rust w czsc eliminuje potrzebę pisania ciężkich obliczeń geometrii wykresów od zera. Aby rozpocząć, wystarczy podstawowa znajomość Pythona i zrozumienie, jak działają szeregi czasowe cen.

Powiązane projekty