mbarcala
Active member
This its EMA Histogram, a nice combination between a moving average as histogram in a lower indicator. I remember I saw something like this a while ago on tradingview and now a friend is asking me if he can use a moving average as a lower indicator so I wrote this to help him, it's nice the finish idea. Its fully customizable in case the you want to change your trading timeframe.
Upper Indicator here: https://usethinkscript.com/threads/break-keltner-bands-bkb-for-thinkorswim.11220/
14817[/ATTACH]']
script
Upper Indicator here: https://usethinkscript.com/threads/break-keltner-bands-bkb-for-thinkorswim.11220/
14817[/ATTACH]']
script
Code:
# EMA Histogram by mbarcala
declare lower;
input length = 20;
input fastPeriod = 5;
input averageType = AverageType.EXPONENTIAL;
input signLevel = 0.45;
input showLevel = no;
def exma = MovingAverage(averageType, close, length);
plot EMAh = (exma - exma[fastPeriod]) / fastPeriod;
EMAh.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
EMAh.AssignValueColor(if EMAh > EMAh[1] and EMAh > 0 then Color.GREEN else
if EMAh > 0 and EMAh < EMAh[1] then Color.DARK_GREEN else
if EMAh < 0 and EMAh < EMAh[1] then Color.RED else Color.DARK_RED);
EMAh.SetLineWeight(5);
EMAh.HideBubble();
EMAh.HideTitle();
plot zcero = 0;
zcero.SetDefaultColor(Color.GRAY);
zcero.HideTitle();
def signUp = if EMAh crosses above 0 or EMAh crosses below 0 then signLevel else Double.NaN;
def signUpDn = if EMAh crosses above 0 then signLevel else if EMAh crosses below 0 then -signLevel else Double.NaN;
plot levels = if showLevel == 1 then signUp else signUpDn;
levels.SetPaintingStrategy(PaintingStrategy.SQUARES);
levels.AssignValueColor(if EMAh crosses above 0 then Color.GREEN else if EMAh crosses below 0 then Color.RED else Color.CURRENT);
levels.SetLineWeight(3);
levels.HideBubble();
levels.HideTitle();
Attachments
Last edited by a moderator: