Colored EMA Indicator

This is a modified version of the exponential moving average indicator. The only difference is that it changes color based on price action.

How It Works

When the closing price is above the EMA, the EMA will turn green for bullish.

When the closing price is below the EMA, the EMA will turn red for bearish.


EMA Length:
This sets the calculation period of the Exponential Moving Average.

EMA Source:
This sets the data source of the Exponential Moving Average.

Pine Script Basics Course Pine Script Mastery Course

Source Code

// Created by Matthew J. Slabosz
// Last Updated: 28th September, 2020
// @version=4
study(title="Colored EMA", shorttitle="EMA+", overlay=true)

// Strategy settings
emaLength = input(50, minval=1, title="EMA Length")
emaSource = input(close, title="EMA Source")

// Get EMA and plot it
ema = ema(emaSource, emaLength)
plot(ema, color=close[1] > ema and close > ema ? :, linewidth=2)

Last Updated: 28th September, 2020

Free Premium Charts!

5 2 votes
Article Rating
Notify of
Newest Most Voted
Inline Feedbacks
View all comments
1 year ago

This is awesome – exactly what I am looking for – thank you!!
Apart from changing ‘study’ to ‘strategy’, can you help me with the buying and selling lines of code so I can backtest this? Thank you for any help/

Brady Moreau
Brady Moreau
9 months ago

how would i add alert function to when the color changes from green to red?

Reply to  Brady Moreau
4 months ago

alertcondition(buy, title=”Bullish”, message= “Price crossed over EMA”
alertcondition(sell, title=”Bearish”, message= “Price crossed below EMA”

This code should work in a version=5 indicator.

4 months ago

plot(normalisedAdx, color=normalisedDirPlus[1] > normalisedDirMinus and normalisedDirPlus > normalisedDirMinus ? :, linewidth=2)

I am working with this on an ADX, but i was wondering if there is a way to get a bit more detailed with the color gradient so it was a slightly smoother transition between colors. so like a nice red when DI- > Di+, and orange when they are ‘close’ to each other and green when Di+ > DI-