OPEN-SOURCE SCRIPT

MACD Buy Sell with alerts

//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

// Alert conditions for histogram changes
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')

// Buy and Sell Signals
buy_signal = (ta.crossover(macd, signal) and macd > 0) or ta.crossover(macd, 0)
sell_signal = (ta.crossunder(macd, signal) and macd < 0) or ta.crossunder(macd, 0)

// Alert conditions for buy and sell signals
alertcondition(buy_signal, title='Buy Alert', message='MACD crossed above the Signal line above zero or zero line - Buy Signal!')
alertcondition(sell_signal, title='Sell Alert', message='MACD crossed below the Signal line below zero or zero line - Sell Signal!')

// Plotting buy and sell signals
plotshape(buy_signal, title='Buy Signal', location=location.bottom, color=color.green, style=shape.labelup, text='BUY', textcolor=color.white, size=size.small)
plotshape(sell_signal, title='Sell Signal', location=location.top, color=color.red, style=shape.labeldown, text='SELL', textcolor=color.white, size=size.small)

// Plotting
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)


alertsetupalertsignalsbuymacdcrossovermacdivergenceMoving AveragesmultitimeframeOscillatorssellsignal

Skrypt open-source

W prawdziwym duchu TradingView autor tego skryptu opublikował go jako open source, aby inwestorzy mogli go zrozumieć i zweryfikować. Pozdrowienia dla autora! Możesz go używać bezpłatnie, ale ponowne użycie tego kodu w publikacji podlega Zasadom Regulaminu. Możesz go oznaczyć jako ulubione, aby użyć go na wykresie.

Chcesz użyć tego skryptu na wykresie?

Wyłączenie odpowiedzialności