0% found this document useful (0 votes)
79 views

MACD - Pine Script

This document defines an indicator for calculating and plotting the Moving Average Convergence Divergence (MACD) technical indicator. It takes in user inputs for the fast and slow exponential or simple moving average lengths, a signal smoothing value, and the data source. It then calculates the MACD, signal line, and histogram values and plots them along with alert conditions.

Uploaded by

Chirag Ramani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views

MACD - Pine Script

This document defines an indicator for calculating and plotting the Moving Average Convergence Divergence (MACD) technical indicator. It takes in user inputs for the fast and slow exponential or simple moving average lengths, a signal smoothing value, and the data source. It then calculates the MACD, signal line, and histogram values and plots them along with alert conditions.

Uploaded by

Chirag Ramani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

//@version=5

indicator(title="Moving Average Convergence Divergence", shorttitle="MACD", timeframe="",


timeframe_gaps=true)

// Getting inputs

fast_length = input(title = "Fast Length", defval = 12)

slow_length = input(title = "Slow Length", defval = 26)

src = input(title = "Source", defval = close)

signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 50, defval = 9, display =


display.data_window)

sma_source = input.string(title = "Oscillator MA Type", defval = "EMA", options = ["SMA", "EMA"],


display = display.data_window)

sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"],
display = display.data_window)

// Calculating

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)

slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)

macd = fast_ma - slow_ma

signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)

hist = macd - signal

alertcondition(hist[1] >= 0 and hist < 0, title = 'Rising to falling', message = 'The MACD histogram
switched from a rising to falling state')

alertcondition(hist[1] <= 0 and hist > 0, title = 'Falling to rising', message = 'The MACD histogram
switched from a falling to rising state')

hline(0, "Zero Line", color = color.new(#787B86, 50))

plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A
: #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))

plot(macd, title = "MACD", color = #2962FF)

plot(signal, title = "Signal", color = #FF6D00)

You might also like