关于TBquant使用多图层时OnBarOpen调用次数不稳定的问题
2022-08-02 15:05

我之前已发过一个贴说多图层时TB的OnBarOpen存在重复调用的现象,现在我或许要调整一下说法,应该改为不稳定,因为我完全不清楚调用多少次才是对的,按客服的说法就是多少个图层调用多少次,那么按这个说法如何解释下图里蓝色框里两个图层只调用了一次的现象呢?TB是不是应该要检查一下有没有出现某些bug呢?

另外,我附赠输出以上日志的代码给老师:

Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
    OnInit()
    {
        
    }

    //在新bar的第一次执行之前调用一次,参数为新bar的图层数组
    OnBarOpen(ArrayRef<Integer> indexs)
    {
        If(BarStatus == 2)
        {
            FileAppend("E://输出数据//test1//"+FormulaName+"_"+symbolname+"_"+text(date)+".txt", "This is OnBarOpen1" );
            FileAppend("E://输出数据//test1//"+FormulaName+"_"+symbolname+"_"+text(date)+".txt", "bartime=" + Text(SystemDateTime));
            FileAppend("E://输出数据//test1//"+FormulaName+"_"+symbolname+"_"+text(date)+".txt", "data0.High=" + Text(Data0.High));
            FileAppend("E://输出数据//test1//"+FormulaName+"_"+symbolname+"_"+text(date)+".txt", "data1.High=" + Text(Data1.High));    
            FileAppend("E://输出数据//test1//"+FormulaName+"_"+symbolname+"_"+text(date)+".txt", "            " );    
        }
    }

我就是用这段代码运行两个图层的策略单元,策略单元如下图 ,然后发现了以上问题,请老师指教,谢谢!

评论区
czs763268157

不太理解,能给个实际案例我吗?例如,如何调整代码,把上图蓝色框或红色框的其中一种情况完全消除呢?不然,程序执行时总会出错

2022-08-03 15:53
czs763268157

老师,我之前也回复过您了,这里再回复一次。

既然您说同一个合约的数据是同时来的,只运行一次,那么您如何解释上图输出日志里--红色框的输出结果呢?它们明显运行了两次,这不就与你说的不一样了吗?

2022-08-03 14:22
顶部