TBQ画图函数在OnBar函数内频繁被执行会影响交易逻辑运行效率吗?

问题1:

在OnBar函数里,既存在开平仓逻辑,还有各种指标公式的计算和显示逻辑,甚至把K线图也重新用绘图函数绘制了,这样做会影响策略公式运行时候的交易效率吗?是不是每个Tick新号进来都会执行画图逻辑?还是说TBQ能智能的在 没有打开K线 的时候不去执行画图操作?

我的策略是低频策略,可能一天一个品种就交易0-2次,在这种情况下应该可以忽略上述的代码写法吧?推荐这样写吗?


问题2:

我把所有参数都用Series<Type>包裹了,大概有60个参数,如果长时间不关机运行,Series的参数不断增长会导致内存溢出或者其他数值溢出问题吗?

函数效率的问题会不会影响太多?
TBQ有锁定策略单元运行的代码函数吗?
策略会相互影响吗?
函数可以用onbar吗
图表交易的信号会影响策略里面的全局变量吗
q_sendorder函数会被交易助手影响吗,例如交易助手的几秒不成撤单重挂。
调用自建函数速度会更慢吗?
OnBar函数在策略回测时的执行机制也是每个价格波动吗
不会导致开平仓的信号闪烁会影响回测的净值走势吗?
多图层onbar运行时,为何部分品种会多运行一次

编写、测试的时候 画图有助于调试

完成后注销相应不必要的作图函数


Series定义时候

可以设置长度


从实际使用来看

你说的两种问题

其实没有必要过度忧虑

TBQ/TBQ3效率挺高的


我的策略是设置了夜盘策略重启

且半个月重启TBQ/TBQ3

虽然TBQ/TBQ3的序列变量很好用

各数据源逐bar都会分配内存


如果你确实担忧效率

一个方案是必须使用序列变量的话

设置仅少量冗余必要的长度

第二是多用全局 少用序列


我个人的习惯

1、除了需要回溯的值

其他一律用全局或普通变量

2、且序列变量都设置了长度

3、每日夜盘前重启策略 释放一次内存

4、半个月重启TBQ 释放一次内存

我现在所有不使用TBQ自带的函数的变量都(尽可能)不用序列变量,即使需要回溯也可以用数组代替。

回溯用数组消耗差不多的


实际上不必太担心效率


谢谢回答,你们好专业啊!👍

当然会咯,事实上一个交易模型可以不用画图的,画图只是画给人看的,机器不画图又不影响它的模型运行

谢谢回答,那我可以搞一个只用于交易的不画图版本,再弄一个工作区搞个有画图的用于对指标信号有效性的分析和复盘。

一般来说,策略分析开发完成后,就会把所有用于调试的代码注释掉了

知道了,谢谢回答。