如何获取夜盘结束时间
手动叠加了几个周期的图表,想获得每个图表的日总交易时间,主要是为了区分日/夜盘 以及 夜盘结束时间,用以计算指标。我想到用 21点及23点 后是否有交易来区分,在社区里看到帖子里提到用 GetSession* 这类函数,看了开发手册,似乎都是针对订阅行情的。请问手动添加行情的,要用什么函数解决?或者用哪些办法曲线救国?可以只在 OnInit 里实现、无需在其他事件域里处理么?
手动叠加了几个周期的图表,想获得每个图表的日总交易时间,主要是为了区分日/夜盘 以及 夜盘结束时间,用以计算指标。我想到用 21点及23点 后是否有交易来区分,在社区里看到帖子里提到用 GetSession* 这类函数,看了开发手册,似乎都是针对订阅行情的。请问手动添加行情的,要用什么函数解决?或者用哪些办法曲线救国?可以只在 OnInit 里实现、无需在其他事件域里处理么?
手动添加行情也是可以用GetSession* 的吧在代码里 对应的range里处理或者全部数据源一起处理 Range[0:DataSourceSize]或者 也许我没读懂题目
回复:实际上,我只用一次已加载图表的夜盘结束时间,后续的所有事件域里都不再需要,所以我想在 OnInit 里解决了。开发手册里的GetSession*,是订阅行情,同时指定时间,然后获取相应的信息。应该说,我不知道如何在 OnInit 获得手动添加的行情的信息?如果说我直接在代码里指定了一个时间,但我在调试时,又需要不断的改时间代码,这就显得很机械了…
回复:可以在OnInit里,用Range对所有图层调用GetSessionXXXXEvents OnInit() { Integer i; Range[i=0:DataCount-1] { Integer j; For j = 0 To GetSessionCount() - 1 { Numeric ret = GetSessionEndTime(j); Print("Data[" + Text(i) + "].GetSessionEndTime("+ Text(j) +") = " + Text(ret)); } } }
回复:假如叠加RB和AG,运行结果是:
回复:谢谢老师,我试试
回复:老师,有一个情况是这样的:盘中读取到的结束时间,是距离当时最近的一个时点,比如此时是 0:21 ,但白银品种读取到的结束时间是23:00;而我在盘后调试时,它可以正确读取到2:30。对于这个情况,软件是否可以做个优化:类似交易时段、交易结束时间这类交易所几乎不会更改的信息,软件直接读取品种属性即可,而非目前根据盘中/盘后的情况来判定
回复:上面提到的是在OnReady里写的代码。同样的代码,在OnInit里写,则是读到15:00。不知道我哪里做错了吗?