在一个条件下最低,在另一个条件上最高



我不明白为什么这个脚本找不到要绘制的内容。

这个想法是,只有当它满了一个条件时,才绘制最低的低点,也只有当它全了不同的条件时,才会绘制最高的高点。

这些条件分别是比最低低之前的反射镜长度的偏移大的回扫,同样对于最高高,比最高高之前的反射膜长度的偏移更大的回回。

//@version=5
indicator(title="Highest Low Since Lowest Low", shorttitle='HLsLL', overlay=true)
length = input.int(defval = 500, title = "length")
var float lowestLow = na 
lowestLow := ta.lowest(length)
var float highestHigh = na
highestHigh := ta.highest(length)
twiceLengthLL = 2 * ta.barssince(low == lowestLow)
twiceLengthHH = 2 * ta.barssince(high == highestHigh)
preLow = low[twiceLengthLL]
preHigh = high[twiceLengthHH]
bool retraceLL = low - lowestLow >= preLow - lowestLow
bool retraceHH =  highestHigh - high >= highestHigh - preHigh
bool newLL = ta.barssince(lowestLow) < ta.barssince(highestHigh) 
bool newHH  = ta.barssince(lowestLow) > ta.barssince(highestHigh) 
var float validLow = na
if retraceLL and newLL
validLow := math.min(validLow, low)
var float validHigh = na
if retraceHH and newHH
validHigh := math.max(validHigh, high)  
colorVH = color.new(color.silver, 0)
plotVH = plot(series=validHigh, title='Highest High', color=colorVH, linewidth=1, style=plot.style_line, editable=true)
colorVL = color.new(color.yellow, 0)
plotVL = plot(series=validLow, title='Valid Low', color=colorVL, linewidth=1, style=plot.style_line, editable=true)
// end of script

以下代码没有任何意义。

bool newLL = ta.barssince(lowestLow) < ta.barssince(highestHigh) 
bool newHH  = ta.barssince(lowestLow) > ta.barssince(highestHigh)

ta.barssince()需要一个条件作为参数,但您只是传递了一个类型为series的变量。

lowestLow := ta.lowest(length)
highestHigh := ta.highest(length)

由于您没有传递条件,所以ta.barssince(lowestLow)ta.barssince(highestHigh)都返回0。因此,newLLnewHH都是false。因此,您永远不会更新validHighvalidLow,它们将保留为na。所以,没有情节。

最新更新