.\.venv\Scripts\Activate.ps1
python .\scripts\poc\poc_line_break_generator.py

Transclude of poc_line_break_chart

Transclude of poc_line_break_generator.py

Contesto

Similmente ai grafici Kagi, i grafici “Three Line Break” sono una tecnica di charting giapponese che filtra il rumore di mercato e aiuta a identificare i trend in modo più chiaro. Le regole per la loro costruzione sono uniche e non sono comunemente supportate dalle librerie di charting standard.

Per integrare questa potente tecnica di analisi in FIRE, era necessario verificare la nostra capacità di:

  1. Implementare la Logica: Sviluppare un algoritmo custom che, partendo da dati OHLC, potesse calcolare correttamente la sequenza di “linee” (blocchi bianchi/neri o verdi/rossi) secondo le regole del Three Line Break.
  2. Scegliere una Visualizzazione Adeguata: Trovare un modo efficace per rappresentare le “linee” generate, che sono simili a candele senza ombre, utilizzando una libreria come Plotly.

Decisione

Abbiamo sviluppato uno script di Proof of Concept (poc_line_break_generator.py) che implementa l’algoritmo per il calcolo dei dati Three Line Break e ne genera una visualizzazione interattiva.

Le decisioni tecniche chiave implementate nello script sono:

  • Algoritmo Custom (calculate_line_break): È stato scritto un algoritmo da zero che itera sui prezzi di chiusura e costruisce una sequenza di “linee”. La logica implementa correttamente la regola fondamentale: una nuova linea viene disegnata solo se il prezzo di chiusura supera il massimo o il minimo delle tre linee precedenti.
  • Integrazione con il DataManager: Lo script si collega ai moduli core di FIRE per il caricamento dei dati, dimostrando la compatibilità dell’algoritmo con l’architettura esistente.
  • Visualizzazione Intelligente con go.Candlestick: Invece di disegnare manualmente le linee, si è brillantemente deciso di riadattare l’oggetto go.Candlestick di Plotly. Il DataFrame generato dall’algoritmo ha le colonne open, high, low, close necessarie, permettendo di usare un componente già esistente, potente e ben ottimizzato per la visualizzazione.
  • Output Autonomo: Lo script produce un file HTML completo (poc_line_break_chart.html) che contiene il grafico interattivo, facilitando la revisione e la validazione del risultato.

Conseguenze

Positive

  • Validazione dell’Algoritmo: Il POC ha confermato che la logica, anche se complessa, può essere implementata internamente, garantendo pieno controllo e assenza di dipendenze esterne per questa funzionalità.
  • Soluzione di Visualizzazione Elegante: L’utilizzo dell’oggetto go.Candlestick si è rivelata una soluzione molto intelligente ed efficiente, evitando la necessità di scrivere codice di plotting custom e complesso e sfruttando al contempo le performance e l’interattività di un componente nativo di Plotly.
  • Codice Riutilizzabile: L’algoritmo e la logica di plotting sviluppati nel POC sono direttamente trasferibili in un modulo di analisi o in un componente UI di FIRE con modifiche minime.
  • Potenziale di Personalizzazione: Essendo il codice nostro, possiamo facilmente estenderlo per supportare varianti (es. Two Line Break) o per personalizzare le regole di calcolo.

Negative / Limitazioni

  • Manutenzione Interna: La responsabilità della correttezza e della manutenzione dell’algoritmo è interamente a carico del team di sviluppo.
  • Performance su Vasta Scala: L’implementazione attuale, basata su un ciclo for in Python, è ideale per un POC ma potrebbe richiedere ottimizzazioni (es. vettorizzazione) se dovesse essere eseguita su serie storiche estremamente lunghe in contesti che richiedono alte prestazioni.