Я разработал новый индикатор разворота. Мне нужно, чтобы метка каждого пивота была справа и указывала временные рамки пивота (ежедневно, еженедельно, ежемесячно). Мне не нужно сохранять стержни предыдущих периодов.
Что не так с моим кодом? В течение 1 минуты метки располагаются хорошо, но линии не появляются. Если я загружаю больше данных в график и появляется начало дня, линия окончательно рисуется.
//@version=4
study(title="MBBL Pivot Points Standard", shorttitle="Pivot", overlay=true)
f_resInMinutes() =>
_resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1. / 60. :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 1440. :
timeframe.isweekly ? 10080. :
timeframe.ismonthly ? 43800. : na)
f_tfResInMinutes(_res) =>
security(syminfo.tickerid, _res, f_resInMinutes())
tf = input(title="Resolution", type=input.string, defval="D", options=["D", "W", "M"])
var tfLabel = tf == "D" ? "J" : tf == "W" ? "H" : "M"
var bool chartResolutionLessThanPivotResolution = (f_resInMinutes() < f_tfResInMinutes(tf))
prevClose = security(syminfo.tickerid, tf, close[1], lookahead=barmerge.lookahead_on)
prevOpen = security(syminfo.tickerid, tf, open[1], lookahead=barmerge.lookahead_on)
prevHigh = security(syminfo.tickerid, tf, high[1], lookahead=barmerge.lookahead_on)
prevLow = security(syminfo.tickerid, tf, low[1], lookahead=barmerge.lookahead_on)
pivotLevel = (prevHigh + prevLow + prevClose) / 3
s1Level = (2 * pivotLevel) - prevHigh
s2Level = pivotLevel - (prevHigh - prevLow)
s3Level = prevLow - (2 * (prevHigh - pivotLevel))
r1Level = (2 * pivotLevel) - prevLow
r2Level = pivotLevel + (prevHigh - prevLow)
r3Level = prevHigh + (2 * (pivotLevel - prevLow))
var line pivotLine = na
var line s1Line = na
var line s2Line = na
var line s3Line = na
var line r1Line = na
var line r2Line = na
var line r3Line = na
var label pivotLabel = na
var label s1Label = na
var label s2Label = na
var label s3Label = na
var label r1Label = na
var label r2Label = na
var label r3Label = na
if(chartResolutionLessThanPivotResolution)
if(pivotLevel != pivotLevel[1])
line.delete(pivotLine)
line.delete(s1Line)
line.delete(s2Line)
line.delete(s3Line)
line.delete(r1Line)
line.delete(r2Line)
line.delete(r3Line)
pivotLine := line.new(bar_index, pivotLevel, bar_index, pivotLevel, color=color.gray, style=line.style_dashed)
s1Line := line.new(bar_index, s1Level, bar_index, s1Level, color=color.green, style=line.style_dashed)
s2Line := line.new(bar_index, s2Level, bar_index, s2Level, color=color.green, style=line.style_dashed)
s3Line := line.new(bar_index, s3Level, bar_index, s3Level, color=color.green, style=line.style_dashed)
r1Line := line.new(bar_index, r1Level, bar_index, r1Level, color=color.red, style=line.style_dashed)
r2Line := line.new(bar_index, r2Level, bar_index, r2Level, color=color.red, style=line.style_dashed)
r3Line := line.new(bar_index, r3Level, bar_index, r3Level, color=color.red, style=line.style_dashed)
label.delete(pivotLabel)
label.delete(s1Label)
label.delete(s2Label)
label.delete(s3Label)
label.delete(r1Label)
label.delete(r2Label)
label.delete(r3Label)
pivotLabel := label.new(bar_index, pivotLevel, "P" + tfLabel, style=label.style_none, textcolor=color.gray)
s1Label := label.new(bar_index, s1Level, "S1" + tfLabel, style=label.style_none, textcolor=color.green)
s2Label := label.new(bar_index, s2Level, "S2" + tfLabel, style=label.style_none, textcolor=color.green)
s3Label := label.new(bar_index, s3Level, "S3" + tfLabel, style=label.style_none, textcolor=color.green)
r1Label := label.new(bar_index, r1Level, "R1" + tfLabel, style=label.style_none, textcolor=color.red)
r2Label := label.new(bar_index, r2Level, "R2" + tfLabel, style=label.style_none, textcolor=color.red)
r3Label := label.new(bar_index, r3Level, "R3" + tfLabel, style=label.style_none, textcolor=color.red)
if((pivotLevel == pivotLevel[1]) and (line.get_x2(pivotLine) != bar_index))
line.set_x2(pivotLine, bar_index)
line.set_x2(s1Line, bar_index)
line.set_x2(s2Line, bar_index)
line.set_x2(s3Line, bar_index)
line.set_x2(r1Line, bar_index)
line.set_x2(r2Line, bar_index)
line.set_x2(r3Line, bar_index)
label.set_x(pivotLabel, bar_index)
label.set_x(s1Label, bar_index)
label.set_x(s2Label, bar_index)
label.set_x(s3Label, bar_index)
label.set_x(r1Label, bar_index)
label.set_x(r2Label, bar_index)
label.set_x(r3Label, bar_index)