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是自定义的高、低、开、闭变量,它的工作性能很好,只与卷筒颜色有关。
我正在尝试上面的代码,但是它没有返回颜色的值.我怎样才能做到这一点?
发布于 2020-09-12 15:33:25
正如您在refman for plotcandle()中看到的那样,与体的颜色(可以是一系列颜色(在每个条形图上都是如此)相反,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)

我在我的三角洲体积蜡烛[LucF]脚本中使用了同样的技术。
https://stackoverflow.com/questions/63852913
复制相似问题