You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pine-Script如何获取Stochastic RSI指标K、D线交叉点的y坐标值

你可以通过Pine Script的交叉检测函数结合条件赋值,直接获取Stoch RSI的K、D线交叉时的y轴数值,具体实现如下:

完整修改后代码

//@version=4
study(title="Stochastic RSI", shorttitle="Stoch RSI", format=format.price, precision=2, resolution="")
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

// 新增交叉检测逻辑
golden_cross = crossover(k, d) // K线上穿D线(金叉)
death_cross = crossunder(k, d) // K线下穿D线(死叉)

// 获取交叉时的y轴数值
cross_k = na
cross_d = na
// 保留最近一次交叉的K值,不需要保留可以把cross_k[1]改为na
cross_k := golden_cross or death_cross ? k : cross_k[1]
// 保留最近一次交叉的D值,不需要保留可以把cross_d[1]改为na
cross_d := golden_cross or death_cross ? d : cross_d[1]

// 可选:在交叉点标注数值验证
plotshape(golden_cross, title="金叉", location=location.belowbar, color=color.green, style=shape.labelup, text="金叉 K:" + tostring(k) + " D:" + tostring(d))
plotshape(death_cross, title="死叉", location=location.abovebar, color=color.red, style=shape.labeldown, text="死叉 K:" + tostring(k) + " D:" + tostring(d))

plot(k, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
hline(20)
hline(80)

逻辑说明

  • crossover和crossunder是Pine Script内置的交叉判断函数,返回布尔值标识对应交叉是否在当前周期发生
  • 交叉发生时的k和d值就是你需要的指标窗口y坐标数值,Stoch RSI的数值范围为0-100,和指标窗口y轴刻度完全对应
  • 如果你只需要交叉发生瞬间的数值,不需要历史保留,可以把赋值逻辑里的cross_k[1]/cross_d[1]改为na,这样变量仅在交叉发生的周期有值,其余周期为空

内容的提问来源于stack exchange,提问作者bbnm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:45:02