repo32

Moving Average Colored EMA/SMA

This script will give you the ability to put an EMA and/or SMA on the chart that changes color based upon the direction. Default at startup is EMA visible and SMA hidden. When the MA is moving up, it is green. When the MA is moving down, it is red. You can change the color to whatever you like.
Remove from Favorite Scripts Add to Favorite Scripts
//Created by Robert Nance on 072315
study(title="Moving Average Colored EMA/SMA", shorttitle="Colored EMA /SMA", overlay=true)
emaplot = input (true, title="Show EMA on chart")
len = input(8, minval=1, title="ema Length")
src = close
out = ema(src, len)
up = out > out[1]
down = out < out[1]
mycolor = up ? green : down ? red : blue
plot(out and emaplot ? out :na, title="EMA", color=mycolor, linewidth=3)


smaplot = input (false, title="Show SMA on chart")
len2 = input(8, minval=1, title="sma Length")
src2 = close
out2 = sma(src2, len2)
up2 = out2 > out2[1]
down2 = out2 < out2[1]
mycolor2 = up2 ? green : down2 ? red : blue
plot(out2 and smaplot ? out2 :na , title="SMA", color=mycolor2, linewidth=1)

Comments

This is really great, thanks for making it available.

I'm trying to apply the idea to this HPotter's ADV Line indicator, but can't figure it out. Any chance you could help?
This is the code:

study(title="Advance/Decline Volume Line", shorttitle="ADV Line", overlay = false)
AdvSymbolVolume = input(title="Advancing Volume Symbol", type=symbol, defval="USI:UVOL")
DecSymbolVolume = input(title="Declining Volume Symbol", type=symbol, defval="USI:DVOL")
Resolutin = input(title="Resolution", type=resolution, defval="D")
xASVValue = security(AdvSymbolVolume, Resolutin, close)
xDSVValue = security(DecSymbolVolume, Resolutin, close)
NetADV = xASVValue - xDSVValue
nRes = nz(nRes, 0) + NetADV
plot(nRes, color=green, title="ADV Line", style=line)

Many thanks in advance.
+2 Reply
repo32 OTMRob
@OTMRob, At first glance you are trying to create a new value that is referencing itself (nRes): nRes = nz(nRes, 0) + NetADV
Reply
OTMRob repo32
@repo32, thanks for the reply, sorry to take so long to reply myself, I hadn't noticed the alert...
I'm not familiar enough with pine to understand what you're saying there about the self referencing value, unfortunately, but would love to try to understand if you have the time to explain. This is @HPotter 's script.

I would be happy to pay for the script above with code that changes color based upon the direction added in.

Thanks,
Rob
Reply
repo32 OTMRob
@OTMRob, Please post the link to the script.
Reply
OTMRob repo32
@repo32,

Thanks in advance.
Reply
repo32 OTMRob
@OTMRob, Just remove the last line from his script and add the following:

UnRes = nRes > nRes
DnRes = nRes < nRes
mycolor =UnRes ? green : DnRes ? red:blue
plot(nRes, color=mycolor, title="ADV Line", style=line)
Reply
repo32 repo32
@repo32, Not sure why the is being removed from the end of the first two lines.
Reply
repo32 repo32
@repo32, Trying again ""
Reply
repo32 repo32
@repo32, at the end of the first two lines add: square parenthesis with a one inside like this:
UnRes = nRes > nRes square parenthesis one square parenthesis
DnRes = nRes < nRes square parenthesis one square parenthesis
mycolor =UnRes ? green : DnRes ? red:blue
plot(nRes, color=mycolor, title="ADV Line", style=line)

and cmon tradingview, fix this
Reply
OTMRob repo32
@repo32, works perfectly, thank you!

A quick question: when I hang this on different symbols, the results change slightly. As far as I understand, results should be consistent no matter what symbol this indicator is on as it's drawing data from UVOL and DVOL, is that not correct?
Reply
Home Stock Screener Forex Screener Crypto Screener Economic Calendar How It Works Chart Features Pricing Refer a friend House Rules Help Center Website & Broker Solutions Widgets Charting Solutions Lightweight Charting Library Blog & News Twitter
Profile Profile Settings Account and Billing Refer a friend My Support Tickets Help Center Ideas Published Followers Following Private Messages Chat Sign Out