>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Rust

Como uma Teoria Chinesa de Análise de Ações Migrou para Rust

No trading algorítmico asiático, existe um conceito popular de análise técnica chamado Chan Lun (Chan Lun, ou a teoria 'Chan Zhong Shuo Chan'). Abstraindo a filosofia sobre Zen e sabedoria oriental, em seu núcleo é um modelo geométrico estrito de decomposição fractal de gráficos de preços em padrões: picos, vales, segmentos e as chamadas zonas de consolidação central.

A biblioteca czsc trouxe esses algoritmos para o código. O projeto foi originalmente escrito em Python puro, mas quando se tratou de iterar através de dados de ticks e processar centenas de sinais em tempo real, o interpretador não conseguia acompanhar. Na branch 1.0, os autores reescreveram todo o núcleo matemático em Rust, mantendo as bindings Python familiares por fora via PyO3.

Vamos detalhar como esta ferramenta funciona e por que é interessante além do mercado chinês.

Por Trás dos Panos

A arquitetura do projeto é claramente dividida em duas camadas: uma camada computacional rápida em Rust e uma interface de usuário em Python.

A camada Rust (czsc._native)进行处理繁重的工作:

  • Estruturas de dados básicas e mesclagem de barras em timeframes superiores
  • Reconhecimento de padrões geométricos para a teoria Chan (fractais FX, segmentos BI, zonas ZS)
  • Uma biblioteca de mais de 220 funções de sinais prontas para uso
  • Indicadores técnicos (SMA, EMA, Bandas de Bollinger)

A camada Python organiza os fluxos de trabalho:

  • Conectores para fontes de dados como Tushare, TQSdk e exchanges de criptomoedas via CCXT
  • Construção de estratégias e composição de eventos de trading
  • Geração de relatórios HTML autônomos com gráficos interativos

Esta abordagem oferece um bom ganho de velocidade: analisar dezenas de milhares de candles e gerar sinais acontece sem os atrasos típicos do Python.

Início Rápido

É necessário Python 3.10 ou superior. Se instalar do PyPI, um compilador Rust não é necessário, já que o autor constrói pacotes wheel pré-fabricados para plataformas populares:

Se construir a partir do código-fonte, você precisará de um cargo recente e do utilitário maturin:

Trabalhando com Gráficos e Reconhecimento de Padrões

A biblioteca aceita cotações como um pandas.DataFrame padrão, então os converte para estruturas RawBar e calcula a geometria do movimento de preços:

O objeto CZSC filtra automaticamente barras internas (a mecânica de um intervalo de preços englobando outro), encontra extremos locais e monta segmentos direcionais a partir deles.

Síntese de Timeframes Superiores e Geração de Sinais

Um utilitário útil dentro da biblioteca é BarGenerator. Ele permite alimentar barras de minutos em um fluxo e obter candles sincronizados para intervalos de 5 minutos, 30 minutos ou diários em tempo real:

Após sintetizar os timeframes, você pode anexar sinais prontos. Mais de duzentos padrões estão incluídos no repositório, implementados em Rust:

Visualização e Backtesting

Olhar para arrays brutos de pontos é inconveniente. czsc tem um módulo de visualização integrado baseado em plotly e lightweight-charts. Ele gera um arquivo HTML autocontido com candles sobrepostos com segmentos e pontos de entrada:

Para verificação de estratégias, o autor extraiu os cálculos de retornos para um pacote separado chamado wbt (Weight Back Test), que é uma dependência rígida. O modelo opera em mudanças nos pesos do portfólio-alvo ao longo do tempo em vez de ordens discretas, o que simplifica o dimensionamento para uma cesta de instrumentos.

Nuances e Imperfeições

O projeto tem especificidades que vale a pena conhecer antes de começar:

  • Quase toda a documentação, comentários de código e nomes de sinais estão em chinês. Para entender a lógica de algumas funções, você precisará de um tradutor à mão.
  • Acoplamento forte com fontes de dados asiáticas (Tushare, Tianqin), embora a disponibilidade do CCXT amenize isso para quem opera criptomoedas.
  • A versão 1.0 quebrou a compatibilidade com a branch 0.9. Se você trabalhou com czsc antes, precisará reescrever seu código para a nova API.

Quem Encontrará Este Projeto Útil

A biblioteca será útil para desenvolvedores quant e traders que buscam uma alternativa aos indicadores clássicos como RSI ou MACD. Chan Lun fornece formalização estrita de níveis de suporte e estruturas de tendência, e o núcleo Rust dentro do czsc elimina a necessidade de escrever cálculos pesados de geometria de gráficos do zero. Para começar, conhecimento básico de Python e compreensão de como séries temporais de preços funcionam é suficiente.

Projetos relacionados