Introduzione

La predizione del valore delle azioni è un argomento di grande interesse sia per gli investitori individuali che per le istituzioni finanziarie.

Con l’avanzare della tecnologia, l’uso degli algoritmi di previsione è diventato sempre più comune.

Tra questi algoritmi di forecasting, Prophet, sviluppato da Meta, si distingue per la sua potenza e versatilità. In questo articolo esploreremo le capacità di Prophet, discuteremo le librerie utilizzate e presenteremo un esempio di codice sorgente.

Infine, discuteremo perché, nonostante la sua efficacia, Prophet non può essere usato da solo per predire accuratamente il valore delle azioni.

Cos’è Prophet?

Prophet è un algoritmo di previsione delle serie temporali progettato per gestire dati con forti componenti stagionali e trend non lineari. È particolarmente utile per serie temporali con dati mancanti e per la gestione di eventi esterni come vacanze.

Prophet è stato sviluppato per essere facile da usare e altamente adattabile, rendendolo uno strumento ideale per analisti e sviluppatori.

Librerie Utilizzate

  • yfinance: una libreria che permette di scaricare facilmente dati storici delle azioni direttamente da Yahoo Finance.
  • Prophet: un pacchetto di modellazione delle serie temporali sviluppato da Facebook, noto per la sua semplicità e potenza.
  • pandas: una libreria essenziale per la manipolazione e l’analisi dei dati.
  • plotly: una libreria di visualizzazione interattiva per creare grafici accattivanti e informativi.

La Potenza di Prophet

  1. Facilità d’uso: Prophet è progettato per essere user-friendly. Con pochi comandi, è possibile preparare i dati, addestrare il modello e fare previsioni. Questo lo rende accessibile anche a coloro che non hanno una vasta esperienza in machine learning.
  2. Gestione della stagionalità: Una delle caratteristiche principali di Prophet è la sua capacità di gestire automaticamente la stagionalità. Che si tratti di dati giornalieri, settimanali o annuali, Prophet può decomporre e modellare queste componenti in modo efficace.
  3. Robustezza ai dati mancanti: Prophet è robusto rispetto ai dati mancanti, una sfida comune nelle serie temporali reali. Può gestire periodi di assenza di dati senza compromettere la qualità delle previsioni.
  4. Integrazione di regressori esterni: Prophet permette l’inclusione di variabili esterne (regressori) che possono influenzare le previsioni, come eventi economici o dati di mercato. Questo aumenta la precisione delle previsioni.

Prophet e la predizione delle azioni

Nonostante la potenza di Prophet, l’uso dell’algoritmo per predire il valore delle azioni presenta delle limitazioni. Le azioni sono influenzate da una vasta gamma di fattori che vanno oltre i semplici dati storici e stagionali. Ecco alcune considerazioni chiave:

  1. Fattori esterni: le azioni sono influenzate da notizie aziendali, cambiamenti politici, eventi macroeconomici e sentiment del mercato. Prophet, basato principalmente su dati storici e stagionalità, può non catturare efficacemente questi eventi improvvisi.
  2. Volatilità del mercato: i mercati azionari possono essere altamente volatili. Mentre Prophet è efficace nel modellare trend e stagionalità, può avere difficoltà a prevedere picchi e cali improvvisi che sono comuni nel mercato azionario.
  3. Dati finanziari e economici: per migliorare le previsioni, è cruciale integrare Prophet con altri dati finanziari ed economici, come i tassi di interesse, i dati sull’inflazione e le previsioni sugli utili aziendali.

Codice sorgente

Ecco un esempio di come utilizzare Prophet per prevedere il valore delle azioni di Apple, includendo l’uso delle librerie menzionate:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import yfinance as yf
from prophet import Prophet
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
# Scarica i dati storici delle azioni di Apple
df = yf.download('AAPL', start='2010-01-01', end='2023-01-01')
# Prepara i dati per Prophet
df.reset_index(inplace=True)
df.rename(columns={'Date': 'ds', 'Close': 'y'}, inplace=True)
df = df[['ds', 'y']]
# Crea e addestra il modello Prophet
model = Prophet()
model.fit(df)
# Crea un DataFrame con le date future e fai previsioni
future = model.make_future_dataframe(periods=365)
forecast = model.predict(future)
# Visualizza le previsioni con Plotly
fig = make_subplots(rows=4, cols=1, shared_xaxes=True,
subplot_titles=('Forecast', 'Trend', 'Weekly Seasonality', 'Yearly Seasonality'),
vertical_spacing=0.1)
# Previsioni
fig.add_trace(go.Scatter(x=df['ds'], y=df['y'], mode='markers', name='Historical'), row=1, col=1)
fig.add_trace(go.Scatter(x=forecast['ds'], y=forecast['yhat'], mode='lines', name='Forecast'), row=1, col=1)
# Trend
fig.add_trace(go.Scatter(x=forecast['ds'], y=forecast['trend'], mode='lines', name='Trend'), row=2, col=1)
# Estrai componenti di stagionalità
weekly_seasonality = forecast[['ds', 'weekly']]
yearly_seasonality = forecast[['ds', 'yearly']]
# Stagionalità settimanale
fig.add_trace(go.Scatter(x=weekly_seasonality['ds'], y=weekly_seasonality['weekly'], mode='lines', name='Weekly Seasonality'), row=3, col=1)
# Stagionalità annuale
fig.add_trace(go.Scatter(x=yearly_seasonality['ds'], y=yearly_seasonality['yearly'], mode='lines', name='Yearly Seasonality'), row=4, col=1)
# Configura il layout del grafico
fig.update_layout(
height=1000,
title_text='Apple Stock Price Forecast',
xaxis_title='Date',
yaxis_title='Price',
xaxis2_title='Date',
yaxis2_title='Trend',
xaxis3_title='Date',
yaxis3_title='Weekly Seasonality',
xaxis4_title='Date',
yaxis4_title='Yearly Seasonality'
)
fig.show()
Forecasting valore azioni azioni

Forecasting valore azioni azioni

Conclusione

Prophet è un algoritmo potente e versatile per la previsione delle serie temporali, capace di gestire dati con forti componenti stagionali e trend non lineari.

Tuttavia, quando si tratta di predire il valore delle azioni, non può essere usato da solo.

La predizione accurata dei prezzi delle azioni richiede l’integrazione di variabili esterne e una comprensione profonda dei fattori che influenzano i mercati finanziari.

Utilizzare Prophet come parte di un approccio più ampio e integrato può fornire previsioni più accurate e utili per gli investitori.