TBQ画图函数在OnBar函数内频繁被执行会影响交易逻辑运行效率吗?
问题1:在OnBar函数里,既存在开平仓逻辑,还有各种指标公式的计算和显示逻辑,甚至把K线图也重新用绘图函数绘制了,这样做会影响策略公式运行时候的交易效率吗?是不是每个Tick新号进来都会执行画图逻辑?还是说TBQ能智能的在 没有打开K线 的时候不去执行画图操作?我的策略是低频策略,可能一天一个品种就交易0-2次,在这种情况下应该可以忽略上述的代码写法吧?推荐这样写吗?问题2:我把所有参数都用Series<Type>包裹了,大概有60个参数,如果长时间不关机运行,Series的参数不断增长会导致内存溢出或者其他数值溢出问题吗?
编写、测试的时候 画图有助于调试完成后注销相应不必要的作图函数Series定义时候可以设置长度从实际使用来看你说的两种问题其实没有必要过度忧虑TBQ/TBQ3效率挺高的我的策略是设置了夜盘策略重启且半个月重启TBQ/TBQ3
回复:虽然TBQ/TBQ3的序列变量很好用各数据源逐bar都会分配内存如果你确实担忧效率一个方案是必须使用序列变量的话设置仅少量冗余必要的长度第二是多用全局 少用序列我个人的习惯1、除了需要回溯的值其他一律用全局或普通变量2、且序列变量都设置了长度3、每日夜盘前重启策略 释放一次内存4、半个月重启TBQ 释放一次内存
回复:我现在所有不使用TBQ自带的函数的变量都(尽可能)不用序列变量,即使需要回溯也可以用数组代替。
回复:回溯用数组消耗差不多的实际上不必太担心效率
回复:谢谢回答,你们好专业啊!👍
当然会咯,事实上一个交易模型可以不用画图的,画图只是画给人看的,机器不画图又不影响它的模型运行
回复:谢谢回答,那我可以搞一个只用于交易的不画图版本,再弄一个工作区搞个有画图的用于对指标信号有效性的分析和复盘。
回复:一般来说,策略分析开发完成后,就会把所有用于调试的代码注释掉了
回复:知道了,谢谢回答。