【发布时间】:2021-10-01 18:51:42
【问题描述】:
关于课间休息的问题。
我知道您可以通过在图表的时间尺度上激活会话休息时间来将会话休息时间添加到图表中。
然后,每当会话中断发生时,它就会在图表上显示为一条垂直线,表示新会话的开始。
该会话中断线可以在图表设置中格式化,在外观 > 会话中断下。
我正在尝试检测 Pine 脚本中的会话中断。
Pine Script 中是否有一种可靠的方法来检测新会话的开始?
尤其是期货合约。
通常,在会话停止和新会话开始之间会有一段时间(暂停)。
因此,我的想法是检查当前柱和上一个柱之间的时间差。
如果该时间差大于一根柱的“时间宽度”,则表示存在“暂停”。
因此,一个新的会话已经开始。
这种方法似乎在大多数情况下都有效。
但是,当我查看期货代码 NYMEX:NG1! 时,这种逻辑似乎并不总是正确的。
该行情上的某些日子似乎在会话中“暂停”。
我怀疑交易是在那些“暂停”时刻停止的。
通过比较27 Oct 2020(正常日)和28 Oct 2020(不规则日,会话中暂停)可以看到一个示例。
例如,我以 15 分钟间隔将图表置于 Exchange 时区。
绿色背景是我检测会话中断的代码。
在27 Oct 2020(正常日)
可以看到,每一个 bar 的开始时间都比前一个 bar 晚 15 分钟,这是正常的,也是意料之中的。
会话从18:00 开始,每 15 分钟进行一次:
18:00 - 18:15 - 18:30 - 18:45 - 19:00 - 19:15 - 19:30 - 19:45 - 20:00 - 20:15 - etc...
在28 Oct 2020 (不规则的一天,中间会暂停)
您可以看到不是每个条形图的开始时间都比前一个条形图晚 15 分钟。
会话也从18:00 开始,每 15 分钟进行一次,但不是始终如一:
18:00 - 18:15 - 18:30 - (gap) - 19:15 - (gap) - 20:45 - (gap) 21:00 - 21:15 - 21:30 - 21:45 - (gap) - 22:30 - (gap) - 23:00 - (gap) - 23:45 - 00:00 - (gap) - 00:45 - (gap) - 03:00 - (gap) - 03:30 - (gap) - 03:45 - 04:00 - 04:15 - (gap) - 05:15 - 05:30 - (gap) - 06:00 - 06:15 - 06:30 - 06:45 - 07:00 - 07:15 - etc... (normal from here on).
我用于检测会话中断的代码(上面屏幕截图中的绿色背景)
//@version=4
study("NewSession", overlay=true)
var bool newSession = na
var int bar_width_in_ms = timeframe.multiplier * 60 * 1000
newSession := change(time) > bar_width_in_ms
bgcolor(newSession ? color.green : na, 70)
总之,我的问题是:
Pine Script 中是否有任何可靠方法来检测新会话的开始?
尤其是期货合约。
【问题讨论】:
标签: pine-script