File 1: docs/poc/poc_fast_scanner.md

Comandi e file

(.venv) PS D:\01_DevOps\fire\fireDev_12>

python scripts/poc/poc_fast_scanner.py --watchlist "D:/01_DevOps/fire/fire_resource/watchlist/DOW_JONES_30.csv" --strategy "D:/01_DevOps/fire/fire_resource/strategies/slingshot_strategy.py"

Transclude of poc_fast_scanner.py

Note: Vedi le versioni successive:

Screenshot:

Proof of Concept: Ottimizzazione Performance Signal Scanner

1. Scopo

Questo Proof of Concept (POC) è stato creato per diagnosticare e risolvere un grave problema di performance nello Signal Scanner di FIRE. La versione iniziale dello scanner impiegava un tempo inaccettabile (15-20 secondi per ticker) per analizzare una watchlist, rendendo la funzionalità inutilizzabile.

L’obiettivo di questo script era duplice:

  1. Diagnosi: Dimostrare che la lentezza era dovuta al MockBacktestEngine che eseguiva una simulazione completa dell’intera cronologia dei prezzi per ogni ticker.
  2. Validazione Soluzione: Progettare, implementare e benchmarkare un nuovo motore di scansione ottimizzato (StatelessMockEngine) la cui logica fosse “stateless” e si concentrasse esclusivamente sull’analisi dell’ultima barra disponibile.

Lo script ha validato che l’approccio “last-bar only” era non solo drasticamente più veloce, ma anche logicamente più corretto per lo scopo di uno scanner, eliminando i falsi positivi generati da segnali di uscita.

2. Come si Lancia

Prerequisiti:

  • Ambiente virtuale del progetto attivo.

Comando: Dalla directory principale del progetto, eseguire uno degli script (v2 o v3 per il lookback). È necessario specificare il percorso della watchlist e della strategia da testare.

python scripts/poc/poc_fast_scanner_v3.py --watchlist "path/to/watchlist.csv" --strategy "path/to/strategy.py" --lookback 7

3. Risultato Atteso

Lo script esegue una scansione sulla watchlist specificata e stampa i seguenti output nel terminale:

  1. Log in tempo reale: Mostra ogni ticker analizzato e se è stato trovato un segnale.
  2. Report Finale: Un elenco pulito di tutti i ticker che hanno generato un segnale nell’intervallo di lookback.
  3. Benchmark di Performance: Statistiche finali che mostrano il tempo totale di esecuzione e, soprattutto, il tempo medio per ticker in millisecondi.

Il POC è considerato un successo se il tempo medio per ticker è nell’ordine delle centinaia di millisecondi, dimostrando un miglioramento di ordini di grandezza rispetto all’implementazione originale.