>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Rust

Comment une théorie d'analyse boursière chinoise a migré vers Rust

Dans le trading algorithmique asiatique, il existe un concept populaire d'analyse technique appelé Chan Lun (Chan Lun, ou la théorie du « Chan Zhong Shuo Chan »). En retirant le verbiage philosophique sur le Zen et la sagesse orientale, il s'agit au cœur d'un modèle géométrique strict de décomposition fractale des graphiques de prix en motifs : pics, creux, segments et zones de consolidation centrales.

La bibliothèque czsc a将这些算法带入代码。该项目最初是用纯Python编写的,但当涉及到迭代tick数据和实时处理数百个信号时,解释器无法跟上。在1.0分支中,作者用Rust重写了整个数学核心,通过PyO3保留了外部熟悉的Python绑定。

Décomposons comment cet outil fonctionne et pourquoi il est intéressant au-delà du marché chinois.

Sous le capot

L'architecture du projet est clairement divisée en deux couches : une couche de calcul rapide en Rust et une interface utilisateur en Python.

La couche Rust (czsc._native) gère le travail intensif :

  • Structures de données de base et fusion des barres en timeframes plus élevés
  • Reconnaissance de motifs géométriques pour la théorie Chan (fractales FX, segments BI, zones ZS)
  • Une bibliothèque de plus de 220 fonctions de signal prêtes à l'emploi
  • Indicateurs techniques (SMA, EMA, Bandes de Bollinger)

La couche Python organise les flux de travail :

  • Connecteurs vers des sources de données comme Tushare, TQSdk et échanges de crypto via CCXT
  • Construction de stratégies et composition d'événements de trading
  • Génération de rapports HTML autonomes avec des graphiques interactifs

Cette approche offre un bon gain de vitesse : l'analyse de dizaines de milliers de chandeliers et la génération de signaux se font sans les délais typiques de Python.

Démarrage rapide

Python 3.10 ou supérieur est requis. Si vous installez depuis PyPI, un compilateur Rust n'est pas nécessaire puisque l'auteur construit des paquets wheel prêts à l'emploi pour les plateformes populaires :

Si vous compilez depuis les sources, vous aurez besoin d'un cargo récent et de l'utilitaire maturin :

Travailler avec les graphiques et la reconnaissance de motifs

La bibliothèque accepte les cotations comme un pandas.DataFrame standard, puis les convertit en structures RawBar et calcule la géométrie du mouvement des prix :

L'objet CZSC filtre automatiquement les barres internes (les mécanismes d'une plage de prix englobant une autre), trouve les extrema locaux et assemble des segments directionnels à partir de ceux-ci.

Synthèse des timeframes supérieurs et génération de signaux

Un utilitaire pratique à l'intérieur de la bibliothèque est BarGenerator. Il vous permet de fournir des barres minute en flux continu et d'obtenir des chandeliers synchronisés pour des intervalles de 5 minutes, 30 minutes ou quotidiens à la volée :

Après la synthèse des timeframes, vous pouvez attacher des signaux prêts à l'emploi. Plus de deux cents motifs sont intégrés dans le dépôt, implémentés en Rust :

Visualisation et backtesting

Regarder des tableaux bruts de points n'est pas pratique. czsc dispose d'un module de visualisation intégré basé sur plotly et lightweight-charts. Il génère un fichier HTML autonome prêt à l'emploi avec des chandeliers superposés aux segments et points d'entrée :

Pour la vérification de stratégie, l'auteur a extrait les calculs de rendements dans un paquet séparé appelé wbt (Weight Back Test), qui est une dépendance dure. Le modèle opère sur les changements des pondérations cibles du portefeuille au fil du temps plutôt que sur des ordres discrets, ce qui simplifie la mise à l'échelle à un panier d'instruments.

Nuances et aspérités

Le projet a des spécificités worth knowing avant de commencer :

  • Presque toute la documentation, les commentaires de code et les noms de signaux sont en chinois. Pour comprendre la logique de certaines fonctions, vous aurez besoin d'un traducteur à portée de main.
  • Forte dépendance aux sources de données asiatiques (Tushare, Tianqin), bien que la disponibilité de CCXT atténue cela pour ceux qui tradent des cryptomonnaies.
  • La version 1.0 a cassé la compatibilité ascendante avec la branche 0.9. Si vous avez travaillé avec czsc auparavant, vous devrez réécrire votre code pour la nouvelle API.

Qui trouvera ce projet utile

La bibliothèque sera utile pour les développeurs quant et les traders cherchant une alternative aux indicateurs classiques comme le RSI ou le MACD. Chan Lun fournit une formalisation stricte des niveaux de support et des structures de tendance, et le cœur Rust à l'intérieur de czsc élimine le besoin d'écrire des calculs de géométrie de graphiques lourds from scratch. Pour commencer, des connaissances de base en Python et une compréhension du fonctionnement des séries temporelles de prix suffisent.

Projets similaires