首页 > 解决方案 > 仅在 rsi 超买/超卖时绘制蜡烛图

问题描述

我试图仅在 rsi 超买/超卖时绘制红色蜡烛,似乎我所做的一切都会收到错误消息。这就是我所拥有的,并且到目前为止已经尝试过

///RSI///

Length = input(title="rsi_L", type=input.integer, defval=14)'
Overbought = input(title="OB",defval=80)
Oversold = input(title="OS", defval=20)

rsi = rsi(close, Length)

plot(rsi, title="rsi", linewidth=1, color=color.orange, transp=0)
hline(Overbought, title="OB", linewidth=1, color=color.white, linestyle=hline.style_solid)
hline(Oversold, title="OS", linewidth=1, color=color.white, linestyle=hline.style_solid)


///Downbar///

downbar = close < open


///What I've Tried///

test1 = downbar and Overbought ? color.red : color.black
bgcolor(test1, transp=0)

test2 = if downbar >= Overbought ? color.red : color.black
bgcolor(test2, transp=0)

test3 = if downbar and Overbought ? color.red : color.black
bgcolor(test3, transp=0)

我确信这是一个明显的修复,但我不知道该怎么做。任何帮助表示赞赏!

标签: pine-script

解决方案


在第 8 行中,行尾有一个撇号,这将返回错误。

您不需要ifintest2test3,您正确地使用test1.

downbar使用布尔值(在脚本中)时不能使用比较运算符,Overbought也不是布尔值而是输入。

最后,bgcolor将为图表背景着色,而不是蜡烛,您想使用它barcolor

这个脚本应该做你想做的。

//@version=4
study("My Script")
///RSI///

Length = input(title="rsi_L", type=input.integer, defval=14)
Overbought = input(title="OB",defval=80)
Oversold = input(title="OS", defval=20)

rsi = rsi(close, Length)

plot(rsi, title="rsi", linewidth=1, color=color.orange, transp=0)
hline(Overbought, title="OB", linewidth=1, color=color.white, linestyle=hline.style_solid)
hline(Oversold, title="OS", linewidth=1, color=color.white, linestyle=hline.style_solid)

barcolor(close < open and rsi > Overbought ? #ff1100 : na)

推荐阅读