首页 > 解决方案 > 日期时间系列问题 PinScript

问题描述

我正在努力用“前一个交易日”的高/低枢轴点填充一个数组,但我在时间序列方面遇到了问题(下面的第二部分!)。我不确定是 PineScript 的错误还是我对时间序列函数如何工作的误解!请帮助,非常组织细节。

调用当前交易日,然后选择常规时段(这部分没有问题)

//------------------ Selected Day of Trading
//Start Day
Start_Period= timestamp(syminfo.timezone, 2020, 12, 09, 00, 00, 00)
//End Day
End_Period  = timestamp(syminfo.timezone, 2020, 12, 09, 23, 59, 59)

//------------------ Filtring Session
// Regular Session
t_reg   = time("1440", session.regular)

该问题仅在此编码框中。

Pine 脚本无法识别结果Change_Time

// Detect the change of time between selected day trading and most recent day trading (t-t[1])
Change_Time = security(syminfo.tickerid, "1440", change(time)) 
FunYesterday()=>
    if time >= Start_Period-Change_Time and time <= End_Period-Change_Time and t_reg
        [pivothigh(close, 3, 2), pivotlow(close, 3, 2)]

但是,如果我替换的security功能Change_time= 60*60*24*1000会正常工作!!,但由于周末和其他假期的时间限制,我尽量避免使用这种方法。


最后一节找到 Pivot 并创建数组(这部分没有问题)

//------------------ Pivot point at 15 min. 
[ph2, pl2] = security(syminfo.tickerid, "15", FunYesterday(), lookahead = barmerge.lookahead_off)
ph2_filter= ph2 == ph2[1]?na:ph2
pl2_filter= pl2 == pl2[1]?na:pl2

//------------------ Array Part
var a = array.new_float()
if (not na(ph2_filter))
    array.push(a,ph2_filter)
else if (not na(pl2_filter))
    array.push(a,pl2_filter)


if barstate.islast and array.size(a)>0
        
    y=label.new(bar_index, close, "Initial\na: " + tostring(a))
    label.delete(y[1])

如果您有任何其他想法仅导入最近交易日的数据,我非常愿意!谢谢

标签: datetimepine-scriptalgorithmic-trading

解决方案


推荐阅读