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

Stochastic K指标绘图限制逻辑错误排查及修正请求

Stochastic K指标背景色绘制逻辑修正

需求说明

  • 当Stochastic K值超过80时绘制红色区域,触发后需保持红区直到K值低于20,之后才可再次绘制新红区
  • 当Stochastic K值低于20时绘制绿色区域,触发后需保持绿区直到K值超过80,之后才可再次绘制新绿区

问题描述

当前通过变量控制绘图信号未达预期:Stochastic K值未触发反向阈值时,区域颜色提前消失或误触发,无法保持状态直到反向条件满足。

原代码

lookback = input(title = 'Period', defval = 13)
highest = ta.highest(high, lookback)
lowest = ta.lowest(low, lookback)
stochastic_K = ((close - lowest) / (highest - lowest)) * 100
upbefore = false
downbefore = false

if stochastic_K > 80
    upbefore := true
    downbefore := false
if stochastic_K < 20
    upbefore := false
    downbefore := true

//color change
readyforbuy = downbefore == true
readyforsell = upbefore == true

backgroundcolor = readyforbuy? color.rgb(33, 149, 243, 63): readyforsell? color.rgb(255, 82, 82, 54): na
// Draw area
bgcolor(color = backgroundcolor)

错误分析

  1. 状态未持久化:upbefore和downbefore未用var声明,每根K线执行时都会被重置为false,无法保留触发阈值后的状态
  2. 逻辑不符合需求:仅当K值处于>80或<20区间时才显示对应颜色,一旦K值离开阈值区间,颜色立即消失,未实现“触发后保持直到反向阈值触发”的要求

修正后的代码

lookback = input(title = 'Period', defval = 13)
highest = ta.highest(high, lookback)
lowest = ta.lowest(low, lookback)
stochastic_K = ((close - lowest) / (highest - lowest)) * 100

// 用var声明持久化状态变量,跨K线保留区域状态
var inRedZone = false
var inGreenZone = false

// 红区逻辑:首次触发K>80进入红区,K<20时退出红区
if stochastic_K > 80 and not inRedZone
    inRedZone := true
    inGreenZone := false
if stochastic_K < 20
    inRedZone := false

// 绿区逻辑:首次触发K<20进入绿区,K>80时退出绿区
if stochastic_K < 20 and not inGreenZone
    inGreenZone := true
    inRedZone := false
if stochastic_K > 80
    inGreenZone := false

// 渲染背景色
bgColor = inRedZone ? color.rgb(255, 82, 82, 54) : inGreenZone ? color.rgb(33, 149, 243, 63) : na
bgcolor(color = bgColor)

代码说明

  • 用var关键字声明状态变量,确保状态在不同K线间持久化
  • 红区触发后会持续显示,直到K值低于20才退出;绿区触发后持续显示,直到K值超过80才退出
  • 避免了状态被频繁重置,严格遵循“触发后保持直到反向条件满足”的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:51:10