Попытка построить стрелку вверх один раз, когда цена находится выше облака. Эта построенная форма не должна повторяться до тех пор, пока у нас не появится другая цена выше облака.
Код пока:
//@version=5
indicator(title='My Ichimoku Cloud', shorttitle='Ichimoku', overlay=true)
conversionPeriods = input.int(9, minval=1, title='Conversion Line Periods')
basePeriods = input.int(26, minval=1, title='Base Line Periods')
laggingSpan2Periods = input.int(52, minval=1, title='Lagging Span 2 Periods')
displacement = input.int(26, minval=1, title='Displacement')
donchian(len) =>
math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
plot(conversionLine, color=color.new(#00e5ff, 0), title='Conversion Line')
plot(baseLine, color=color.new(color.orange, 0), title='Base Line')
plot(close, offset=-displacement + 1, color=color.new(#459915, 0), title='Lagging Span', display=display.none)
p1 = plot(leadLine1, offset=displacement - 1, color=color.new(color.green, 0), title='Lead 1', display=display.none)
p2 = plot(leadLine2, offset=displacement - 1, color=color.new(color.red, 0), title='Lead 2', display=display.none)
fill(p1, p2, color=leadLine1 > leadLine2 ? color.new(color.green, 90) : color.new(color.red, 90))
topOfCloudLine = float(na)
priceAboveCloud = bool(na)
if leadLine1 > leadLine2
topOfCloudLine := leadLine1
else
if leadLine1 < leadLine2
topOfCloudLine := leadLine2
if close > topOfCloudLine
priceAboveCloud := true
plotshape(priceAboveCloud, style=shape.arrowup, location=location.abovebar, color=color.new(color.green, 0), size=size.tiny, offset = displacement + 1)
Текущий выход:
Вы ищете функции ta.crossover()
и ta.crossunder()
. Те вернутся true
только после того, как будет крест. Итак, вы можете сделать что-то вроде этого:
price_crossed_top = ta.crossover(close, topOfCloudLine)
А затем используйте price_crossed_top
в качестве условия, чтобы нарисовать свою форму.
Я изменил строку кода на topOfCloudLine[displacement], и она отлично работает!
сложная часть - логика смещения.