多数据层 Onbarclose事件反馈的 indexs数组

老师好!

       我的回测程序订阅了多个数据,包含10分钟和日线两种,奇怪的是,豆油和焦炭的日线数据,在onbarclose这个域中出现在每天的凌晨两点20分,正常应该是下午三点(十分钟K线就是1450),请问这是何故呢?

       另外,IF888这个股指合约onbarclose出现在9点20分,这个我好理解是开盘的第一根10分钟K线。为啥不同品种都不一样呢?盼复,谢谢!

OnBarClose(ArrayRef<Integer> indexs)设置驱动图层问题
OnBarClose事件域
onbarclose和onbaropen功能bug反馈
经验: 2个数据层的数据没有对齐的情况一下偶然的情况下会导致策略卡死
数组实现多周期数据订阅
全新事件收盘价触发onbarclose即将上线
多周期在OnBarClose内的执行问题
OnBarClose(ArrayRef<Integer> indexs)//中午,下午收盘前几秒有信号就执行吗?
数组的数据计算
如果只复制了第3层的,那么会自动复制第2层的参数优化设置?

好的,谢谢

这个问题搞清楚了,原来TB的OnbarClose事件域是通过Open事件来触发的,在下一个K线出现Open之前触发上一K线的Onbarclose域,这样就好理解了,对于IF股指合约,15:00最后一根30分k线真实的onbarclose触发事件是在早上9:30分开盘前一瞬间。对于有夜盘交易的品种,就是21:00瞬间触发15:00的那根K线onbarclose。

如果没有settrigger确实是这样

具体建议仔细学习一下onbarclose的视频教程

settrigger无法在回测环境运行吧,只能是实盘环境。

是的

但是你的问题不就是实时运行的时候出现的吗?历史回测不会有这个问题

有劳 老师 onbarclose 的视频教程链接发一个

建议描述一个完整的运行环境,否则无法复现确定问题

感谢答复

data-href=

并没有发现有问题

data-href=

data-href=

明天早上看一下输出的结果

你这个问题需要几天跟踪研究一下

如果需要对多品种的日线指标进行横向排序,那么不同品种之间的日线收盘时序不一样就会给策略造成巨大困扰,不知这个如何解决。目前出现的情况是,不同的品种日线onbarclose触发的时间不一样。大部分是1500,有些是和白银晚上的30分K线一起触发。

OnBarClose(ArrayRef<Integer> indexs)

{

    integer j;

    Print(TextArray(indexs));

    range[j=0:datacount-1]

    {

      if(arrayfind(indexs,j))

      {

       Print(\"日期:\"+Text(data[j].date));

         Print(\"时间:\"+Text(data[j].time));

         Print(data[j].SymbolName);

       }

    }

   }

我刚才又做了一个简单的试验程序,采用的是30分钟和日线叠加的数据层,前35层是30分钟,后35层是日线,程序运行Print出来的记录很诡异,那就是苹果鸡蛋和生猪的日线onbarclose出现在凌晨两点,正常应该是1430(30分钟对齐的时间),其他品种都是1430触发了日线onbarclose。我上面有用图层过滤的代码。在1430(其实是15:00)那个时间点onbarclose返回的indexs刚好缺了苹果鸡蛋和生猪的日线图层号,很奇怪。后面在凌晨两次出现,诡异吧?

你应该也叠加了贵金属吧,是贵金属行情驱动的,驱动以后,你没做图层筛选,然后豆油焦炭也执行了相关代码。

你可以检查indexs参数,根据里面提示的驱动图层执行对应图层的代码