Stochastic SuperTrend [BigBeluga]

BigBeluga · study · 73 行 · 点赞 2,828 · TradingView 原页

本页源码来自 TradingView 公开发布的开源脚本,版权归原作者所有, 请遵循其原始许可(Pine 脚本常见 CC BY-NC-SA / MPL-2.0 / MIT)。 本项目仅用于研究检索与许可范围内的移植。

Pine Script

// This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International  
// https://creativecommons.org/licenses/by-nc-sa/4.0/
// © BigBeluga
 
 
//@version=6
indicator("Stochastic SuperTrend [BigBeluga]", overlay=false)
 
// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
 
lengthRsi = input.int(14, "RSI")
periodK   = input.int(14, "K")
smoothK   = input.int(3, "Smooth")
 
display_st = input.bool(true, "Supertrend", group = "SuperTrend")
factor     = input.int(10, "Multiplier", group = "SuperTrend")
 
col_up = input.color(#14c79a, "")
col_dn = input.color(#e42c69, "")
// }
 
 
// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
stochRsi() =>
    rsi = ta.rsi(close, lengthRsi)
    k = ta.sma(ta.stoch(rsi, rsi, rsi, periodK), smoothK)
    k
 
k = stochRsi()
 
 
upperBand = k + factor
lowerBand = k - factor
 
prevUpper = nz(upperBand[1])
prevLower = nz(lowerBand[1])
 
upperBand := upperBand < prevUpper or k[1] > prevUpper ? upperBand : prevUpper
lowerBand := lowerBand > prevLower or k[1] < prevLower ? lowerBand : prevLower
 
var float trend = na
var int   dir   = na
 
if bar_index == 1
    dir := 1
else if nz(trend[1]) == prevUpper
    dir := k > upperBand ? -1 : 1
else
    dir := k < lowerBand ? 1 : -1
 
trend := dir == -1 ? lowerBand : upperBand
 
stoch_col = dir == -1 ? col_up : col_dn, linewidth=2
// }
 
 
// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
plotshape(dir != dir[1] and dir == -1 and k < 50 ? trend : na, "", shape.labelup, text= "🢁", textcolor = stoch_col, color = color(na), location = location.absolute)
plotshape(dir != dir[1] and dir == 1 and k > 50 ? trend : na, "", shape.labeldown, text= "🢃", textcolor = stoch_col, color = color(na), location = location.absolute)
 
 
p5 = plot(50, color = color.gray)
p1 = plot(100, display = display.none, editable = false)
p0 = plot(0, display = display.none, editable = false)
 
fill(p0, p5, 50, 0, na, color.new(col_up, 80))
fill(p1, p5, 100, 50, color.new(col_dn, 80), na)
 
pk  = plot(k, title="Stoch RSI", color=chart.fg_color, linewidth = 2)
pst = plot(display_st ? trend : na, title="Supertrend on Stoch RSI", color = dir != dir[1] ? na : stoch_col, editable = display_st)
 
fill(pk, pst, dir != dir[1] ? na : color.new(stoch_col, 80))
// }

← 返回列表