>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Rust

Wie eine chinesische Aktienanalysetheorie nach Rust migrierte

Im asiatischen algorithmischen Handel gibt es ein beliebtes Konzept der technischen Analyse namens Chan Lun (Chan Lun, oder die „Chan Zhong Shuo Chan“-Theorie). Ohne den philosophischen Überbau über Zen und östliche Weisheit ist es im Kern ein strenges geometrisches Modell der fraktalen Zerlegung von Preischarts in Muster: Hochs, Tiefs, Segmente und sogenannte zentrale Konsolidierungszonen.

Die czsc-Bibliothek brachte diese Algorithmen in Code. Das Projekt wurde ursprünglich in reinem Python geschrieben, aber als es darum ging, Tick-Daten zu durchlaufen und Hunderte von Signalen gleichzeitig zu verarbeiten, konnte der Interpreter nicht mithalten. Im 1.0-Branch schrieben die Autoren den gesamten mathematischen Kern in Rust neu und ließen vertraute Python-Bindings außen vor via PyO3.

Lassen Sie uns aufschlüsseln, wie dieses Tool funktioniert und warum es über den chinesischen Markt hinaus interessant ist.

Unter der Haube

Die Projektarchitektur ist klar in zwei Schichten unterteilt: eine schnelle Rechenschicht in Rust und eine Benutzeroberfläche in Python.

Die Rust-Schicht (czsc._native) übernimmt das schwere Rechnen:

  • Grundlegende Datenstrukturen und Zusammenführen von Bars zu höheren Timeframes
  • Geometrische Mustererkennung für die Chan-Theorie (Fraktale FX, Segmente BI, Zonen ZS)
  • Eine Bibliothek mit über 220 fertigen Signalfunktionen
  • Technische Indikatoren (SMA, EMA, Bollinger Bands)

Die Python-Schicht organisiert die Workflows:

  • Connectoren zu Datenquellen wie Tushare, TQSdk und Krypto-Börsen über CCXT
  • Strategiebau und Zusammenstellung von Trading-Events
  • Generierung eigenständiger HTML-Reports mit interaktiven Charts

Dieser Ansatz liefert einen ordentlichen Geschwindigkeitsschub: Das Parsen von Zehntausenden von Candles und die Generierung von Signalen geschieht ohne die typischen Python-Verzögerungen.

Schneller Einstieg

Python 3.10 oder höher wird benötigt. Bei der Installation von PyPI wird kein Rust-Compiler benötigt, da der Autor fertige Wheel-Pakete für beliebte Plattformen erstellt:

Beim Bauen aus dem Quellcode benötigen Sie ein aktuelles cargo und das maturin-Utility:

Arbeiten mit Charts und Mustererkennung

Die Bibliothek akzeptiert Quotes als Standard-pandas.DataFrame, konvertiert sie dann in RawBar-Strukturen und berechnet die Geometrie der Preisbewegung:

Das CZSC-Objekt filtert automatisch interne Bars (die Mechanik eines Preisbereichs, der einen anderen umschließt), findet lokale Extrema und assembliert daraus gerichtete Segmente.

Höhere Timeframe-Synthese und Signalgenerierung

Ein nützliches Utility innerhalb der Bibliothek ist BarGenerator. Es ermöglicht Ihnen, Minuten-Bars in einem Stream zu füttern und synchronisierte Candles für 5-Minuten-, 30-Minuten- oder Tagesintervalle on the fly zu erhalten:

Nach der Synthese von Timeframes können Sie fertige Signale anhängen. Über zweihundert Muster sind im Repository eingebaut, implementiert in Rust:

Visualisierung und Backtesting

Rohe Arrays von Punkten zu betrachten ist unbequem. czsc hat ein eingebautes Visualisierungsmodul basierend auf plotly und lightweight-charts. Es generiert eine fertige, in sich geschlossene HTML-Datei mit Candlesticks, überlagert mit Segmenten und Einstiegspunkten:

Für die Strategieüberprüfung hat der Autor die Renditeberechnungen in ein separates Paket namens wbt (Weight Back Test) extrahiert, das eine harte Abhängigkeit darstellt. Das Modell arbeitet mit Änderungen der Zielportfolio-Gewichte über die Zeit anstelle von diskreten Orders, was die Skalierung auf einen Korb von Instrumenten vereinfacht.

Nuancen und Kanten

Das Projekt hat Spezifika, die man kennen sollte, bevor man anfängt:

  • Fast die gesamte Dokumentation, Code-Kommentare und Signalnamen sind auf Chinesisch. Um die Logik einiger Funktionen zu verstehen, brauchen Sie einen Übersetzer zur Hand.
  • Starke Kopplung an asiatische Datenquellen (Tushare, Tianqin), obwohl die Verfügbarkeit von CCXT dies für diejenigen glättet, die Kryptowährungen handeln.
  • Version 1.0 brach die Abwärtskompatibilität mit dem 0.9-Branch. Wenn Sie zuvor mit czsc gearbeitet haben, müssen Sie Ihren Code für die neue API umschreiben.

Wem das Projekt nützen wird

Die Bibliothek ist nützlich für Quant-Entwickler und Trader, die eine Alternative zu klassischen Indikatoren wie RSI oder MACD suchen. Chan Lun bietet strenge Formalisierung von Unterstützungsniveaus und Trendstrukturen, und der Rust-Kern in czsc eliminiert die Notwendigkeit, schwere Chart-Geometrie-Berechnungen von Grund auf zu schreiben. Um zu starten, reichen grundlegende Python-Kenntnisse und ein Verständnis dafür, wie Preis-Zeitreihen funktionieren.

Ähnliche Projekte