trading-algoritmico-DataInvestor-parte5

DataInvestor – Nuove funzionalità per simulare portafogli di investimento

Sommario

SCRIVIMI SU TELEGRAM

Per informazioni, suggerimenti, collaborazioni...

Se è la prima volta che atterri su DataTrading, BENVENUTO!

Lascia che mi presenti. Sono Gianluca, ingegnere, trekker e appassionato di coding, finanza e trading. Leggi la mia storia.

Ho creato DataTrading per aiutare le altre persone ad utilizzare nuovi approcci e nuovi strumenti, ed applicarli correttamente al mondo del trading.

DataTrading vuole essere un punto di ritrovo per scambiare esperienze, opinioni ed idee.

TUTORIAL

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 PositionPositionHandlerPortfolio, 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 [email protected].

Torna su