pine-scriptpine-script-v5

How can I set colors on this indicator? SSL


I need some help. I can't adjust the color settings in my indicator the way I want.The only thing I want to do is make it gray during the crossover and change color after the crossover. I am attaching photos of the current version (1), the version I want (2), and the code.

(1) My version:

(2) The version I want:

The code:

//@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))

I tried some var color codes on pinescript but it didn't fix my problem.


Solution

  • Compare SSLlow with SSL_120high, and SSLhigh with SSL_120low

    something like that:

    // === 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 
    
    // === 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  
    SSLcolor = SSLlow > SSL_120high ? color.new(color.aqua, 0) : SSLhigh < SSL_120low ? color.new(#ff0062, 0) : color.new(color.gray, 0) 
    SSL120color = SSLcolor
    
    
    // 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)) 
    
    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))
    

    test