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:

  1. Accedi a TradingView: Vai su TradingView.
  2. Apri un grafico: Seleziona l’asset finanziario di tuo interesse.
  3. 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): Restituisce true quando la MACD Line supera la Signal Line.
  • macdCrossUnder = crossunder(macdLine, signalLine): Restituisce true 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 UfficialePine 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