LazyBear

Indicator: Schaff Trend Cycle (STC)

7398 22 440
Another new indicator for TV community :)

STC             detects up and down trends long before the MACD . It does this by using the same exponential moving averages (EMAs), but adds a cycle component to factor instrument cycle trends. STC             gives more accuracy and reliability than the MACD .

More info: http://www.investopedia.com/articles/forex/10/schaff-trend-cycle-indicator.asp

Feel free to "Make mine" this chart and use the indicator in your charts. Appreciate any feedback on how effective this is for your instrument (I have tested this only with BTC ).



For people trading BTC:
-------------------------------

Try 3/10 or 9/30 for MACD (fastLength/slowLength). They seem to catch the cycles better than the defaults. :)
Remove from Favorite Scripts Add to Favorite Scripts
//
// @author LazyBear
// If you use modify / use this code, appreciate if you could drop me a note. 
// 
study(title="Schaff Trend Cycle [LazyBear]", shorttitle="STC_LB", overlay=true)
length=input(10)
fastLength=input(23)
slowLength=input(50)
macd(source, fastLength, slowLength) =>
    fastMA = ema(source, fastLength)
    slowMA = ema(source, slowLength)
    macd = fastMA - slowMA
    macd
    

stc(length, fastLength, slowLength) => 
    factor=input(0.5)  
    m = macd(close,fastLength,slowLength)     
    v1 = lowest(m, length)
    v2 = highest(m, length) - v1    
    f1 = (v2 > 0 ? ((m - v1) / v2) * 100 : nz(f1[1])) 
    pf = (na(pf[1]) ? f1 : pf[1] + (factor * (f1 - pf[1]))) 
    v3 = lowest(pf, length) 
    v4 = highest(pf, length) - v3     
    f2 = (v4 > 0 ? ((pf - v3) / v4) * 100 : nz(f2[1])) 
    pff = (na(pff[1]) ? f2 : pff[1] + (factor * (f2 - pff[1])))
    pff

plot(stc(length,fastLength,slowLength),color=red, title="Schaff_TC")
//
// Uncomment the lines below if you want the center region
//
// ul=plot(25)
// ll=plot(75) 
// fill(ul,ll,color=red)
 
List of my free indicators: http://bit.ly/1LQaPK8
List of my indicators at Appstore: http://blog.tradingview.com/?p=970

Making it mine now. Will let you know how well it works for me! Thanks!
+3 Reply
LazyBear PRO
2 years ago
snapshot


You can also use this indicator in its own pane (by unmerging down), as shown above.

If you do that, I suggest enabling the center region. Open the source code and uncomment these lines. Press Save and voila!

//
// ul=plot(25)
// ll=plot(75)
// fill(ul,ll,color=red)
//
+6 Reply
CoinEx LazyBear
2 years ago
It looks like there was a change to the way the code works.

This indicator gives an error:
line 33:3 mismatched input 'ul' expecting LEND
Reply
LazyBear PRO CoinEx
2 years ago
I just tried this code, it worked.

Did you make any changes?
+1 Reply
CoinEx LazyBear
2 years ago
I thought that might have been a possibility. So what I did is I took a fresh copy from above and inserted it a few minutes ago. The error appears when you uncomment the last few lines and prevents the indicator from functioning.

In other words, it is a carbon copy of the original.
Reply
LazyBear PRO CoinEx
2 years ago
uncomment last few lines?

Can you post the exact src code that is giving u this issue?
+1 Reply
CoinEx LazyBear
2 years ago
//
// @author LazyBear
// If you use modify / use this code, appreciate if you could drop me a note.
//
study(title="Schaff Trend Cycle ", shorttitle="STC_LB", overlay=true)
length=input(10)
fastLength=input(23)
slowLength=input(50)
macd(source, fastLength, slowLength) =>
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
macd


stc(length, fastLength, slowLength) =>
factor=input(0.5)
m = macd(close,fastLength,slowLength)
v1 = lowest(m, length)
v2 = highest(m, length) - v1
f1 = (v2 > 0 ? ((m - v1) / v2) * 100 : nz(f1))
pf = (na(pf) ? f1 : pf + (factor * (f1 - pf)))
v3 = lowest(pf, length)
v4 = highest(pf, length) - v3
f2 = (v4 > 0 ? ((pf - v3) / v4) * 100 : nz(f2))
pff = (na(pff) ? f2 : pff + (factor * (f2 - pff)))
pff

plot(stc(length,fastLength,slowLength),color=red, title="Schaff_TC")
//
// Uncomment the lines below if you want the center region
//
ul = plot(open)
ll = plot(75)
fill(uline, ll, color=red)

+1 Reply
CoinEx CoinEx
2 years ago
the last 3 lines seems to cause the problem.
Note: I changed the plot(25) to open but that was just a debugging effort. I forgot to revert it before copy and pasting the code.
Reply
CoinEx CoinEx
2 years ago
I figured out the problem. It seems that leaving a space at the beginning of line 33 causes the error.
Reply
LazyBear PRO CoinEx
2 years ago
great! :)
+1 Reply
cristian.d CoinEx
2 years ago
I did this but it gives me error. Could you please post the script with the detached panel please? Many thanks.
Thanks LazyBear for this!!!
Reply
LazyBear PRO cristian.d
2 years ago
cristian, that was formatting issue CoinEx had. Try aligning the script properly in notepad before pasting it in the pine editor.
+1 Reply
cristian.d LazyBear
2 years ago
Thanks LazyB, the dettached one is awesome visual speaking
Reply
KPEI
2 years ago
Interesting Indicator man! I like how responsive and accurate it is most times. Care to explain more of your math behind it?
+2 Reply
LazyBear PRO KPEI
2 years ago
Thanks. The math is not mine. This was developed by Doug Schaff, CEO FX-Strategycom.

STC uses a fast Stochastics formula that includes the original %fastK and a smoothed variation of the %fastD. It runs this modified stochastic twice. Step1 runs it on MACD. Generated %fastD is the input for step2. Output of step2 (STC) is actually a %fastD of %fastD.

Smoothing constant ("factor"), MACD fastLength/slowLengths are all exposed for customization via the options page.
+6 Reply
LazyBear PRO
2 years ago
For people trading BTC:
-------------------------------

Try 3/10 or 9/30 for MACD (fastLength/slowLength). They seem to catch the cycles better than the defaults. :)
+7 Reply
dp
2 years ago
Awesome!

Appreciate your efforts.
+2 Reply
LazyBear PRO dp
2 years ago
Thx.
+5 Reply
admin PRO
2 years ago
Thank you for sharing!
+2 Reply
LazyBear PRO admin
2 years ago
yw.
+4 Reply
sridharsalla72
2 months ago
What settings would you advise for 1 minute chart scalping of ETF's?
Reply
isomorph
2 months ago
i was evaluating chartIQ and going through the list of built-in studies they offer when i spotted STC, which i never heard off before. so then i go read up on how it's computed. quite elegant and interesting! then, since i am a big fan of BB with p = 17, i notice that the 2 together (STC with default param settings) give some quite nice signals. so now more testing is in order. thanks LB for implementing it.
Reply
Ideas Scripts Chart
United States
United Kingdom
India
España
Italia
Brasil
Россия
Türkiye
日本
한국
Home Stock Screener Economic Calendar How It Works Chart Features House Rules Moderators For the WEB Widgets Stock Charting Library Priority Support Feature Request Blog & News FAQ Help & Wiki Twitter
Private Messages Chat Ideas Published Followers Following Priority Support Public Profile Profile Settings Billing Sign Out