mercoledì 8 gennaio 2025

Analisi di correlazione sulle crypto

Correlazione tra criptovalute: facciamo chiarezza

Da tempo sento parlare continuamente di correlazioni, spesso basate solo sull'osservazione dei grafici dei prezzi. Vorrei fare un po' di chiarezza su cosa sia realmente la correlazione e come interpretarla.

1️⃣ Prezzi e rendimenti
La correlazione non va calcolata sui prezzi, che non sono stazionari (cioè non hanno proprietà statistiche costanti nel tempo). In genere si utilizza la serie dei rendimenti, che offre un'approssimazione più affidabile per queste analisi, pur non essendo perfettamente stazionaria.

2️⃣ Che cos'è la correlazione
La correlazione è una misura della relazione lineare tra due variabili, con valori compresi tra -1 (relazione inversa perfetta) e +1 (relazione diretta perfetta). Valori vicini a 0 indicano un'assenza di relazione lineare.
Tuttavia, è importante ricordare che la correlazione è solo una misura descrittiva e non stabilisce causalità; relazioni spurie o coincidenze possono influire sui risultati.

3️⃣ Relazioni non lineari
La correlazione di Pearson cattura solo le relazioni lineari. Per analizzare relazioni non lineari, esistono altri strumenti come la correlazione di Spearman, di Kendall o metodi più avanzati basati su reti neurali o modelli statistici di dipendenza.

4️⃣ Correlazioni dinamiche
Le correlazioni non sono statiche, ma cambiano continuamente nel tempo. Ad esempio, durante ribassi generalizzati, è comune osservare un aumento delle correlazioni tra asset. Questo fenomeno, noto come contagio finanziario, riflette una maggiore sincronizzazione dei mercati dovuta a liquidazioni forzate o aumento dell'avversione al rischio. Tuttavia, non tutte le correlazioni diventano 1.

Ora vi spiego l'analisi che ho fatto in Python e i risultati ottenuti. 

 

 


Potrebbero esserci degli errori, se li trovate, segnalatemeli per favore. 

Ecco il Codice:

# Caricare i dati da yfinance
tickers = [
          'BTC-USD','ETH-USD', 'BNB-USD', 'SOL-USD', 'ADA-USD', 'TRX-USD', 'AVAX-USD', 'LINK-USD', 'BCH-USD', 'CRO-USD', 'KCS-USD',
           'NEAR-USD', 'ICP-USD', 'OP-USD', 'FTM-USD', 'DOGE-USD', 'SHIB-USD', 'FET-USD', 'STX4847-USD', 'DOT-USD',
           'KAS-USD', 'XTZ-USD', 'TON11419-USD', 'MANA-USD', 'XRP-USD', 'XLM-USD', 'HBAR-USD', 'LTC-USD', 'UNI7083-USD', 'CAKE-USD',
           'ETC-USD', 'SUI20947-USD', 'ARB11841-USD', 'APT21794-USD', 'PEPE24478-USD', 'DX-Y.NYB'
]

names = [
          'BTC','ETH', 'BNB', 'SOL', 'ADA', 'TRX', 'AVAX', 'LINK', 'BCH', 'CRO', 'KCS',
           'NEAR', 'ICP', 'OP', 'FTM', 'DOGE', 'SHIB', 'FET', 'STX', 'DOT',
           'KAS', 'XTZ', 'TON', 'MANA', 'XRP', 'XLM', 'HBAR', 'LTC', 'UNI', 'CAKE',
           'ETC', 'SUI', 'ARB', 'APT', 'PEPE', 'USD_Ix'
]
 

# Creare un dizionario per memorizzare i dati
data = {}

# Scaricare i dati e assegnarli i nomi
for ticker, name in zip(tickers, names):
    prices = yf.download(ticker, '2015-1-1')['Close']
    prices.index = prices.index.date
    prices = prices.fillna(method='ffill')
    data[name] = prices
 
# Creazione dataset
dataset = pd.concat([data[name] for name in names], axis=1)

dataset.columns = names
 
# Calcolo dei rendimenti
returns = dataset.pct_change().mul(100)
 
# Calcolo correlazione da data
data_corr = '2023-06-01'
data_corr = datetime.date.fromisoformat(data_corr) # Convert data_corr to datetime.date

returns_from = returns.loc[data_corr:]
returns_from.dropna(inplace=True)

correlations = returns_from.corr()

# Grafico
plt.figure(figsize=(18, 12))
sns.heatmap(round(correlations, 1), annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.xticks(rotation=45, ha='right')  # Ruota le etichette delle colonne
plt.yticks(rotation=0)              # Etichette delle righe orizzontali
plt.title('Correlazioni lineari sui rendimenti dal 202x a oggi')
plt.show()
 
 
 
 

lunedì 6 gennaio 2025

Analisi rendimenti continui Crypto

 

Vi propongo di seguito un’analisi a diversi periodi temporali, dei rendimenti continui delle principali crypto per capitalizzazione di mercato, più quelle che seguo io. Alcune mancheranno o daranno risultati “inf” perchè non ancora nate nel periodo considerato.

L’analisi è stata fatta in Python, potrebbero esserci degli errori, in tal caso segnalatemeli per favore.

Dal 01-01-2023:

Lista:

Codice:

# migliori crypto per rendimento

top_10_tickers = rendimenti_continui.iloc[-1].sort_values(ascending=False).head(10).index

top_10_data = datax[top_10_tickers]

# Rendimenti continui dei top 10 titoli

top_10_rendimenti_continui = top_10_data.pct_change().add(1).cumprod().sub(1).mul(100)

# Grafico

fig, ax = plt.subplots(figsize=(15, 8))

top_10_rendimenti_continui.plot(ax=ax, title='Top 10 crypto for continuous performance', linewidth=1)

ax.legend(loc='center left', bbox_to_anchor=(1.05, 0.5))

plt.tight_layout()

plt.show()

Peggiori per rendimento:

Rendimenti rapportati al prezzo del BTC:

Lista:

Codice:

# Calcolo prezzi rapportati al Bitcoin

datax_onBTC = datax.div(datax["BTC-USD"], axis=0)

datax_onBTC.drop(columns=["BTC-USD"], inplace=True)

rendimenti_continui_onBTC = datax_onBTC.pct_change().add(1).cumprod().sub(1).mul(100)

rendimenti_continui_onBTC = rendimenti_continui_onBTC.iloc[1:]

# Crypto on BTC

selected_index = rendimenti_continui_onBTC.iloc[-1].index

all_data_onBTC = datax_onBTC[selected_index]

# Rendimenti continui

all_rendimenti_continui_onBTC = all_data_onBTC.pct_change().add(1).cumprod().sub(1).mul(100)

# Grafico

fig, ax = plt.subplots(figsize=(15, 8))

all_rendimenti_continui_onBTC.plot(ax=ax, title='Crypto for continuous performance on BTC', linewidth=1)

ax.legend(loc='center left', bbox_to_anchor=(1.05, 0.5))

ax.axhline(y=0, color='black', linewidth=1, linestyle='--')

plt.tight_layout() # per ottimizzare i margini

plt.show()

Dal 01-01-2024:

Crypto su BTC:

Dal 01-09-2024:


martedì 31 dicembre 2024

Confronto titoli, Btc, Gold,... per rendimento continuo

Come annunciato qualche giorno fa sul canale Telegram, BTC poteva rimbalzare sulla EMA50, e così sembra che stia facendo:

Per ora è un rimbalzo molto piccolo e niente fa credere che debba continuare.


Volevo però mostrarvi un’analisi che ho fatto recentemente su alcuni Titoli, ETF,… che sto seguendo, oltre alle crypto.

E’ una analisi che mostra il rendimento continuo nel tempo.

Non sono molto esperto in Python, se trovate qualche errore, segnalatemelo per cortesia.

I MIGLIORI NEL PERIODO 2023-24

Nvidia ha fatto l’824% in questi ultimi 2 anni!

BTC nonostante sia salito da 17K a 94K, ha fatto meno bene di Nvidia, Cacao e Coinbase.

I PEGGIORI DEL PERIODO 2023-24

GOLD, ETFs E COMMODITY NEL 2023-24

PERIODO 2016-24, (stessi tre grafici precedenti, con codice)

# 10 migliori titoli per rendimento
top_10_tickers = rendimenti_continui.iloc[-1].sort_values(ascending=False).head(10).index
top_10_data = datax[top_10_tickers]

# Rendimenti continui dei top 10 titoli
top_10_rendimenti_continui = top_10_data.pct_change().add(1).cumprod().sub(1).mul(100)

# Grafico
fig, ax = plt.subplots(figsize=(15, 8))  # Impostiamo un grande figsize per il grafico
top_10_rendimenti_continui.plot(ax=ax, title='Top 10 stocks for continuous performance', linewidth=1)
ax.legend(loc='center left', bbox_to_anchor=(1.05, 0.5))
plt.tight_layout()

plt.show()
 












# 10 peggiori titoli per rendimento
top_10_tickers = rendimenti_continui.iloc[-1].sort_values(ascending=True).head(10).index
top_10_data = datax[top_10_tickers]

# Rendimenti continui dei worst 10 titoli
top_10_rendimenti_continui = top_10_data.pct_change().add(1).cumprod().sub(1).mul(100)

# Grafico
fig, ax = plt.subplots(figsize=(15, 8))  # Impostiamo un grande figsize per il grafico
top_10_rendimenti_continui.plot(ax=ax, title='Worst 10 stocks for continuous performance', linewidth=1)
ax.legend(loc='center left', bbox_to_anchor=(1.05, 0.5))
ax.axhline(y=0, color='black', linewidth=1, linestyle='--')
plt.tight_layout()

plt.show()













# Seleziono Gold, ETFs e commodity
selected_index = rendimenti_continui.iloc[-1][['Sp500', 'Gold', 'IShares Diversified Commodity Swap', 'IShares MSCI World Small Cap',
    'Nasdaq100', 'VanEck Semiconductor ETF (SMH)', 'WTID WisdomTree Bloomberg WTI Crude Oil', 'NGAS WisdomTree Natural Gas', 'WisdomTree Cocoa',
    'Amundi STOXX Europe 600', 'WisdomTree Coffee']].index

selected_data = datax[selected_index]

# Rendimenti continui
selected_rendimenti_continui = selected_data.pct_change().add(1).cumprod().sub(1).mul(100)

# Grafico
fig, ax = plt.subplots(figsize=(15, 8))  # Impostiamo un grande figsize per il grafico
selected_rendimenti_continui.plot(ax=ax, title='Gold, ETFs, Commodity selected for continuous performance', linewidth=1)
ax.legend(loc='center left', bbox_to_anchor=(1.05, 0.5))
ax.axhline(y=0, color='black', linewidth=1, linestyle='--')
plt.tight_layout() # per ottimizzare i margini
plt.show()


lunedì 16 dicembre 2024

Prosegue il long per BTC

 

Nel precedente post si era detto che non si erano rotti i supporti, e che il trend long sarebbe proseguito. E infatti BTC continua a salire. E finché non ci saranno chiari segnali di discesa, io resterò long.

ETH:

ETH invece sembra che non sia ancora riuscito a invertire il suo trend discendente vs BTC, ha violato la Ema50, ora ha un importante supporto sotto, vedremo se rimbalzerà o proseguirà a scendere.

LINK prosegue il suo long anche vs Btc.

SUI prosegue anch’esso long.

STX è long rispetto a Usdt, ma vs Btc non ha ancora cominciato a salire.

FTM prosegue invece long e lo tengo in ptf.

SOL continua a scendere, BNB, ADA, XRP, continuano con una fare laterale senza alcuna decisione su dove proseguire.

Complessivamente le crypto stanno vivendo una fase laterale o discendente. Poche sono quelle che stanno salendo tra le principali che ho guardato e che seguo, e sono Link, Sui, Ftm e anche Stx (anche se vs Btc non è ancora salita, almeno non sta scendendo), e sono tutte molto tirate. Il rischio di una correzione è molto alto.

In una fase come questa, preferisco concentrarmi sul BTC che è la crypto più importante e quella più sicura. E aspettare che le altcoins comincino a mostrare segnali di salita.

 

ISCRIVITI A SUBSTACK PER RESTARE SEMPRE AGGIORNATO: Clicca QUI

mercoledì 11 dicembre 2024

Aggiornamento situazione BTC, ETH e Altcoins

 

BTC dopo la discesa di ieri:

La resistenza dei 100K si fa sentire ma il trend long c’è ancora, finchè non scende e chiude sotto i 94400$.

ETH/BTC:

ETH sta tentando d’invertire il suo trend discendente vs BTC. Potrei rischiare comprandolo con lo stop loss sotto il minimo di ieri.

FET:

Fet rispetto a USD prosegue con una salita non molto convincente, mentre rispetto a BTC ha subito un arresto sontro alla EMA200. E’ in death cross, RSI<50, ed è tornato sotto alla EMA50. Io aspetto a comprarlo.

XRP:

Attenzione a Xrp, è salito moltissimo finora e sta facendo massimi decrescenti, potrebbe scendere un po ora.

SOL:

Sol rispetto a Usd e Btc continua ad avere un andamento incerto con trend ribassista.

Per quel che riguarda le altre crypto, ho provveduto a fare un piccolo bilanciamento su quelle che mi hanno dato un maggior profitto in termini assoluti. Su Doge, Fet, Xrp, Xlm, Ton, Sol e Bnb ho ridotto maggiormente la posizione perchè non mi convincono molto rispetto a BTC.

Le altre altcoin invece devo dire che in generale, sono scese molto in questi ultimi giorni, ma il loro trend sta reggendo sui supporti, perciò li ho tenute.

 

Iscriviti al canale Telegram: QUI

Iscriviti a Substack: QUI

Per rimanere sempre aggiornato sulle analisi.