In questo descriviamo come installare un ambiente di ricerca sul trading algoritmico con Python su Windows, cioè come installare Python e tutte le librerie utili per iniziare ad analizzare i dati finanziari e testare le strategie di trading algoritmico.
In precedenza abbiamo pubblicato un articolo sulla creazione di un ambiente di ricerca sul trading algoritmico con Ubuntu Linux e Python. Quando l’articolo fu scritto per la prima volta, installare Python non era semplice. Problemi con i compilatori GCC, dipendenze incrociate tra librerie e complessità del sistema operativo avevano un ruolo importante nel rendere l’installazione di Python molto più difficile del necessario. Oggigiorno il problema è in gran parte risolto. In effetti ora ci sono così tante opzioni per installare Python che è facile confondersi.
Esistono molti approcci diversi che possiamo adottare per installare Python e ci sono molte opinioni contraddittorie su quale sia l’approccio migliore. Il mio consiglio è scegliere il metodo in base a come si vuole utilizzare il linguaggio di programmazione. Se prevediamo di utilizzare Python per esplorare il trading algoritmico, questo articolo mostra come rendere operativo un ambiente di ricerca sul trading algoritmico con Python su Windows nel modo più semplice possibile. Se avete familiarità con la programmazione e l’installazione di software, potrebbe essere preferibile installare la distribuzione ufficiale Python. Può essere utile questo eccellente tutorial .
Ad oggi consigliamo di utilizzare la distribuzione Anaconda Python di Continuum Analytics, che ha i seguenti vantaggi:
- Anaconda include tutte le librerie necessarie per iniziare ad analizzare i dati finanziari. Per citare il loro sito Web, Anaconda è una distribuzione Python e R che fornisce tutto ciò di cui hai bisogno (in termini di Python) per il data science .
- Anaconda è fornito con Conda. Un gestore di pacchetti che permette di installare, aggiornare e disinstallare tutte le librerie Python. Può installare pacchetti conda pre-costruiti o pacchetti creati dal codice sorgente. Conda può anche creare e gestire gli ambienti virtuali.
- Anaconda funziona bene con i notebook Jupyter. Utilizzando IPyKernel si può collegare facilmente e velocemente gli ambienti virtuali ai nostri notebook.
Quando installiamo Anaconda, abbiamo accesso immediato a oltre 1500 librerie Python tra cui NumPy, SciPy, Pandas, Beautiful Soup e Requests. Come mostrato nei prossimo articoli su trading algoritmico, possiamo controllare le versioni di queste librerie quando creiamo i nostri ambienti virtuali. Alcune delle critiche rivolte ad Anaconda sono relative alle eccessive risorse necessarie: non tutti i pacchetti sono rilevanti e occupa troppo spazio. Se preferisci una versione più snella, Continuum Analytics offre Miniconda che permette di avere accesso a Python e al gestore pacchetti Conda, ma si dovrà personalmente installare tutte le librerie. Se hai spazio su disco limitato e ritieni che questa sia l’opzione migliore per te, puoi trovare utile questo tutorial sull’installazione di Miniconda.
Installazione di Anaconda
Questo articolo fa parte di una serie di tutorial che descrivono come installare la distribuzione Anaconda Python su diversi sistemi operativi. In questo articolo vediamo come installare Anaconda3 versione 2021.11 (Python 3.9), per il trading algoritmico con Python su Windows. Questa versione richiede 3 GB di spazio libero. Assicurati di avere abbastanza spazio disponibile prima di iniziare. Gli altri articoli della serie si concentrano sull’installazione di Anaconda per:
Installazione di Anaconda su Windows
Iniziamo con l’aprire il browser web e collegarsi all’indirizzo https://www.anaconda.com/products/individual. Il sito web potrebbe non determinare il download corretto per il nostro sistema. In questo caso è sufficiente selezionare il corretto sistema operativo per procedere con l’installazione.
Facciamo clic sul pulsante verde di download. Il download dovrebbe iniziare immediatamente. Una volta completato il download facciamo clic su Apri file e siamo indirizzati alla procedura guidata di configurazione di Anaconda.
A questo punto la procedura guidata ci chiede di accettare il contratto di licenza per continuare l’installazione. Successivamente dobbiamo selezionare come desideriamo installare Anaconda, ti consigliamo di installarlo solo per l’utente corrente, e facciamo clic su Avanti.
La procedura ci chiede quindi di confermare la posizione dove installare Anaconda. Ti consigliamo di lasciare il percorso predefinito. Come possiamo vedere, l’installazione occuperà 3 GB di spazio.
Dopo aver fatto clic su Avanti la procedura ci chiede se desideriamo che Anaconda prenda il posto del Python predefinito o preferisci aggiungerlo al path delle variabili d’ambiente Windows. Ti consigliamo di installarlo come versione predefinita. Se hai familiarità con le installazioni Python, tuttavia, potresti scegliere di non sostituire il Python predefinito.
Dopo aver fatto clic su Installa, l’installazione dovrebbe iniziare. Una volta completato otteniamo la seguente schermata.
Facendo clic su Avanti si accede alla schermata finale in cui è possibile fare clic su Fine per completare la configurazione.
Per verificare che Python sia stato installato correttamente, andiamo alla barra di ricerca e digitiamo Ana. Dovrebbero apparire le seguenti opzioni.
Selezionando il prompt di Anaconda appare il prompt della riga di comando o la shell. Digitiamo python
sul prompt e premiamo Invio. Otteniamo un paio di righe di testo che dicono quale versione di Python stiamo utilizzando seguite da tre spunte (>>>). Questo è il prompt di Python ed indica che possiamo inserire comandi Python. Siamo entrati in una console Python e possiamo iniziare a scrivere codice in Python.
Proviamo a digitare import pandas as pd
nel prompt. Dopo aver premuto Invio vediamo che non è cambiato nulla. Si presenta una nuova riga contenente il prompt Python. Se digitiamo pd.__version__
e premi amo Invio otteniamo la versione della libreria Pandas che abbiamo appena importato nel prompt di Anaconda.
Per uscire da Python puoi semplicemente digitare exit()
. Ora sei di nuovo al prompt della riga di comando.
Creare un ambiente per il trading algoritmico con Python su Windows
Dopo aver usato Python per un po’ di tempo o su progetti diversi, è possibile imbatterci nel problema delle dipendenze. Uno script che abbiamo scritto o un progetto su cui stiamo lavorando potrebbe richiedere funzionalità disponibili nell’ultima versione di una libreria Python come Pandas, mentre altri progetti o script usano le versioni precedenti. Come gestire e mantenere l’ambiente Python per consentirci di eseguire e lavorare su diversi script o diversi progetti? Dobbiamo usare gli ambienti virtuale.
Un ambiente virtuale è un ambiente Python isolato che ha le proprie dipendenze o, in altre parole, le proprie versioni di librerie e pacchetti. È possibile creare ambienti virtuali per ciascun progetto in modo da poter utilizzare le specifiche versioni delle librerie necessarie per uno specifico progetto. Con Anaconda possiamo anche specificare le versioni di Python da usare quando creiamo l’ambiente virtuale.
Anaconda ha il vantaggio di includere il gestore di pacchetti Conda, che permette di creare facilmente ambienti virtuali. Possiamo creare ambienti virtuali per Python 2.7, 3.5, 3.6, 3.7, 3.8 e 3.9. La maggior parte delle versioni dei pacchetti può essere trovata utilizzando i comandi conda o conda-forge oppure, come ultima risorsa, è possibile utilizzare il gestore pacchetti python pip. Se usiamo pip per installare le librerie negli ambienti conda, le librerie sono installate in un canale diverso e non possiamo usare il comando conda upgrade
per aggiornarle. Se non vogliamo usare anaconda come distribuzione Python e abbiamo installato Python direttamente dalla distribuzione ufficiale, la stessa attività può essere eseguita utilizzando pyenv per ottenere più versioni di Python e pipenv o virtualenv per gestire ambienti virtuali. Un buon tutorial su questo approccio è disponibile in questo sito.
Nel prompt di anaconda notiamo che c’è un prefisso tra parentesi prima delle informazioni della directory sull’utente. Nel nostro caso (base)
indica che ci troviamo nell’ambiente anaconda di base. In questo ambiente abbiamo accesso a tutti i pacchetti che sono stati scaricati e installati da Anaconda. Se digitiamo python --version
nel terminal vediamo che stiamo eseguendo la versione predefinita di Python, in questo caso Python 3.9.7.
Creare un ambiente virtuale
Creiamo ora un ambiente virtuale con Python 3.8 e installiamo alcune librerie necessarie per visualizzare 5 anni di dati Apple in poche righe di codice. Vediamo come creare l’ambiente: nel terminale inseriamo la seguente riga
conda create -n py3.8 python=3.8
La prima parte “conda create -n” utilizza il gestore pacchetti conda per creare un nuovo ambiente. La seconda parte “py3.8” è il nome dell’ambiente, possiamo inserire qualsiasi nome. Se dimentichiamo il nome dei nostri ambienti possiamo usare in qualsiasi momento il comando conda env list
nel terminale per visualizzare un elenco di tutti gli ambienti che abbiamo creato. La parte finale “python=3.8” specifica quale versione di Python vogliamo usare per questo ambiente. Quando eseguiamo il comando otteniamo un elenco di ciò che verrà installato e scaricato nell’ambiente e chiederà se vogliamo procedere. Una volta completato, dobbiamo digita re quanto segue per attivare l’ambiente.
conda activate py3.8
Notiamo che il prefisso visualizzato tra parentesi è cambiato in (py3.8)
. Possiamo quindi iniziare ad aggiungere le nostre librerie e pacchetti python.
Per visualizzare i dati delle azioni dobbiamo installare solo tre librerie: Pandas per analizzare i dati, Pandas-datareader per scaricare le serie storiche da Yahoo e infine Matplotlib per visualizzare i grafici tramite l’interfaccia di Pandas. Nel terminale digitiamo quanto segue:
conda install pandas pandas-datareader matplotlib
Digitiamo python
nel terminale per aprire una console Python. Vediamo alcune righe di intestazione contenenti informazioni sulla versione di Python in esecuzione e il prompt verrà sostituito da tre segni. Siamo ora all’interno di un terminale Python e possiamo iniziare a scrivere codice in Python. Possiamo tornare alla shell bash in qualsiasi momento digitando exit()
nel terminale.
Visualizzazione prezzi di chiusura
Iniziamo importando le librerie per scaricare e analizzare i dati.
import matplotlib.pyplot as plt
import pandas as pd
import pandas_datareader.data as web
Dopo aver importato le librerie, possiamo scaricare le serie storiche dei prezzi OHLCV tramite Pandas DataReader per ottenere 5 anni di dati storici e inserirli direttamente in un oggetto DataFrame. Il seguente comando scarica i dati Apple OHLCV da Stooq.com. Pandas-Datareader permette di scaricare dati da più fonti tra cui Quandl, AlphaVantage e IEX. In questa pagina sono elencati le fonti dati disponibili in Pandas-Datareader.
aapl = web.DataReader("AAPL", "stooq")
Ora abbiamo cinque anni di dati Apple memorizzati in un DataFrame. Possiamo visualizzare le prime righe utilizzando il comando Pandas aapl.head()
.
Per visualizzare il grafico dei dati è sufficiente digitare le seguenti righe.
Da notare che l’ultima riga di codice plt.show()
. Questo comando utilizza la libreria Matplotlib.pyplot che abbiamo importato all’inizio. Ci permette di visualizzare direttamente il grafico. Il grafico dei prezzi di chiusura di Apple si aprirà in una nuova finestra.
aapl.plot(y="Close")
plt.show()
Abbiamo creato un semplice script utilizzando Pandas e Pandas-Datareader per importare i dati storici dei titoli azionari da diverse fornitori di dati. Possiamo eseguire semplici script, come tracciare il prezzo di chiusura, fino alla creazione di strategie complesse, utilizzando solo tre librerie Python open source. L’unico problema con questo approccio è che quando usciamo dalla console Python perdiamo tutto il lavoro. Possiamo uscire dalla console Python digitando exit()
e quindi disattivare l’ambiente virtuale digitando conda deactivate
.
In questo articolo abbiamo descritto come creare un ambiente di ricerca e sviluppo per il trading algoritmico con Python su Windows. Nel prossimo articolo descriviamo come utilizzare Jupyter Notebooks per costruire grafici a candele e medie mobili. C’è un ottimo cheat sheet di Conda disponibile qui, è un riferimento davvero utile nel caso in cui sia necessario controllare rapidamente un comando.