Slimmer Ribbon Indicator for ThinkorSwim

netarchitech

Well-known member
@HighBredCloud For your review:

A "Rough" Simple Moving Average Slimmer Ribbon:

smooth-simple.png



A "Smoothed" Simple Moving Average Slimmer Ribbon:

smooth-simple2.png



A "Rough" Hull Moving Average Slimmer Ribbon:

smooth-hull.png



A "Smoothed" Hull Moving Average Slimmer Ribbon:

smooth-hull2.png


Code:
# filename: MR__EZ_Slimmer_Ribbon_
# source: https://usethinkscript.com/threads/slim-ribbon-indicator-for-thinkorswim.245/
# original authors: Slim Miller and @markos
# idea source: @HighBredCloud
# enhancements: @netarchitech

#V01.01.11.20.2019

input price = close;
input SlimmerMALength1 = 8;
input SLimmerMALength2 = 13;
input SlimmerMALength3 = 21;
input SlimmerMAType = AverageType.EXPONENTIAL;

# plot and smooth the Moving Averages
def SlimmerMA1 = MovingAverage(SlimmerMAType, price, SlimmerMALength1);
plot SlimmerMovAvg1 = SlimmerMA1;
SlimmerMovAvg1.SetDefaultColor(Color.GREEN);
SlimmerMovAvg1.SetLineWeight(2);
SlimmerMovAvg1.hide();

def SlimmerMA2 = MovingAverage(SlimmerMAType, price, SlimmerMALength2);
plot SlimmerMovAvg2 = SlimmerMA2;
SlimmerMovAvg2.SetDefaultColor(Color.YELLOW);
SlimmerMovAvg2.SetLineWeight(2);
SlimmerMovAvg2.hide();

def SlimmerMA3 = MovingAverage(SlimmerMAType, price, SlimmerMALength3);
plot SlimmerMovAvg3 = SlimmerMA3;
SlimmerMovAvg3.SetDefaultColor(Color.RED);
SlimmerMovAvg3.SetLineWeight(2);
SlimmerMovAvg3.hide();


input applySelectSmoothing = yes;

def smooth_MA1 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength1));
def smooth_MA2 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength2));
def smooth_MA3 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength3));

input SelectSmoothingType = {default "Smooth MAs", "No Smoothing"};

plot X;
X.SetDefaultColor(Color.GREEN);
X.SetLineWeight(2);
plot Y;
Y.SetDefaultColor(Color.YELLOW);
Y.SetLineWeight(2);
plot Z;
Z.SetDefaultColor(Color.RED);
Z.SetLineWeight(2);

switch (SelectSmoothingType) {
case "Smooth MAs":
    X = if applySelectSmoothing and SlimmerMA1 then smooth_MA1 else SlimmerMA1;
    Y = if applySelectSmoothing and SlimmerMA2 then smooth_MA2 else SlimmerMA2;
    Z = if applySelectSmoothing and SlimmerMA3 then smooth_MA3 else SlimmerMA3;
case "No Smoothing":
    X = if applySelectSmoothing and SlimmerMA1 then SlimmerMA1 else SlimmerMA1;
    Y = if applySelectSmoothing and SlimmerMA2 then SlimmerMA2 else SlimmerMA2;
    Z = if applySelectSmoothing and SlimmerMA3 then SlimmerMA3 else SlimmerMA3;
}
;
 
Last edited:
@netarchitech WOW...looks nice...quick question to confirm as I think I know the answer to this BUT...can the values be changed other than 8 13 21 to others for example 20 50 100 and have them reflect the correct values or are those numbers that you used to smoothed them out somehow tied to smoothing formula ONLY for the 8 13 21 lengths?
 
@HighBredCloud For your review:

A "Rough" Simple Moving Average Slimmer Ribbon:

smooth-simple.png



A "Smoothed" Simple Moving Average Slimmer Ribbon:

smooth-simple2.png



A "Rough" Hull Moving Average Slimmer Ribbon:

smooth-hull.png



A "Smoothed" Hull Moving Average Slimmer Ribbon:

smooth-hull2.png


Code:
# filename: MR__EZ_Slimmer_Ribbon_
# source: https://usethinkscript.com/threads/slim-ribbon-indicator-for-thinkorswim.245/
# original authors: Slim Miller and @markos
# idea source: @HighBredCloud
# enhancements: @netarchitech

#V01.01.11.20.2019

input price = close;
input SlimmerMALength1 = 8;
input SLimmerMALength2 = 13;
input SlimmerMALength3 = 21;
input SlimmerMAType = AverageType.EXPONENTIAL;

# plot and smooth the Moving Averages
def SlimmerMA1 = MovingAverage(SlimmerMAType, price, SlimmerMALength1);
plot SlimmerMovAvg1 = SlimmerMA1;
SlimmerMovAvg1.SetDefaultColor(Color.GREEN);
SlimmerMovAvg1.SetLineWeight(2);
SlimmerMovAvg1.hide();

def SlimmerMA2 = MovingAverage(SlimmerMAType, price, SlimmerMALength2);
plot SlimmerMovAvg2 = SlimmerMA2;
SlimmerMovAvg2.SetDefaultColor(Color.YELLOW);
SlimmerMovAvg2.SetLineWeight(2);
SlimmerMovAvg2.hide();

def SlimmerMA3 = MovingAverage(SlimmerMAType, price, SlimmerMALength3);
plot SlimmerMovAvg3 = SlimmerMA3;
SlimmerMovAvg3.SetDefaultColor(Color.RED);
SlimmerMovAvg3.SetLineWeight(2);
SlimmerMovAvg3.hide();


input applySelectSmoothing = yes;

def smooth_MA1 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength1));
def smooth_MA2 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength2));
def smooth_MA3 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength3));

input SelectSmoothingType = {default "Smooth MAs", "No Smoothing"};

plot X;
X.SetDefaultColor(Color.GREEN);
X.SetLineWeight(2);
plot Y;
Y.SetDefaultColor(Color.YELLOW);
Y.SetLineWeight(2);
plot Z;
Z.SetDefaultColor(Color.RED);
Z.SetLineWeight(2);

switch (SelectSmoothingType) {
case "Smooth MAs":
    X = if applySelectSmoothing and SlimmerMA1 then smooth_MA1 else SlimmerMA1;
    Y = if applySelectSmoothing and SlimmerMA2 then smooth_MA2 else SlimmerMA2;
    Z = if applySelectSmoothing and SlimmerMA3 then smooth_MA3 else SlimmerMA3;
case "No Smoothing":
    X = if applySelectSmoothing and SlimmerMA1 then SlimmerMA1 else SlimmerMA1;
    Y = if applySelectSmoothing and SlimmerMA2 then SlimmerMA2 else SlimmerMA2;
    Z = if applySelectSmoothing and SlimmerMA3 then SlimmerMA3 else SlimmerMA3;
}
;

@netarchitech You might like to consider using something like the GMMA. I found it useful when I built a moving average type of indicator years ago with 5-6 different moving averages.
 
Are you able to input more moving averages from the PercentR_MAC such as TEMA DEMA...and the the rest of the HULL Suite etc?
Will put it on the list for tomorrow...If I remember correctly it was the PPO with all of the moving averages...as I think about it might greatly increase the complexity, but I will try... :)
 
@tomsk Thanks for the tip...I'll look into it :cool: Thanks also for posting the Classification/Categorization post...it definitely helps to have guidelines to follow :)
 
I worked today with the slim ribbon indicator and discovered something being I added Horseriders swing hi lo indicator with surprising results.. I'm not so sure the change is a bad thing although the results surprised me.
slim ribbon standard: slim ribbon with added swing hi/lo
 
So yellow means upswing and pink shows downswing. Actually the swing hi lo modification I beleive by Tomsk.
 
Last edited:
So yellow means upswing and pink shows downswing. Actually the swing hi lo modification I beleive by Tomsk.

Hi @J007RMC please expand on it some more ;) - big fan of the slim ribbon, if you all notice something noteworthy and require further integration how do we help :)
 
no just noticed the change on reg slim ribbon so I put it on 522 tk and I'm kind of liking it will see tomorrow I just trade stocks
 
interesting conversation to see how we can improve this...

so here is a quick update, on the slim ribbon and added the smoothing to the de facto slim ribbon (below) and then created a smoothing version:

wXHz0ud.png


the slim ribbon with no smoothing (upper) is faster in entry than the modified version (smoothing) below. note this version is using a 5 - 8 - 13, rather than the traditional 8 - 13 - 21 setting.
 

Attachments

  • wXHz0ud.png
    wXHz0ud.png
    173.4 KB · Views: 101
Last edited:
@HighBredCloud For your review:

A "Rough" Simple Moving Average Slimmer Ribbon:

smooth-simple.png



A "Smoothed" Simple Moving Average Slimmer Ribbon:

smooth-simple2.png



A "Rough" Hull Moving Average Slimmer Ribbon:

smooth-hull.png



A "Smoothed" Hull Moving Average Slimmer Ribbon:

smooth-hull2.png


Code:
# filename: MR__EZ_Slimmer_Ribbon_
# source: https://usethinkscript.com/threads/slim-ribbon-indicator-for-thinkorswim.245/
# original authors: Slim Miller and @markos
# idea source: @HighBredCloud
# enhancements: @netarchitech

#V01.01.11.20.2019

input price = close;
input SlimmerMALength1 = 8;
input SLimmerMALength2 = 13;
input SlimmerMALength3 = 21;
input SlimmerMAType = AverageType.EXPONENTIAL;

# plot and smooth the Moving Averages
def SlimmerMA1 = MovingAverage(SlimmerMAType, price, SlimmerMALength1);
plot SlimmerMovAvg1 = SlimmerMA1;
SlimmerMovAvg1.SetDefaultColor(Color.GREEN);
SlimmerMovAvg1.SetLineWeight(2);
SlimmerMovAvg1.hide();

def SlimmerMA2 = MovingAverage(SlimmerMAType, price, SlimmerMALength2);
plot SlimmerMovAvg2 = SlimmerMA2;
SlimmerMovAvg2.SetDefaultColor(Color.YELLOW);
SlimmerMovAvg2.SetLineWeight(2);
SlimmerMovAvg2.hide();

def SlimmerMA3 = MovingAverage(SlimmerMAType, price, SlimmerMALength3);
plot SlimmerMovAvg3 = SlimmerMA3;
SlimmerMovAvg3.SetDefaultColor(Color.RED);
SlimmerMovAvg3.SetLineWeight(2);
SlimmerMovAvg3.hide();


input applySelectSmoothing = yes;

def smooth_MA1 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength1));
def smooth_MA2 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength2));
def smooth_MA3 = EhlersSuperSmootherFilter(MovingAverage(SlimmerMAType, price, SlimmerMALength3));

input SelectSmoothingType = {default "Smooth MAs", "No Smoothing"};

plot X;
X.SetDefaultColor(Color.GREEN);
X.SetLineWeight(2);
plot Y;
Y.SetDefaultColor(Color.YELLOW);
Y.SetLineWeight(2);
plot Z;
Z.SetDefaultColor(Color.RED);
Z.SetLineWeight(2);

switch (SelectSmoothingType) {
case "Smooth MAs":
    X = if applySelectSmoothing and SlimmerMA1 then smooth_MA1 else SlimmerMA1;
    Y = if applySelectSmoothing and SlimmerMA2 then smooth_MA2 else SlimmerMA2;
    Z = if applySelectSmoothing and SlimmerMA3 then smooth_MA3 else SlimmerMA3;
case "No Smoothing":
    X = if applySelectSmoothing and SlimmerMA1 then SlimmerMA1 else SlimmerMA1;
    Y = if applySelectSmoothing and SlimmerMA2 then SlimmerMA2 else SlimmerMA2;
    Z = if applySelectSmoothing and SlimmerMA3 then SlimmerMA3 else SlimmerMA3;
}
;
I do like these ribbons, experimenting with hull as it's a bit more unusual from your normal hull, but with any indicator,......messy. will experiment.
 
I do like these ribbons, experimenting with hull as it's a bit more unusual from your normal hull, but with any indicator,......messy. will experiment.
Try a Tillson T3...set it to 13 on anything less than 5 min chart and 8 to above 15 min...works better than the typical moving averages IMO. Too many people use different moving averages...HULL, Simple, EXP...Weighted...etc...
 
Try a Tillson T3...set it to 13 on anything less than 5 min chart and 8 to above 15 min...works better than the typical moving averages IMO. Too many people use different moving averages...HULL, Simple, EXP...Weighted...etc...
Yes, I will put the 8EMA, .......but look for my Tilson script.......
 

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
343 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top