Skip to content

Instantly share code, notes, and snippets.

@basnijholt
Created September 18, 2021 08:23
Show Gist options
  • Save basnijholt/a78fe8deafe76bf3cc1f7e9817f9169e to your computer and use it in GitHub Desktop.
Save basnijholt/a78fe8deafe76bf3cc1f7e9817f9169e to your computer and use it in GitHub Desktop.
CTO Line indicator for TradingView
//@version=4
study(title="CTO Line", shorttitle="CTO", overlay=true, resolution="")
smma(src, length) =>
smma = 0.0
smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
smma
v1 = smma(hl2, 15)
m1 = smma(hl2, 19)
m2 = smma(hl2, 25)
v2 = smma(hl2, 29)
p2 = v1<m1 != v1<v2 or m2<v2 != v1<v2
p3 = not p2 and v1<v2
p1 = not p2 and not p3
c = p1 ? color.orange : p2 ? color.silver : color.navy
line1 = plot(v1, "Line 1", color=c)
line2 = plot(v2, "Line 2", color=c)
fill(line1, line2, color=c)
@f-gueguen
Copy link

f-gueguen commented Jan 26, 2023

Thank you. I convert it into javascript to use with my broker API, but I'm not an expert in pine script, I'm not sure if the value is smoothed over time or only once.
That is, does the block

smma(src, length) =>
    smma = 0.0
    smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
    smma
v1 = smma(hl2, 15)
  • first initialize the smma to the sma then smooth it once
    meaning that for every candle, it will get the sma then smooth it once
  • or will it smooth it every time a new candle appears?
    that is, keeping the previous smoothed version in memory and applying the new value to smooth it?

I guess my question could also be phrased as do smma becomes a series that stays available when the function is called with the same arguments?

Both are simple to code but they are quite different...

@cuterendra
Copy link

cuterendra commented Jan 26, 2023 via email

@f-gueguen
Copy link

f-gueguen commented Jan 26, 2023

@cuterendra you can add with a basic account, as long as you stay within the 3 indicators displayed limit. (that's what I do and it works fine)

If this makes it easier, here is a v5

//@version=5
indicator(title='CTO Line', shorttitle='CTO', overlay=true, timeframe='')

smma(src, length) =>
    smma = 0.0
    sma = ta.sma(src, length)
    smma := na(smma[1]) ? sma : (smma[1] * (length - 1) + src) / length
    smma

v1 = smma(hl2, 15)
m1 = smma(hl2, 19)
m2 = smma(hl2, 25)
v2 = smma(hl2, 29)

p2 = v1 < m1 != v1 < v2 or m2 < v2 != v1 < v2
p3 = not p2 and v1 < v2
p1 = not p2 and not p3

c = p1 ? color.orange : p2 ? color.silver : color.navy
line1 = plot(v1, 'Line 1', color=c)
line2 = plot(v2, 'Line 2', color=c)
fill(line1, line2, color=c, transp=90)

@cuterendra
Copy link

cuterendra commented Jan 26, 2023 via email

@RoscoeTheDog
Copy link

How is this supposed to be used? I know it's best on 4hr time frames. When I use it as an indicator for a strategy backtest it actually doesn't perform very well. Something like 46% over the course of 3 years.

I used logic such as:
Close and open long position when orange is triggered.
Close and open short when blue is triggered.

I even experimented with closing the position if it enters a greyzone and awaiting for a new color to occur to re-enter. This marginally improved the backtest.

Am I using this indicator wrong or something or is it not made for automated trading?

Alternatively I can reach a 260% gain on BTC since 2020 using tradingviews default "supertrend" indicator and fiddling around with the ATR params. I thought larson line would be better..!

@sajR25
Copy link

sajR25 commented Oct 4, 2023

Worked great!! Thanks.

@douglasnkrumah
Copy link

Hi @BreWep its clear you have respect for Larsson. i do too.. his course price is just too steep for me.
do you have any content from his course fundamentals that you could share.
it would really help. and thanks for the help on the pine editor for the larsson line.

@TreantBG
Copy link

BTW he says that the indicator is free the course is paid so no need to feel guilty of using this source code

@heerens
Copy link

heerens commented Oct 7, 2024

@RoscoeTheDog The indicator is just one tool in his tool belt and it needs to be used with all the other TA around a chart. I follow him for a long time and he is doing a very good job already with his videos on YouTube. Always very fact based and educating with a touch of his own style. The pice point is also very steep for me but I guess you pay it for the education/newsletter/community and tools so i think in total the price is fair IF you really want all of it.

Personally I just wanted to indicator as well because I just want it for my own trading strategy. Also for me it is just one piece of the strategy (not a buy/sell signal)

Because I am also able to program i took the pine script and build a little page around it applying the indicator to the top 5000 coins. Maybe its useful for some here as well. @f-gueguen @BreWep thanks for the script.

https://www.squarito.com/en/trends/smma-15-29/latest/usd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment