LazyBear

Indicator: Schaff Trend Cycle (STC)

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/for...

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. :)
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Want to use this script on a chart?
//
// @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

Kommentarer



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)
//
+12 Svara
CoinEx LazyBear
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
+1 Svara
LazyBear CoinEx
I just tried this code, it worked.

Did you make any changes?
+1 Svara
CoinEx LazyBear
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.
Svara
LazyBear CoinEx
uncomment last few lines?

Can you post the exact src code that is giving u this issue?
+2 Svara
CoinEx LazyBear
//
// @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)

+3 Svara
CoinEx CoinEx
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.
Svara
CoinEx CoinEx
I figured out the problem. It seems that leaving a space at the beginning of line 33 causes the error.
Svara
LazyBear CoinEx
great! :)
+3 Svara
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!!!
Svara
Hem Aktie-screener Forex-screener Krypto-screener Ekonomisk kalender Om Diagramfunktioner Priser Tipsa en vän Ordningsregler Hjälpcenter Webbsidor och mäklarlösningar Widgets Diagramlösningar Lightweight Charting Library Blogg och nyheter Twitter