如何在 pine 脚本 v4 中根据烛体颜色设置灯芯颜色?

How to set wick color based on candle body color in pine script v4?

palette = ( abs(open-close)/abs(high-low) > 0.5 )? open < close ? color.green : color.red : color.blue
plotcandle(choice =="Candle" ? value_open:na,value_high,value_low,value_close,color=palette,**wickcolor=(value_close > value_open ? color.green:color.red)**)

value_high、value_low、value_open、value_close 是自定义高、低、开盘、收盘变量,工作正常问题仅与 wickcolor 有关。

我正在尝试上面的代码,但它没有返回颜色值...我该如何实现?

正如您在 plotcandle() 的 refman 中看到的那样,与可以是 系列颜色 的正文颜色相反(因此在每个栏上有所不同),wickcolor 参数需要一个 输入颜色 ,这意味着必须在脚本执行之前知道它。

为了克服这个限制,我们需要对每种颜色使用单独的 plotcandle() 调用,并且您的脚本必须有空间容纳 8 个额外的情节,这会增加您脚本的总情节数(4 个情节 / plotcandle()呼叫)。

虽然不漂亮,但很管用:

//@version=4
study("")
choice = input("Candle")
value_open = open
value_high = high
value_low = low
value_close = close
palette = (abs(open - close) / abs(high - low) > 0.5 ) ? open < close ? color.green : color.red : color.blue

// Returns a value `_v` only if user wants to plot candle and `palette` matches the required color `_c`.
f_v(_c, _v) => choice == "Candle" and palette == _c ? _v : na

c_g = color.green
plotcandle(f_v(c_g, value_open), f_v(c_g, value_high), f_v(c_g, value_low), f_v(c_g, value_close), color = c_g, wickcolor = c_g)
c_r = color.red
plotcandle(f_v(c_r, value_open), f_v(c_r, value_high), f_v(c_r, value_low), f_v(c_r, value_close), color = c_r, wickcolor = c_r)
c_b = color.blue
plotcandle(f_v(c_b, value_open), f_v(c_b, value_high), f_v(c_b, value_low), f_v(c_b, value_close), color = c_b, wickcolor = c_b)

我在 Delta Volume Candles [LucF] 脚本中使用了相同的技术。