Ciao amici trader e programmatori! Oggi ci addentriamo nel mondo affascinante del MACD, ovvero il Moving Average Convergence Divergence. Se siete alla ricerca di un indicatore potente che vi aiuti a identificare i trend e i cambiamenti di momentum, il MACD è quello che fa per voi. Preparatevi a creare il vostro indicatore MACD personalizzato in Pine Script su TradingView. Pronti? Si parte!
Cos’è il MACD?
Il MACD (Moving Average Convergence Divergence) è un indicatore di analisi tecnica creato per rilevare i cambiamenti di tendenza e il momentum di un asset. Si compone di tre elementi principali:
- MACD Line: La differenza tra una media mobile esponenziale (EMA) a 12 periodi e una EMA a 26 periodi.
- Signal Line: Una EMA a 9 periodi della MACD Line.
- Histogram: La differenza tra la MACD Line e la Signal Line.
Quando la MACD Line supera la Signal Line, può essere un segnale di acquisto, mentre quando scende al di sotto, può essere un segnale di vendita.
Passo 1: Aprire l’Editor Pine Script
Per prima cosa, apriamo l’editor Pine Script su TradingView. Se non lo avete mai fatto prima, seguite questi passaggi:
- Accedi a TradingView: Vai su TradingView.
- Apri un grafico: Seleziona l’asset finanziario di tuo interesse.
- Apri l’Editor Pine Script: Clicca sull’icona dell’editor Pine Script nella parte inferiore del grafico.
Passo 2: Scrivere il Codice per il MACD
Iniziamo con il codice base per creare un MACD. Scriveremo uno script semplice che calcola e traccia il MACD sul grafico.
pinescriptCopy code//@version=4
study("Moving Average Convergence Divergence (MACD)", shorttitle="MACD", overlay=false)
fastLength = input(12, minval=1, title="Lunghezza EMA Veloce")
slowLength = input(26, minval=1, title="Lunghezza EMA Lenta")
signalSmoothing = input(9, minval=1, title="Lunghezza Segnale")
source = close
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macdLine = fastMA - slowMA
signalLine = ema(macdLine, signalSmoothing)
histogram = macdLine - signalLine
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
plot(histogram, color=color.green, style=plot.style_histogram, title="Histogram")
Spiegazione del Codice
//@version=4
: Specifica la versione di Pine Script utilizzata.study("Moving Average Convergence Divergence (MACD)", shorttitle="MACD", overlay=false)
: Definisce il nome dell’indicatore e indica che non sarà sovrapposto al grafico dei prezzi.fastLength = input(12, minval=1, title="Lunghezza EMA Veloce")
: Crea un input per la lunghezza della EMA veloce.slowLength = input(26, minval=1, title="Lunghezza EMA Lenta")
: Crea un input per la lunghezza della EMA lenta.signalSmoothing = input(9, minval=1, title="Lunghezza Segnale")
: Crea un input per la lunghezza della Signal Line.source = close
: Utilizza i prezzi di chiusura come sorgente per il calcolo.fastMA = ema(source, fastLength)
: Calcola la EMA veloce.slowMA = ema(source, slowLength)
: Calcola la EMA lenta.macdLine = fastMA - slowMA
: Calcola la MACD Line.signalLine = ema(macdLine, signalSmoothing)
: Calcola la Signal Line.histogram = macdLine - signalLine
: Calcola l’istogramma.plot(macdLine, color=color.blue, title="MACD Line")
: Traccia la MACD Line sul grafico.plot(signalLine, color=color.orange, title="Signal Line")
: Traccia la Signal Line sul grafico.plot(histogram, color=color.green, style=plot.style_histogram, title="Histogram")
: Traccia l’istogramma sul grafico.
Passo 3: Personalizzare il MACD
Ora che abbiamo un MACD funzionante, possiamo aggiungere delle personalizzazioni per renderlo più utile e visivamente accattivante.
Cambiare i Colori e le Larghezze delle Linee
pinescriptCopy code//@version=4
study("MACD Personalizzato", shorttitle="MACD", overlay=false)
fastLength = input(12, minval=1, title="Lunghezza EMA Veloce")
slowLength = input(26, minval=1, title="Lunghezza EMA Lenta")
signalSmoothing = input(9, minval=1, title="Lunghezza Segnale")
source = close
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macdLine = fastMA - slowMA
signalLine = ema(macdLine, signalSmoothing)
histogram = macdLine - signalLine
plot(macdLine, color=color.blue, linewidth=2, title="MACD Line")
plot(signalLine, color=color.orange, linewidth=2, title="Signal Line")
plot(histogram, color=color.green, style=plot.style_histogram, title="Histogram", linewidth=1)
Aggiungere Avvisi per i Cross
Per rendere il nostro indicatore ancora più utile, aggiungiamo avvisi per quando la MACD Line supera la Signal Line e viceversa.
pinescriptCopy code//@version=4
study("MACD con Avvisi", shorttitle="MACD", overlay=false)
fastLength = input(12, minval=1, title="Lunghezza EMA Veloce")
slowLength = input(26, minval=1, title="Lunghezza EMA Lenta")
signalSmoothing = input(9, minval=1, title="Lunghezza Segnale")
source = close
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macdLine = fastMA - slowMA
signalLine = ema(macdLine, signalSmoothing)
histogram = macdLine - signalLine
macdCrossOver = crossover(macdLine, signalLine)
macdCrossUnder = crossunder(macdLine, signalLine)
plot(macdLine, color=color.blue, linewidth=2, title="MACD Line")
plot(signalLine, color=color.orange, linewidth=2, title="Signal Line")
plot(histogram, color=color.green, style=plot.style_histogram, title="Histogram", linewidth=1)
plotshape(series=macdCrossOver, location=location.top, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=macdCrossUnder, location=location.bottom, color=color.red, style=shape.labeldown, text="SELL")
Spiegazione delle Aggiunte
macdCrossOver = crossover(macdLine, signalLine)
: Restituiscetrue
quando la MACD Line supera la Signal Line.macdCrossUnder = crossunder(macdLine, signalLine)
: Restituiscetrue
quando la MACD Line scende sotto la Signal Line.plotshape(series=macdCrossOver, location=location.top, color=color.green, style=shape.labelup, text="BUY")
: Aggiunge un’etichetta “BUY” quando la MACD Line supera la Signal Line.plotshape(series=macdCrossUnder, location=location.bottom, color=color.red, style=shape.labeldown, text="SELL")
: Aggiunge un’etichetta “SELL” quando la MACD Line scende sotto la Signal Line.
Passo 4: Aggiungere Zone di Background Colorate
Per migliorare ulteriormente la leggibilità, possiamo aggiungere delle zone di background colorate per indicare le aree di incrocio tra la MACD Line e la Signal Line.
pinescriptCopy code//@version=4
study("MACD con Zone Colorate", shorttitle="MACD", overlay=false)
fastLength = input(12, minval=1, title="Lunghezza EMA Veloce")
slowLength = input(26, minval=1, title="Lunghezza EMA Lenta")
signalSmoothing = input(9, minval=1, title="Lunghezza Segnale")
source = close
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macdLine = fastMA - slowMA
signalLine = ema(macdLine, signalSmoothing)
histogram = macdLine - signalLine
macdCrossOver = crossover(macdLine, signalLine)
macdCrossUnder = crossunder(macdLine, signalLine)
plot(macdLine, color=color.blue, linewidth=2, title="MACD Line")
plot(signalLine, color=color.orange, linewidth=2, title="Signal Line")
plot(histogram, color=color.green, style=plot.style_histogram, title="Histogram", linewidth=1)
plotshape(series=macdCrossOver, location=location.top, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=macdCrossUnder, location=location.bottom, color=color.red, style=shape.labeldown, text="SELL")
bgcolor(macdCrossOver ? color.new(color.green, 90) : na)
bgcolor(macdCrossUnder ? color.new(color.red, 90) : na)
Conclusione
Ed eccoci alla fine della nostra guida sul MACD personalizzato in Pine Script! Ora avete creato un potente indicatore che può aiutarvi a identificare i cambiamenti di trend e di momentum nel mercato. Non solo, avete anche personalizzato l’indicatore con colori, larghezze delle linee e avvisi, rendendolo ancora più utile e accattivante.
Risorse Aggiuntive
- Documentazione Ufficiale: Pine Script Reference
- Corsi e Tutorial: Cercate su YouTube e piattaforme di e-learning per ulteriori tutorial e corsi su Pine Script.
Se questo articolo ti è stato utile, condividilo con altri aspiranti programmatori e trader! Seguimi per ulteriori guide e consigli su Pine Script e il mondo del trading. Buona fortuna e buon trading! 🚀
Se hai dubbi o domande a riguardo puoi farmele pure su
Instagram: https://www.instagram.com/investoinvestigando.it/
Qui puoi trovare tutta la guida: LINK