No, non proprio. Probabilmente non sarai ricco a meno che non lavori davvero sodo... Per quanto sia bello, non puoi davvero prevedere un prezzo delle azioni basandoti esclusivamente sul ML, ma ora ho la tua attenzione!
Continuando dal mio precedente post sul blog su quanto sia fantastico e facile sviluppare applicazioni basate sul Web supportate da Cloudera Operational Database (COD), ho avviato un piccolo progetto per integrare COD con un'altra esperienza cloud CDP, Cloudera Machine Learning (CML).
In questa demo cercherò di prevedere il comportamento del prezzo di apertura delle azioni in base ai loro dati storici, ovvero se il prezzo di apertura di un'azione aumenterà o diminuirà. Non sono un data scientist, ma ci sono molti esempi online su come farlo (ho preso alcuni campioni di codice, li ho corretti e li ho adattati per funzionare con COD). A questo scopo utilizzerò l'algoritmo LSTM (Long Short-term memory). RNN in generale (reti neurali ricorrenti) e LSTM in particolare funzionano molto bene con i dati di serie temporali
A scanso di equivoci, non pretendiamo di essere esperti del mercato azionario e nulla in questo post sul blog dovrebbe essere considerato in alcun modo un consiglio finanziario. Questo è puramente un esempio di come sviluppare una soluzione utilizzando il software di Cloudera.
Componenti principali utilizzati in questa demo:
- Cloudera Operational Database (COD), come menzionato nel mio post precedente, è una soluzione dbPaaS gestita disponibile come esperienza in Cloudera Data Platform (CDP)
- CML è progettato per data scientist e ingegneri ML, consentendo loro di creare e gestire progetti ML dal codice alla produzione. Caratteristiche principali di CML:
- Ambiente di sviluppo per data scientist, isolato, containerizzato ed elastico
- Kit di strumenti per il machine learning per la produzione :distribuzione, gestione, monitoraggio e governance dei modelli di machine learning
- App Serving:crea e distribuisci applicazioni personalizzate per casi d'uso ML
- Applicazioni preconfezionate per informazioni dettagliate per utenti aziendali
- Costruzione semplice e drag-and-drop di dashboard e app con Cloudera Data Visualization
- Applica modelli come starter kit per i tuoi casi d'uso
- Dati delle azioni:per estrarre i dati delle azioni, ho utilizzato il servizio alpha vantage (versione gratuita). Fondamentalmente, è un servizio che ti consente di ottenere un riepilogo giornaliero delle statistiche sulle azioni (aperte, chiuse, basse, ad alto volume)
Crea l'applicazione
La prima cosa che dobbiamo fare è creare un database in COD.
1. Accedi al piano di controllo Cloudera Data Platform Public Cloud
2. Scegli Database operativo e quindi fai clic su "Crea database"
3. Scegli il tuo ambiente e assegna un nome al tuo database
4. Una volta che il database è attivo e funzionante, passa alla scheda JDBC
5. Imposta la password del carico di lavoro CDP
6. Ora passiamo a CML:torna al piano di controllo e fai clic su "Apprendimento automatico" e poi su "Provisioning workspace" Assegna un nome al tuo spazio di lavoro e seleziona l'ambiente che desideri utilizzare
7. Una volta eseguito il provisioning dell'area di lavoro, creare un nuovo progetto, assegnargli un nome e utilizzare git per il codice sorgente. Tutto il codice sorgente può essere trovato qui.
8. Una volta creato il progetto, vedrai tutti i file nella directory del progetto:
9. Poca logistica aggiuntiva:è necessario creare variabili di ambiente per il progetto, che memorizzeranno l'accesso al nostro database e la chiave API alpha vantage. Per fare ciò, vai alla scheda "Impostazioni progetto ->avanzate"
10. Ora iniziamo a eseguire il progetto:fai clic su "nuova sessione", dai un nome alla tua sessione, scegli "python 3" e il profilo della risorsa
11. Sul terminale o sulla CLI in basso, installa tutte le librerie richieste eseguendo “pip3 install -r Requirements.txt”
12. Il passo successivo è creare la nostra tabella in cui i dati verranno archiviati nel nostro database. a tale scopo, esegui lo script di installazione:
13. Ora iniziamo a testare il nostro modello! Vai su runner.py ed eseguilo. Fondamentalmente, questo script esegue le seguenti operazioni:
a) Ottiene i dati sulle azioni giornaliere dal vantaggio alfa
b) Trasformazione di base dei dati
c) Archivia i dati nel database operativo Cloudera
d) Esegui il modello e crea il file del modello (tech_ind_model.py)
e) Eseguire la previsione per gli ultimi 120 giorni
f) Calcola i guadagni previsti se acquistiamo e vendiamo azioni ai tassi esatti
14. Mentre il programma è in esecuzione, vedrai che sta raccogliendo dati per ogni azione, caricandoli su COD, eseguendo la previsione e tracciando un grafico che mostra il prezzo previsto rispetto al prezzo corrente. Sebbene il grafico mostri che la tendenza nella maggior parte dei casi è molto simile, anche una leggera differenza può influire sulle entrate totali derivanti da tali raccomandazioni. L'output della corsa include le informazioni di seguito indicate per ogni azione:
a) raccomandazione:mantieni/acquista/vendi
b) ultimo previsto:ultimo prezzo previsto
c) prezzo:ultimo prezzo
d) previsto:previsione per il prossimo prezzo di apertura
e) segnale:alto/basso – è la raccomandazione forte/non
15. In base all'ultima volta che ho eseguito il programma, avrei perso denaro nella maggior parte dei titoli in base alle raccomandazioni, ma allo stesso tempo ce n'erano alcuni che prevedevano un profitto fino al 20%!!!
Ora, il trading algoritmico in generale e la previsione dei prezzi delle azioni sono argomenti che esistono da molti anni. Per rendere operativi casi d'uso di machine learning come questo, sono necessari strumenti potenti che siano facili da usare, scalabili e pronti per l'azienda.
Cloudera Operational Database fornisce una latenza inferiore al secondo per letture/scritture casuali ed è esattamente ciò che è necessario per le applicazioni in tempo reale come quelle utilizzate nel settore dei servizi finanziari.
Per iniziare con CML e COD...
Spero che lo trovi utile,
Buona codifica!!