SuperTrend Toolkit

EliCobra 업데이트됨   
The SuperTrend Toolkit (Super Kit) introduces a versatile approach to trend analysis by extending the application of the SuperTrend indicator to a wide array of @TradingView's built-in or Community Scripts. This tool facilitates the integration of the SuperTrend algorithm with various indicators, including oscillators, moving averages, overlays, and channels.

The SuperTrend, at its core, calculates a trend-following indicator based on the Average-True-Range (ATR) and price action. It creates dynamic support and resistance levels, adjusting to changing market conditions, and aiding in trend identification.
pine_st(simple float factor = 3., simple int length = 10) =>
    float atr = ta.atr(length)
    float up  = hl2 + factor * atr
    up       := up < nz(up[1]) or close[1] > nz(up[1]) ? up : nz(up[1])
    float lo  = hl2 - factor * atr
    lo       := lo > nz(lo[1]) or close[1] < nz(lo[1]) ? lo : nz(lo[1])

    int   dir = na
    float st  = na

    if na(atr[1])
        dir := 1
    else if st[1] == nz(up[1])
        dir := close > up ? -1 : 1
        dir := close < lo ? 1 : -1

    st := dir == -1 ? lo : up

    [st, dir]

@TradingView's native SuperTrend lacks the flexibility to incorporate different price sources into its calculation.
Community scripts, addressed the limitation by implementing the option to input different price sources, for example, one of the most popular publications, @KivancOzbilgic's SuperTrend script.

In May 2023, @TradingView introduced an update allowing the passing of another indicator's plot as a source value via the input.source() function. However, the built-in ta.atr function still relied on the chart's price data, limiting the formerly mentioned scripts to the chart's price data alone.

Unique Approach -
This script addresses the aforementioned limitations by processing the data differently.
Firstly we create a User-Defined-Type (UDT) replicating a bar's open, high, low, close (OHLC) values.
type bar
    float o = open
    float h = high
    float l = low
    float c = close

We then use this type to store the external input data.
src = input.source(close, "External Source")

bar b = bar.new(
       nz(src[1])               ,   open  𝘷𝘢𝘭𝘶𝘦
       math.max(nz(src[1]), src),   high  𝘷𝘢𝘭𝘶𝘦
       math.min(nz(src[1]), src),   low   𝘷𝘢𝘭𝘶𝘦
       src                      )   close 𝘷𝘢𝘭𝘶𝘦

Finally, we pass the data into our custom built SuperTrend with ATR functions to derive the external source's version of the SuperTrend indicator.
supertrend st = b.st(mlt, len)

- Setup Guide -

Utility and Use Cases:
  1. Universal Compatibility - Apply SuperTrend to any built-in indicator or script, expanding its use beyond traditional price data.
    - A simple example on one of my own public scripts -

  2. Trend Analysis - Gain additional trend insights into otherwise mainly mean reverting or volume indicators.

- Alerts Setup Guide -

The Super Kit empowers traders and analysts with a tool that adapts the robust SuperTrend algorithm to a myriad of indicators, allowing comprehensive trend analysis and strategy development.
릴리즈 노트:
Added alerts.
릴리즈 노트:
Small fix
릴리즈 노트:
Added option for any alert call.

오픈 소스 스크립트

이 스크립트의 오써는 참된 트레이딩뷰의 스피릿으로 이 스크립트를 오픈소스로 퍼블리쉬하여 트레이더들로 하여금 이해 및 검증할 수 있도록 하였습니다. 오써를 응원합니다! 스크립트를 무료로 쓸 수 있지만, 다른 퍼블리케이션에서 이 코드를 재사용하는 것은 하우스룰을 따릅니다. 님은 즐겨찾기로 이 스크립트를 차트에서 쓸 수 있습니다.


이 정보와 게시물은 TradingView에서 제공하거나 보증하는 금융, 투자, 거래 또는 기타 유형의 조언이나 권고 사항을 의미하거나 구성하지 않습니다. 자세한 내용은 이용 약관을 참고하세요.

차트에 이 스크립트를 사용하시겠습니까?