Abbiamo trascorso gli ultimi mesi ad aggiornare il framework di backtesting open-source DataInvestor. In particolare, abbiamo implementato nuove funzionalità e migliorato le performance di quelle già esistenti.
File di Configurazione
Per prima cosa abbiamo eliminato la necessità di specificare una variabile di ambiente DATAINVESTOR_CSV_DATA_DIR
per specificare dove DataInvestor deve recuperare i file CSV con i dati OHLCV da analizzare. In alcuni casi specificare la variabile d’ambiente causava alcune difficoltà di installazione.
Nonostante è comune impostare le envvars su sistemi basati su Unix, è meno frequente e più complito per gli utenti di Windows. Per facilitare l’uso del framework abbiamo modificato la logica di inizializzazione e configurazione. Nella nuova versione abbiamo previsto la presenza di un file di configurazione config.yaml
nella stessa directory dello script di backtesting Python, dove specificare la directory dei file CSV e la directory dove memorizzare i file di output. Se il file non è presente, il framework usa le configurazioni di default.
Abbiamo quindi modificato le istruzioni di avvio del framework descritte nel README di Github. L’esempio di portafoglio 60/40 tra azioni/obbligazioni è ora più semplice da eseguire su Windows, con l’installazione di Anaconda 3.7 .
Oltre a quanto sopra, abbiamo anche aggiunto ulteriori unit test per alcuni moduli. Ciò porta la nostra attuale copertura di test al 62% . Il nostro obiettivo è continuare a migliorare il testing per ogni funzione.
Abbiamo anche riordinato il codice per fornire maggiore chiarezza sulla compatibilità e stabilità di DataInvestor. In particolare, DataInvestor è ora testato per le versioni 3.6, 3.7, 3.8 e 3.9 di Python.
Posizioni Long/Short
La modifica più significativa ha causato una revisione significativa delle classi Position, PositionHandler, Portfolio, Transaction e SimulatedBroker per consentire la gestione delle posizioni short, cioè la vendita allo scoperto di asset.
Le precedenti versioni di DataInvestor prevedeva solo la gestione di portafogli long-only. Ora possiamo simulare portafogli long-short con leva utilizzando un modello semplificato di margine. In particolare, DataInvestor può ora simulare strategie di pairs trading con ritorno alla media, come la strategia di pairs trading basata sul filtro di Kalman, descritta in precedenza su questo sito utilizzando il nostro framework DataTrader.
Abbiamo anche corretto alcuni bug che ci erano stati segnalati tramite l’e-mail di supporto di DataTrading, in modo da consentire ai nuovi utenti di iniziare più rapidamente a lavorare con il framework.
Prossimi passi
I nostri obiettivi immediati sono continuare a sviluppare una documentazione più approfondita, aumentare la copertura dei test, correggere eventuali bug ed implementare simulazioni di portafogli ancora più realistiche.
Come sempre, se hai domande, dubbi o problemi nell’uso di DataInvestor puoi scrivere a .