Proof of Concept: Motore di Backtesting con vectorbt (poc_vectorbt_engine.py)
1. Scopo
Questo script è un Proof of Concept (POC) che funge da prototipo per il motore di backtesting di FIRE. Il suo obiettivo è validare la fattibilità e la potenza della libreria vectorbt come framework per l’analisi quantitativa e il backtesting di strategie.
Lo script simula un intero flusso di lavoro di trading algoritmico in un ambiente isolato:
- Download Dati: Utilizza
vectorbt(che a sua volta usaccxt) per scaricare dati storici reali da un exchange (Binance). - Generazione Segnali: Implementa una semplice strategia basata sull’incrocio di due Medie Mobili Esponenziali (EMA).
- Esecuzione Backtest: Simula l’esecuzione della strategia su un portafoglio con un capitale iniziale e commissioni di trading realistiche.
- Analisi Performance: Calcola e stampa a schermo un report completo con le metriche di performance della strategia (Ritorno Totale, Max Drawdown, Win Rate, ecc.).
Questo POC è stato un passo cruciale nella fase di progettazione di FIRE e serve come implementazione di riferimento per le capacità di vectorbt.
2. Come si Lancia
Prerequisiti:
- Ambiente virtuale del progetto attivo.
- Dipendenze necessarie installate. Questo script richiede librerie che potrebbero non essere nel
requirements.txtprincipale di FIRE, comevectorbteccxt. Se non le hai, installale:pip install vectorbt ccxt
**Comando:**
Assicurati di essere nella directory principale del progetto ed esegui:
codeBash
python scripts/poc/poc_vectorbt_engine.py
## 3. Risultato Atteso
Lo script stamperà nel terminale i log di ogni fase del processo (download, calcolo, backtest).
L'output finale sarà una **tabella dettagliata con le statistiche di performance** del backtest, seguita da alcune metriche chiave evidenziate. Se tutti i passaggi vengono completati senza errori, il POC è considerato un successo.
**Nota:** Lo script contiene una riga commentata (# portfolio.plot().show()). Se decommentata, vectorbt genererà e aprirà automaticamente nel browser un dashboard interattivo con grafici dettagliati del backtest.
codeCode
Use Arrow Up and Arrow Down to select a turn, Enter to jump to it, and Escape to return to the chat.