正如Dennis T在answer to Timezone convertion between tickers中提到的,
我们可以使用security()函数来获取另一个时区的时间。
现在我试着从两个不同的时区获取时间。
股票代码CL1!在纽约纳斯达克( Nymex )进行交易,交易时区为UTC-4。
股票代码ES1!在芝加哥的CME交易,交易时区为UTC-5。
我们可以从符号信息中看到

为了可视化这种时差,我创建了一个小脚本来绘制两个时区的时间。
//@version=4
study("Nymex-CME times", shorttitle="Time")
time_cl1 = security("CL1!", timeframe.period, time(timeframe.period), gaps=barmerge.gaps_on) // UTC-4 Nymex
time_es1 = security("ES1!", timeframe.period, time(timeframe.period), gaps=barmerge.gaps_on) // UTC-5 CME
plot(time_cl1, "time_cl1", color.blue)
plot(time_es1, "time_es1", color.red)由于两个股票行情都是在相隔1小时的时区交易的,所以我预计会看到1小时的时差。

然而,令我惊讶的是,这两个时代总是完全相同的。
我不明白这一点。
不是应该有1个小时的差异吗?
发布于 2020-06-08 06:09:58
time()是交易所时区中的时间,当通过security()查看时,还将取决于每个报价器的条形如何相互映射。此外,这两个市场的开盘/收盘时间都有一个小时的增量。
在这里,我们获取Unix时间,然后在图表的时区上下文中将其转换为小时:
//@version=4
study("Nymex-CME times", shorttitle="Time")
time_cl1 = security("CL1!", timeframe.period, timestamp(year, month, dayofmonth, hour, minute, second), gaps=barmerge.gaps_on) // UTC-4 Nymex
time_es1 = security("ES1!", timeframe.period, timestamp(year, month, dayofmonth, hour, minute, second), gaps=barmerge.gaps_on) // UTC-5 CME
hour_cl1 = hour(security("CL1!", timeframe.period, timestamp(year, month, dayofmonth, hour, minute, second), gaps=barmerge.gaps_on)) // UTC-4 Nymex
hour_es1 = hour(security("ES1!", timeframe.period, timestamp(year, month, dayofmonth, hour, minute, second), gaps=barmerge.gaps_on)) // UTC-5 CME
plot(time_cl1, "time_cl1", color.blue)
plot(time_es1, "time_es1", color.red)
plot(hour_cl1, "hour_cl1", color.blue)
plot(hour_es1, "hour_es1", color.red)

https://stackoverflow.com/questions/62249159
复制相似问题