报告一个Tbquant的bug,FileAppend在多品种上运行时,会写两次。

特别注意,在图表上运行,不会出现此bug。要复现此BUG,需要在“策略研究”中把策略运行在多个品种上——按版块添加策略就行。


测试代码与输出结果已在附件中,解压即可。下面截图简要说明↓:


场景:把所有的工作区都关掉,把之前的文件清空或删除。


1、新建一个策略单元,不留其他一切。


2、随便选一个版块都行,我这里选了“期货次主力”。注意,一共73个合约。



3、那么最后的结果应该也只有73行。但,可能是由于TB的BUG,出现了146行,写了两次。1-73行写完后,又原封不动的把74-146行重写一次,明显是循环了两遍。


麻烦各位大神看看,能否复现?还是只有我一个人这样?

我明明反复试验了好多次,每次都把其他东西关得干干净净了。

日志为什么会写两次呢
报告一个bug,barcount
TBQuant在涉及到次连数据的多品种组合优化时,无法生成“同参数组合”的优化报告
FileAppend写入的文件无法打开 【疑似Bug】
tbquant3是tbquant的替代品吗?
如何进行同一品种的多周期多策略交易?
发现多图层的Bug
【bug报告】tbquant计算商品之间的价差经常出现0(错误值)
FileAppend
avgpriceO和FloatProfitO功能bug报告

补充一句,这种提问就很专业,所有需要的东西都清楚明白,复现过程也没有疑点,非常高效。👍

你是用在策略研究里,这个不是oninit驱动机制的问题,这个是策略研究机制的问题。

因为策略研究本身是带优化的。

正常策略单元启动运行,先申请数据,然后完整运行一遍。如果你要优化,需要重新跑一遍,这就两遍了。策略交易工作区就是按这个机制设计,所以你在策略交易里跑,oninit只写一遍。

而策略研究等于是把申请数据的一遍和优化的第二遍合并到一起了,点启动实际就是跑两遍,所以fileappend就会输出两遍。

实质上这个不会对单次运行的过程结果起到影响。你的计数器可以改成global类型然后再查看一下,如果是连续运行两次,那么第二次计数器应该是2。经测试结果都是1,说明不是连续运行两次,而是重新运行。


我来复现看看把