Indicatori di volume

Introduzione agli Indicatori di Volume
Teoria di Base
Gli indicatori di volume analizzano i volumi di scambio per valutare la forza e la sostenibilità dei movimenti di prezzo di un asset finanziario. Il volume rappresenta l’attività di mercato: un aumento del volume in concomitanza con un movimento di prezzo ne conferma la validità, mentre un volume basso può indicare debolezza o mancanza di partecipazione. Gli indicatori di volume sono quindi strumenti cruciali per confermare tendenze, identificare potenziali inversioni e misurare la pressione di acquisto o vendita.
La teoria alla base di questi indicatori si basa sull’interazione tra volume e prezzo. Ad esempio, l’On-Balance Volume (OBV) accumula il volume in base alla direzione del prezzo:
\text{OBV}_t = \text{OBV}_{t-1} + \begin{cases}
\text{Volume}_t & \text{se } \text{Close}_t > \text{Close}_{t-1} \\
-\text{Volume}_t & \text{se } \text{Close}_t < \text{Close}_{t-1} \\
0 & \text{se } \text{Close}_t = \text{Close}_{t-1}
\end{cases}
\]
Altri indicatori, come il Chaikin Money Flow (CMF), combinano volume e prezzo per misurare il flusso di denaro:
\text{CMF} = \frac{\sum_{i=1}^n \text{Money Flow Volume}_i}{\sum_{i=1}^n \text{Volume}_i}
\]
Indicatori come il Volume Weighted Average Price (VWAP), l’Accumulation/Distribution Line (A/D), il Volume Rate of Change (VROC) e il Volume Oscillator (VO) offrono diverse prospettive sul volume, analizzando rispettivamente prezzi medi ponderati, flussi di accumulazione/distribuzione, variazioni percentuali e differenze tra medie mobili del volume.
Vantaggi degli Indicatori di Volume
Gli indicatori di volume offrono diversi vantaggi per i trader e gli analisti tecnici:
- Conferma delle tendenze: Indicatori come OBV e A/D Line confermano la forza di una tendenza: un aumento del volume in un trend rialzista o ribassista ne valida la sostenibilità.
- Identificazione di inversioni: Divergenze tra prezzo e volume (es. prezzo in aumento ma OBV in diminuzione) possono segnalare potenziali inversioni.
- Efficienza computazionale: Molti indicatori, come OBV e VROC (\( O(1) \) per aggiornamento), sono veloci da calcolare, adatti al trading in tempo reale.
- Supporto per benchmark: Il VWAP funge da livello di riferimento per il trading intraday, aiutando a identificare prezzi equi.
- Valutazione della pressione di mercato: Indicatori come il CMF mostrano la pressione di acquisto o vendita, utili per decisioni di ingresso/uscita.
Limiti degli Indicatori di Volume
Nonostante i loro vantaggi, gli indicatori di volume presentano limitazioni che i trader devono considerare:
- Mancanza di direzione autonoma: Indicatori come OBV e VROC non forniscono segnali direzionali chiari senza un’analisi del prezzo, richiedendo integrazione con altri strumenti.
- Sensibilità ai dati di volume: In mercati con volumi bassi o dati inaffidabili (es. Forex OTC), gli indicatori possono essere meno accurati.
- Falsi segnali in mercati laterali: Indicatori come il Volume Oscillator possono generare segnali fuorvianti in assenza di una tendenza chiara.
- Ritardo intrinseco: Indicatori basati su medie (es. Volume Oscillator, CMF) possono ritardare nel riflettere cambiamenti improvvisi nel volume.
- Complessità interpretativa: Indicatori come l’A/D Line e il CMF richiedono esperienza per interpretare correttamente il Money Flow Multiplier e i flussi cumulativi.
Per mitigare questi limiti, è consigliabile utilizzare gli indicatori di volume in combinazione con indicatori di tendenza, momentum e volatilità, ottimizzare i parametri tramite backtesting e considerare il contesto di mercato per evitare falsi segnali.
Indicatori di Volume: Matematica e Implementazione in PineScript
Gli indicatori di volume analizzano i volumi di scambio per valutare la forza di un movimento di prezzo, confermare tendenze e identificare potenziali inversioni. Il volume è un indicatore chiave per comprendere l’attività di mercato: un aumento del volume in concomitanza con un movimento di prezzo ne conferma la validità, mentre un volume basso può indicare debolezza. Questo capitolo esplora sei indicatori di volume: On-Balance Volume (OBV), Volume Weighted Average Price (VWAP), Accumulation/Distribution Line (A/D), Volume Rate of Change (VROC), Chaikin Money Flow (CMF) e Volume Oscillator (VO). Per ciascun indicatore, presentiamo le equazioni matematiche, una spiegazione tecnica e due implementazioni in PineScript: una con funzioni native di TradingView e una con calcoli manuali.
1. On-Balance Volume (OBV)
L’On-Balance Volume (OBV) misura il flusso di volume cumulativo in base alla direzione del prezzo, utile per confermare tendenze.
\text{OBV}_t = \text{OBV}_{t-1} + \begin{cases}
\text{Volume}_t & \text{se } \text{Close}_t > \text{Close}_{t-1} \\
-\text{Volume}_t & \text{se } \text{Close}_t < \text{Close}_{t-1} \\
0 & \text{se } \text{Close}_t = \text{Close}_{t-1}
\end{cases}
\]
Spiegazione: L’OBV aumenta o diminuisce in base alla direzione del prezzo. È semplice (\( O(1) \)) ma sensibile a falsi segnali in mercati laterali.
Versione con Funzioni Native
//@version=5
indicator("OBV - Funzioni Native", overlay=false)
obv = ta.obv(close, volume)
plot(obv, color=color.blue, title="OBV")
La funzione ta.obv
calcola l’OBV in modo ottimizzato.
Versione con Concetti Matematici di Base
//@version=5
indicator("OBV - Calcolo Manuale", overlay=false)
var float obv_manual = 0.0
if close > close[1]
obv_manual := obv_manual[1] + volume
else if close < close[1]
obv_manual := obv_manual[1] - volume
else
obv_manual := obv_manual[1]
plot(obv_manual, color=color.blue, title="OBV Manuale")
Il codice calcola manualmente l’OBV in base alla direzione del prezzo.
2. Volume Weighted Average Price (VWAP)
Il Volume Weighted Average Price (VWAP) calcola il prezzo medio ponderato per il volume, spesso usato come benchmark per il trading intraday.
\text{VWAP} = \frac{\sum_{i=1}^n (\text{Typical Price}_i \cdot \text{Volume}_i)}{\sum_{i=1}^n \text{Volume}_i}, \quad \text{dove } \text{Typical Price} = \frac{\text{High} + \text{Low} + \text{Close}}{3}
\]
Spiegazione: Il VWAP si resetta all’inizio di ogni sessione (es. giornaliera). È utile per identificare livelli di supporto/resistenza. Complessità: \( O(1) \) per aggiornamento.
Versione con Funzioni Native
//@version=5
indicator("VWAP - Funzioni Native", overlay=true)
vwap = ta.vwap(close, volume, timeframe.isdaily ? 0 : na)
plot(vwap, color=color.purple, title="VWAP")
La funzione ta.vwap
calcola il VWAP con reset giornaliero.
Versione con Concetti Matematici di Base
//@version=5
indicator("VWAP - Calcolo Manuale", overlay=true)
typical_price = (high + low + close) / 3
var float cum_volume_price = 0.0
var float cum_volume = 0.0
if timeframe.change("D")
cum_volume_price := 0.0
cum_volume := 0.0
cum_volume_price := cum_volume_price + typical_price * volume
cum_volume := cum_volume + volume
vwap_manual = cum_volume_price / cum_volume
plot(vwap_manual, color=color.purple, title="VWAP Manuale")
Il codice calcola manualmente il VWAP con reset giornaliero.
3. Accumulation/Distribution Line (A/D)
La Accumulation/Distribution Line (A/D) misura il flusso di volume cumulativo in base alla posizione del prezzo di chiusura nell’intervallo giornaliero.
\text{Money Flow Multiplier} = \frac{(\text{Close} – \text{Low}) – (\text{High} – \text{Close})}{\text{High} – \text{Low}}
\]
\[
\text{A/D}_t = \text{A/D}_{t-1} + (\text{Money Flow Multiplier} \cdot \text{Volume}_t)
\]
Spiegazione: Valori crescenti indicano accumulazione, decrescenti distribuzione. È efficace (\( O(1) \)) ma sensibile a gap di prezzo.
Versione con Funzioni Native
//@version=5
indicator("A/D Line - Funzioni Native", overlay=false)
ad = ta.accumulation_distribution(close, high, low, volume)
plot(ad, color=color.green, title="A/D Line")
La funzione ta.accumulation_distribution
calcola l’A/D Line.
Versione con Concetti Matematici di Base
//@version=5
indicator("A/D Line - Calcolo Manuale", overlay=false)
mfm = ((close - low) - (high - close)) / (high - low)
mfv = mfm * volume
var float ad_manual = 0.0
ad_manual := ad_manual[1] + mfv
plot(ad_manual, color=color.green, title="A/D Line Manuale")
Il codice calcola manualmente il Money Flow Multiplier e l’A/D Line.
4. Volume Rate of Change (VROC)
Il Volume Rate of Change (VROC) misura la variazione percentuale del volume rispetto a un periodo precedente.
\text{VROC} = \frac{\text{Volume}_t – \text{Volume}_{t-n}}{\text{Volume}_{t-n}} \cdot 100
\]
Spiegazione: Valori positivi indicano un aumento del volume, negativi una diminuzione. È semplice (\( O(1) \)) ma sensibile a picchi improvvisi.
Versione con Funzioni Native
//@version=5
indicator("VROC - Funzioni Native", overlay=false)
length = input.int(14, "Periodo", minval=1)
vroc = ta.roc(volume, length)
hline(0, "Zero", color=color.gray, linestyle=hline.style_dashed)
plot(vroc, color=color.orange, title="VROC")
La funzione ta.roc
calcola il VROC.
Versione con Concetti Matematici di Base
//@version=5
indicator("VROC - Calcolo Manuale", overlay=false)
length = input.int(14, "Periodo", minval=1)
vroc_manual = (volume - volume[length]) / volume[length] * 100
hline(0, "Zero", color=color.gray, linestyle=hline.style_dashed)
plot(vroc_manual, color=color.orange, title="VROC Manuale")
Il codice calcola manualmente la variazione percentuale del volume.
5. Chaikin Money Flow (CMF)
Il Chaikin Money Flow (CMF) misura il flusso di denaro cumulativo su un periodo, normalizzato per il volume totale.
\text{Money Flow Multiplier} = \frac{(\text{Close} – \text{Low}) – (\text{High} – \text{Close})}{\text{High} – \text{Low}}
\]
\[
\text{Money Flow Volume} = \text{Money Flow Multiplier} \cdot \text{Volume}
\]
\[
\text{CMF} = \frac{\sum_{i=1}^n \text{Money Flow Volume}_i}{\sum_{i=1}^n \text{Volume}_i}
\]
Spiegazione: Valori sopra 0 indicano pressione d’acquisto, sotto 0 pressione di vendita. Complessità: \( O(n) \).
Versione con Funzioni Native
//@version=5
indicator("CMF - Funzioni Native", overlay=false)
length = input.int(20, "Periodo", minval=1)
cmf = ta.chaikinmoneyflow(high, low, close, volume, length)
hline(0, "Zero", color=color.gray, linestyle=hline.style_dashed)
plot(cmf, color=color.red, title="CMF")
La funzione ta.chaikinmoneyflow
calcola il CMF.
Versione con Concetti Matematici di Base
//@version=5
indicator("CMF - Calcolo Manuale", overlay=false)
length = input.int(20, "Periodo", minval=1)
mfm = ((close - low) - (high - close)) / (high - low)
mfv = mfm * volume
sum_mfv = ta.cum(mfv) - ta.cum(mfv)[length]
sum_volume = ta.cum(volume) - ta.cum(volume)[length]
cmf_manual = sum_mfv / sum_volume
hline(0, "Zero", color=color.gray, linestyle=hline.style_dashed)
plot(cmf_manual, color=color.red, title="CMF Manuale")
Il codice calcola manualmente il CMF usando somme cumulative.
6. Volume Oscillator (VO)
Il Volume Oscillator (VO) misura la differenza tra due medie mobili del volume, espressa in percentuale.
\text{VO} = \frac{\text{SMA}_{\text{short}}(\text{Volume}) – \text{SMA}_{\text{long}}(\text{Volume})}{\text{SMA}_{\text{long}}(\text{Volume})} \cdot 100
\]
Spiegazione: Valori positivi indicano un volume in aumento, negativi in diminuzione. Complessità: \( O(n) \).
Versione con Funzioni Native
//@version=5
indicator("Volume Oscillator - Funzioni Native", overlay=false)
short_length = input.int(5, "Periodo Corto", minval=1)
long_length = input.int(10, "Periodo Lungo", minval=1)
short_ma = ta.sma(volume, short_length)
long_ma = ta.sma(volume, long_length)
vo = (short_ma - long_ma) / long_ma * 100
hline(0, "Zero", color=color.gray, linestyle=hline.style_dashed)
plot(vo, color=color.purple, title="Volume Oscillator")
La funzione ta.sma
calcola le medie mobili per derivare il VO.
Versione con Concetti Matematici di Base
//@version=5
indicator("Volume Oscillator - Calcolo Manuale", overlay=false)
short_length = input.int(5, "Periodo Corto", minval=1)
long_length = input.int(10, "Periodo Lungo", minval=1)
var float short_sum = 0.0
var float long_sum = 0.0
short_sum := ta.cum(volume) - ta.cum(volume)[short_length]
long_sum := ta.cum(volume) - ta.cum(volume)[long_length]
short_ma_manual = short_sum / short_length
long_ma_manual = long_sum / long_length
vo_manual = (short_ma_manual - long_ma_manual) / long_ma_manual * 100
hline(0, "Zero", color=color.gray, linestyle=hline.style_dashed)
plot(vo_manual, color=color.purple, title="Volume Oscillator Manuale")
Il codice calcola manualmente le medie mobili usando somme cumulative.
Conclusione
Gli indicatori di volume forniscono un’importante prospettiva sull’attività di mercato, aiutando a confermare tendenze e identificare inversioni. L’OBV (\( \text{OBV}_t = \text{OBV}_{t-1} \pm \text{Volume}_t \)) e l’A/D Line (\( \text{A/D}_t = \text{A/D}_{t-1} + (\text{MFM} \cdot \text{Volume}) \)) misurano il flusso di volume cumulativo; il VWAP (\( \text{VWAP} = \frac{\sum (\text{TP}_i \cdot \text{Volume}_i)}{\sum \text{Volume}_i} \)) funge da benchmark intraday; il VROC (\( \text{VROC} = \frac{\text{Volume}_t – \text{Volume}_{t-n}}{\text{Volume}_{t-n}} \cdot 100 \)) e il Volume Oscillator (\( \text{VO} = \frac{\text{SMA}_{\text{short}} – \text{SMA}_{\text{long}}}{\text{SMA}_{\text{long}}} \cdot 100 \)) analizzano variazioni di volume; il CMF (\( \text{CMF} = \frac{\sum \text{MFV}_i}{\sum \text{Volume}_i} \)) valuta la pressione di acquisto/vendita. Le implementazioni PineScript mostrano che le funzioni native (\( O(1) \)) sono più efficienti rispetto ai calcoli manuali (\( O(n) \)). Per un uso efficace, combina questi indicatori con analisi di tendenza e volatilità, ottimizza i parametri tramite backtesting e considera il contesto di mercato per evitare falsi segnali.
Altri articoli

Business Setup
🚀 Vuoi diventare un trader quantitativo indipendente? Se hai già costruito e testato le tue strategie quantitative, è il momento di passare all’azione: creare la tua attività di trading. Il

Backtesting
📊 Introduzione al Backtesting Il backtesting è una tecnica fondamentale nel trading quantitativo per simulare la performance storica di una strategia. Come spiegato da Ernest P. Chan nel Capitolo 3