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

如何设置SSL指标颜色:交叉期间为灰色,交叉后切换颜色?

调整SSL指标颜色:交叉期间显示灰色,确认趋势后切换对应颜色

需求说明

需要调整SSL指标的颜色逻辑:

  • 价格处于SSL区间内(交叉过程中)时,指标显示灰色
  • 价格突破SSL区间并确认趋势后,指标切换为对应趋势颜色(突破上轨显示青色,突破下轨显示红色)

效果对比

当前效果

当前SSL指标效果

目标效果

目标SSL指标效果

原代码

//@version=5  

// === SSL 60 === 
show_SSL = input.bool(true, 'Show SSL') 
SSL = ta.wma(2 * ta.wma(close, 60 / 2) - ta.wma(close, 60), math.round(math.sqrt(60))) 
SSLrangeEMA = ta.ema(ta.tr, 60) 
SSLhigh = SSL + SSLrangeEMA * 0.2 
SSLlow = SSL - SSLrangeEMA * 0.2 

// Trend and colors  
SSLcolor = close > SSLhigh ? color.new(color.aqua, 0) : close < SSLlow ? color.new(#ff0062, 0) : color.new(color.gray, 0) 

// Drawings 
plotSSL = plot(show_SSL ? SSL : na, color=SSLcolor, linewidth=1, title='SSL Baseline') 
plotSSLhigh = plot(show_SSL ? SSLhigh : na, color=SSLcolor, linewidth=1, title='SSL Highline') 
plotSSLlow = plot(show_SSL ? SSLlow : na, color=SSLcolor, linewidth=1, title='SSL Lowline') 
fill(plotSSLhigh, plotSSLlow, color=color.new(SSLcolor, 90)) 

// === SSL 120 === 
SSL_120 = ta.wma(2 * ta.wma(close, 120 / 2) - ta.wma(close, 120), math.round(math.sqrt(120))) 
SSL_120rangeEMA = ta.ema(ta.tr, 120) 
SSL_120high = SSL_120 + SSL_120rangeEMA * 0.2 
SSL_120low = SSL_120 - SSL_120rangeEMA * 0.2 

// Trend and colors  
SSL120color = close > SSL_120high ? color.new(color.aqua, 0) : close < SSL_120low ? color.new(#ff0062, 0) : color.new(color.gray, 0) 

// Drawings 
plotSSL120 = plot(show_SSL ? SSL_120 : na, color=color.new(SSL120color, 100), linewidth=1, title='SSL Baseline (120)') 
plotSSL120high = plot(show_SSL ? SSL_120high : na, color=color.new(SSL120color, 100), linewidth=1, title='SSL Highline (120)') 
plotSSL120low = plot(show_SSL ? SSL_120low : na, color=color.new(SSL120color, 100), linewidth=1, title='SSL Lowline (120)') 
fill(plotSSL120high, plotSSL120low, color=color.new(SSL120color, 80))

修改后的代码

//@version=5  

// === SSL 60 === 
show_SSL = input.bool(true, 'Show SSL') 
SSL = ta.wma(2 * ta.wma(close, 60 / 2) - ta.wma(close, 60), math.round(math.sqrt(60))) 
SSLrangeEMA = ta.ema(ta.tr, 60) 
SSLhigh = SSL + SSLrangeEMA * 0.2 
SSLlow = SSL - SSLrangeEMA * 0.2 

// 用var变量保存当前趋势颜色,初始为灰色
var color SSL_trend_color = color.new(color.gray, 0)
// 当收盘价突破上轨,更新趋势色为青色
if close > SSLhigh
    SSL_trend_color := color.new(color.aqua, 0)
// 当收盘价跌破下轨,更新趋势色为红色
if close < SSLlow
    SSL_trend_color := color.new(#ff0062, 0)
// 当收盘价回到区间内,切换为灰色
if close <= SSLhigh and close >= SSLlow
    SSL_trend_color := color.new(color.gray, 0)

// Drawings 
plotSSL = plot(show_SSL ? SSL : na, color=SSL_trend_color, linewidth=1, title='SSL Baseline') 
plotSSLhigh = plot(show_SSL ? SSLhigh : na, color=SSL_trend_color, linewidth=1, title='SSL Highline') 
plotSSLlow = plot(show_SSL ? SSLlow : na, color=SSL_trend_color, linewidth=1, title='SSL Lowline') 
fill(plotSSLhigh, plotSSLlow, color=color.new(SSL_trend_color, 90)) 

// === SSL 120 === 
SSL_120 = ta.wma(2 * ta.wma(close, 120 / 2) - ta.wma(close, 120), math.round(math.sqrt(120))) 
SSL_120rangeEMA = ta.ema(ta.tr, 120) 
SSL_120high = SSL_120 + SSL_120rangeEMA * 0.2 
SSL_120low = SSL_120 - SSL_120rangeEMA * 0.2 

// 用var变量保存120周期的趋势颜色,初始为灰色
var color SSL120_trend_color = color.new(color.gray, 0)
// 突破上轨更新为青色
if close > SSL_120high
    SSL120_trend_color := color.new(color.aqua, 0)
// 跌破下轨更新为红色
if close < SSL_120low
    SSL120_trend_color := color.new(#ff0062, 0)
// 回到区间内切换为灰色
if close <= SSL_120high and close >= SSL_120low
    SSL120_trend_color := color.new(color.gray, 0)

// Drawings 
plotSSL120 = plot(show_SSL ? SSL_120 : na, color=color.new(SSL120_trend_color, 100), linewidth=1, title='SSL Baseline (120)') 
plotSSL120high = plot(show_SSL ? SSL_120high : na, color=color.new(SSL120_trend_color, 100), linewidth=1, title='SSL Highline (120)') 
plotSSL120low = plot(show_SSL ? SSL_120low : na, color=color.new(SSL120_trend_color, 100), linewidth=1, title='SSL Lowline (120)') 
fill(plotSSL120high, plotSSL120low, color=color.new(SSL120_trend_color, 80))

关键修改说明

  • 使用var关键字定义趋势颜色变量,确保颜色状态在K线周期间持续保留
  • 拆分颜色判断逻辑为独立的if条件:
    1. 价格突破上轨时,设置趋势色为青色
    2. 价格跌破下轨时,设置趋势色为红色
    3. 价格回到SSL区间内时,切换为灰色
  • 原代码是实时根据当前收盘价判断颜色,修改后会保持趋势色直到价格回到区间内,完全匹配目标效果中“交叉期间灰色,确认趋势后显示对应颜色”的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 12:16:00