如果num_historical_candles设置高(例如,对于每日HTF,> 10,> 6-7对于4H htf等),则绘制的线并不能从当前的HTF蜡烛开始,然后向后移动。取而代之的是,它们似乎被几个酒吧所抵消(例如,每日htf约10天)。
考虑通过请求返回的系列。 阵列以进行更好的控制,但我不确定如何进行。
//@version=6
indicator("HTF Historical Levels", overlay=true)
num_historical_candles = input.int(10, "Number of Historical Candles", minval=1)
htf_tf = input.timeframe("Daily", "HTF")
[htf_open, htf_time] = request.security(syminfo.tickerid, htf_tf, [open, time])
var int last_unique_time = na
var int plotted_count = 0
if barstate.islast
for i = 0 to num_historical_candles
if not na(htf_time[i]) and (na(last_unique_time) or htf_time[i] != last_unique_time)
last_unique_time := htf_time[i]
plotted_count := plotted_count + 1
line.new(x1=htf_time[i], y1=htf_open[i], x2=htf_time[i] + 1, y2=htf_open[i], color=color.green, width=1)
if plotted_count >= num_historical_candles
break
对于num_historical_candles的小值(例如4H或≤10的≤6 对于每日),线从当前的HTF蜡烛正常启动, 向后走 对于更高的值,行被偏移,就好像请求。 数据从与预期的不同点开始。
问题:
是什么导致这种偏移?是由于要求如何。安全性将数据与当前的LTF保持一致,还是其他东西?
任何帮助或指导将不胜感激!
request.security
var float dailyOpen = na
var line openLine = na
var int x1Line = na
period = dayofmonth
if period != period[1]
dailyOpen := open
x1Line := bar_index
openLine := line.new(x1Line , dailyOpen, bar_index, dailyOpen, color = color.gray)
else
line.set_xy1(openLine, x1Line, dailyOpen)
line.set_xy2(openLine, bar_index, dailyOpen)