如何在十字路口绘制阶梯线?

How to plot a stepline at crossings?

我想绘制一条简单的趋势线(我觉得很简单)。当每日价格从上一季度高点上方移动然后下穿上一季度低点时,我想将上一季度高点绘制为一条水平线,直到每日价格上穿上一季度高点,然后我想要将上一季度的低点绘制为水平线等。我想将其绘制为阶梯线,但我得到的只是交叉点。

example of line to plot

//@version=3 
//By Juros
study(title="previous Quarter high & low", shorttitle="Prev Quar H-L", overlay=true,     precision=8)
PQH = input(true, title="Show Previous Quarter High & Low?")


//Quarterly
prevQuarterHigh = security(tickerid, '3M', high[1], lookahead=true)
prevQuarterLow = security(tickerid, '3M', low[1], lookahead=true)


plot(PQH and prevQuarterHigh ? prevQuarterHigh : na, title="Prev Quarter High", style=stepline, linewidth=1, color=blue,transp=0)
plot(PQH and prevQuarterLow ? prevQuarterLow : na, title="Prev Quarter Low", style=stepline,    linewidth=1, color=blue,transp=0)

做起来比较简单,但是你的代码无法猜到你要做什么;您需要在代码中实现显式逻辑。

and prevQuarterHigh 将始终为真,因为 prevQuarterHigh 始终不同于零,因此只要 PQH 为真,绘制的情节语句也为真。

//@version=3 
//By Juros
study(title="previous Quarter high & low", shorttitle="Prev Quar H-L", overlay=true,     precision=8)
PQH = input(true, title="Show Previous Quarter High & Low?")

//Quarterly
prevQuarterHigh = security(tickerid, '3M', high[1], lookahead=true)
prevQuarterLow = security(tickerid, '3M', low[1], lookahead=true)

upTrend = false
upTrend := (not upTrend[1] and crossover(close, prevQuarterHigh)) or (upTrend[1] and not crossunder(close, prevQuarterLow))

plot(PQH and not upTrend ? prevQuarterHigh : na, title="Prev Quarter High", style=linebr, linewidth=1, color=blue,transp=0)
plot(PQH and upTrend ? prevQuarterLow : na, title="Prev Quarter Low", style=linebr, linewidth=1, color=blue,transp=0)