>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Rust

Hoe een Chinese aandelenanalyse-theorie naar Rust migreerde

In Aziatische algoritmische handel bestaat er een populair technisch analyseconcept genaamd Chan Lun (Chan Lun, of de 'Chan Zhong Shuo Chan'-theorie). Als je de filosofische opsmuk over Zen en oosterse wijsheid weglaat, is het in de kern een strikt geometrisch model van fractale decompositie van prijsgrafieken in patronen: pieken, dalen, segmenten en zogenaamde centrale consolidatiezones.

De czsc-bibliotheek bracht deze algoritmen naar code. Het project was oorspronkelijk geschreven in puur Python, maar bij het itereren door tick-data en het verwerken van honderden signalen实时 kon de interpreter niet meekomen. In de 1.0-branch herschreven de auteurs de gehele rekenkern in Rust, met vertrouwde Python-bindings aan de buitenkant via PyO3.

Laten we uiteenzetten hoe dit hulpmiddel werkt en waarom het interessant is buiten de Chinese markt.

Onder de Motorkap

De projectarchitectuur is duidelijk opgesplitst in twee lagen: een snelle rekenlaag in Rust en een gebruikersinterface in Python.

De Rust-laag (czsc._native) verricht het zware werk:

  • Basisgegevensstructuren en het samenvoegen van bars in hogere timeframes
  • Geometrische patroonherkenning voor Chan-theorie (fractalen FX, segmenten BI, zones ZS)
  • Een bibliotheek van meer dan 220 kant-en-klare signaalfuncties
  • Technische indicatoren (SMA, EMA, Bollinger Bands)

De Python-laag organiseert de werkstromen:

  • Connectors naar databronnen zoals Tushare, TQSdk en crypto-beurzen via CCXT
  • Strategie-opbouw en compositie van handelsevenementen
  • Generatie van standalone HTML-rapporten met interactieve grafieken

Deze aanpak levert een flinke snelheidsboost op: het parsen van tienduizenden candles en het genereren van signalen gebeurt zonder de typische Python-vertragingen.

Snelle Start

Python 3.10 of hoger is vereist. Bij installatie vanaf PyPI is geen Rust-compiler nodig, aangezien de auteur kant-en-klare wheel-packages bouwt voor populaire platforms:

Bij het bouwen vanaf de broncode heb je een recente cargo en het maturin-hulpprogramma nodig:

Werken met Grafieken en Patroonherkenning

De bibliotheek accepteert quotes als een standaard pandas.DataFrame, zet ze vervolgens om naar RawBar-structuren en berekent de prijsbewegingsgeometrie:

Het CZSC-object filtert automatisch interne bars (de mechanica van het omsluiten van één prijsbereik door een ander), vindt lokale extremen en assembleert directionele segmenten daaruit.

Synthese van Hogere Timeframes en Signaalgeneratie

Een handig hulpmiddel binnen de bibliotheek is BarGenerator. Hiermee kun je minutenbars in een stream invoeren en gesynchroniseerde candles voor 5-minuten, 30-minuten of dagelijkse intervallen实时 krijgen:

Na het synthetiseren van timeframes kun je kant-en-klare signalen koppelen. Meer dan tweehonderd patronen zijn ingebakken in de repository, geïmplementeerd in Rust:

Visualisatie en Backtesting

Naar rijke arrays van punten kijken is onhandig. czsc heeft een ingebouwde visualisatiemodule gebaseerd op plotly en lightweight-charts. Het genereert een kant-en-klaar zelfstandig HTML-bestand met candlesticks overlapt met segmenten en instappunten:

Voor strategieverificatie heeft de auteur de rendementsberekeningen geëxtraheerd naar een apart pakket genaamd wbt (Weight Back Test), wat een harde afhankelijkheid is. Het model werkt op veranderingen in doelportefeuillegewichten over tijd in plaats van discrete orders, wat schaling naar een mandje van instrumenten vereenvoudigt.

Nuances en Ruwe Randen

Het project heeft specifieke kenmerken die het waard zijn om te weten voordat je begint:

  • Bijna alle documentatie, code-opmerkingen en signaalnamen zijn in het Chinees. Om de logica van sommige functies te begrijpen, heb je een vertaler bij de hand nodig.
  • Sterke koppeling aan Aziatische databronnen (Tushare, Tianqin), hoewel CCXT-beschikbaarheid dit gladstrijkt voor degenen die cryptocurrency verhandelen.
  • Versie 1.0 brak achterwaartse compatibiliteit met de 0.9-branch. Als je eerder met czsc hebt gewerkt, moet je je code herschrijven voor de nieuwe API.

Voor Wie Is Dit Project Nuttig

De bibliotheek is nuttig voor quant-ontwikkelaars en handelaren die een alternatief zoeken voor klassieke indicatoren zoals RSI of MACD. Chan Lun biedt strikte formalisatie van supportniveaus en trendstructuren, en de Rust-kern binnen czsc elimineert de noodzaak om zware grafiekgeometrieberekeningen vanaf nul te schrijven. Om te beginnen is basis Python-kennis en een begrip van hoe prijs-tijdreeksen werken voldoende.

Gerelateerde projecten