我不明白为什么这个脚本找不到要绘制的内容。
这个想法是,只有当它满了一个条件时,才绘制最低的低点,也只有当它全了不同的条件时,才会绘制最高的高点。
这些条件分别是比最低低之前的反射镜长度的偏移大的回扫,同样对于最高高,比最高高之前的反射膜长度的偏移更大的回回。
//@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
。因此,newLL
和newHH
都是false
。因此,您永远不会更新validHigh
和validLow
,它们将保留为na
。所以,没有情节。