为什么控制台输出的信息是一个信号,软件还是判定信号闪烁,而且实盘不发委托

不知道谁设的D J还成了敏感字了,不能直接复制到这代码请看附件

实盘有信号不发单
为什么控制台会重复输出最近7个bar的信息
套利交易1腿有信号不发委托
FileAppend输出的数据显示满足开仓条件,为何还是信号闪烁?
回测无信号闪烁,实盘中出现信号问题。
图表有开仓信号,但系统判定信号闪烁,未进行开仓如何解决,我确认代码是没有闪烁的问题
实盘消息提示信号闪烁
信号闪烁的原因是vol还是adx
关于信号闪烁
信号闪烁是怎么比较出来的?图表交易中对历史K线上的信号也存在信号闪烁是怎么回事?

https://www.bilibili.com/video/BV1MN4y1d7Yg/?spm_id_from=333.999.0.0

我觉得你与其浪费时间在这里发帖,还不如1.5倍速把状态变量,计数器,甚至前面的数据类型结构的视频看一遍,就没有疑问了。

而且global不是全局变量吗,是在整个程序里面都会一直保持的量,除了我们自己去改变他的数值他是不会变的这样的变量怎么会闪烁呢

历史的bar上onbar只驱动执行一次,当然不会变化

但是实时bar上,是每tick执行一次的。

一分钟的k线,会执行120次。

第一次满足了,第二次不满足,那不就消失了么

先把零基础学习好,把这种基础常识确认了再来问问题。


这次输出截图,

你看他不是一直是一个信号吗

买卖信号为0表示这个BAR没有买卖信号,为1是表示有一个开多仓,为-1表示有一个开空仓,你看这信号不是一直没变吗,怎么就闪烁了呢


应为duochang是用来记录多仓是不是已经开仓的,如果开仓了就不能再开仓了,不然实盘会一直开仓啊,这样就能保证实盘的时候不会多次开仓并且一个bar中只开仓一次,这样就没有闪烁啊,如果多次开仓那样才会闪烁啊,闪烁不就是多次开仓吗


你对机制的理解,听上去很正确,很多TB初学者也大多会这么理解,这个很正常。但是因为TB公式运行有一个很特殊的点,那就是历史回测和实盘交易是合二为一的。也就是策略既要考虑实盘也要考虑历史回测。那你试想一下,实盘时一根K线是不是每次数据更新了,都得处理,如果上一个tick按照策略应该有个开仓信号,下个tick判断,就不出信号了,那这么一直运行,这根K线上信号就没有了,当这根K线走完了,成为历史了,信号不也就没有了,这跟实际结果肯定就不一致了。当然这个整套机制,这个只是其中一小部分,每个处理都有道理的。这个就需要慢慢去体会了

你用global类型的容器来作为信号的判断条件?这样写不是本来就很容易信号闪烁的吗

不会啊,这个全局容器也加到条件里了,每个BAR只改一次,只有到OnBarClose(ArrayRef<Integer> indexs)

{

//用户业务逻辑

buysellshs=0;

jscs=0;

ksjs=0;

sellshs=0;

}才会清零,我实盘试确实是每个BAR只出一个信号,控制台可的到到只有一个位号,但是软件他还是判定说有闪烁所以我就行迷惑,不信你可以用这个试一下实盘的输出你看一下就知道了

代码没对齐,还有很多不知道意义的代码,分析问题和整理格式的时候就浪费了很多时间。

但是总体来说,还是global类型的问题

duochang这个变量肯定是闪烁的,你自己输出看看吧,你上面那个我回复我看不懂什么意思,这个global的duochang上一tick满足,执行完buy你立马就改掉值,那下个tick不就不满足条件信号消失了吗?这不是非常显而易见的吗?

如果你对不同类型的数据结构机制不是那么清楚,建议把零基础课程里关于tb特色数据结构机制的部分先学习一下