Я пробовал это разными способами, и этот метод с line.new и line.get - самый близкий, который я получил. Если я могу настроить этот метод, это здорово, или если есть совершенно другой способ, это тоже хорошо. Спасибо.
Цель состоит в том, чтобы сравнить цены закрытия последних 200 баров с самым последним закрытием (не бар в реальном времени, а самый последний исторический бар). Я хочу выделить любые бары, закрытие которых соответствует последнему закрытию. На прикрепленном рисунке вы можете видеть, что полоса в реальном времени помечена как b / c, ее закрытие в настоящее время соответствует критериям (но мне это не важно), но есть несколько других полос, которые следует пометить (см. Стрелки Я рисовал вручную), потому что они имеют равные закрытия до самого последнего закрытия.
study("t1t2_020920", overlay=true)
CloseLineFunc() =>
if (barstate.islast)
closeline = line.new(bar_index[200],close[1],bar_index[1],close[1])
closeline
CloseLineFunc()
a=CloseLineFunc()
x1 = line.get_x1(a) // Returns UNIX time or bar index (depending on the last xloc value set) of the first point of the line
x2 = line.get_x2(a) // Returns UNIX time or bar index (depending on the last xloc value set) of the second point of the line
y1 = line.get_y1(a) // Returns price of the first point of the line
y2 = line.get_y2(a) // Returns price of the second point of the line
// plot(x1)
// plot(x2)
// plot(y1)
// plot(y2)
check = close == y2
plotchar(check, char='*', color=color.green, size=size.normal)
``
Я также думал, что это будет работать, но Я получаю результаты. Сложная задача - выяснить, как использовать значение самой последней цены закрытия, не включая бар в реальном времени, в расчетах слева от графика, а затем пересчитывать исследование таким образом каждый раз, когда печатается новый бар.
study("My Script", overlay=true)
lineprice = valuewhen(barstate.islast,close[1],0)
plot(lineprice)
check = sma(close,1) == lineprice
plotchar(check, char='*', color=color.green, size=size.normal)``