信号闪烁是在实盘时一个bar中一系列的tick数据触发onbar运行,不同的tick数据和可能的全局变量导致交易信号的产生或不产生?
在模拟和实盘发生信号闪烁时(这个闪烁的信号是策略需要的),是否可以用Natural变量记录当前bar上是否产生信号,如果产生信号,记录信号(开平操作/手/价),然后onbar中下次tick(可能信号消失)时,如果发现当前bar有保存的交易信号,直接重放交易信号。这样是否不会闪烁了?但是这样是否会导致多次重复下单交易?如果一个bar中有不闪烁的交易,说明在多次tick触发下交易信号一直存在,也就是多次触发了交易?
你说的重放交易信号是什么意思
没特别明白你表达的内容
闪烁大概率就是由于tick变动,导致最新BAR上的条件一会满足一会不满足
感谢这么晚回复!我的意思就是,比如:这个bar中的一个tick通过判单产生了一个buy信号,我在发出buy委托后,记录下来这个委托,然后等下一个tick来了,就完全不做判断了,直接执行记录下来的buy委托(包括手数和价格)。这样能否消除最后个tick数据可能不能产生buy信号而导致的闪烁?
还有,一个bar中如果逻辑判断能产生交易信号且不闪烁,那就是这个bar中所有的后续的tick都能产生同样的交易信号?那是否会在一个bar中不同时序的tick,发生了多次实际交易?还是只算第一次信号的交易?还是算最后一次信号的交易?
请求解答。谢谢!!!!
请求解答,谢谢!!!!!!!
这样挺多此一举的
首先,用一些逻辑技巧可以解决信号闪烁的问题。核心思路就是固定住信号,让已经发生的事情永远发生。比如,向上突破产生的交易,可以用high大于条件值来判断,向下突破产生的交易可以用low小于条件值判断。因为high是单向变化的,一旦盘中向上涨破了条件点,那么就不会再变小,所以当根bar中,这样判断一旦成立就不会在信号消失。向下突破同理。
第二,如果上面的办法仍然无法处理信号闪烁问题,那么只能用a函数报单配合全局变量处理。这个就需要对tb的公式运行机制、对驱动机制、全局变量的运作机制等等有非常深入的了解才能完全驾驭,就目前来看,我认为您离这个水平差得还比较远。这种a函数报单的方法优点就是非常自由,想怎么写就能怎么写。缺点就是像上面说得,难度很大且代码编写起来很繁琐。
如果使用buy sell这些图表交易命令,同一根bar上的同一个信号反复执行,只会在第一次执行的时候报单,后面就算消失再出现也不会报单。
如果使用a_sendorder和其他类似命令报单,那么执行一次就报一次单
非常感谢kyover,tb的公式运行机制、对驱动机制、全局变量的运作机制等等有非常深入的了解,这些方面有没有文档说明帮助了解?我的这个闪烁我知道,就是全局变量导致。用之上说的笨办法目前倒是不闪烁了,但是这种方式感觉不放心
果然,非典型行为,虽然不闪烁了,但是模拟实盘上委托成交记录都不对了。。。
不闪烁了委托记录和测试报告还对不上?这我就听不懂了
信号闪烁的一个典型特征一般就是委托记录和测试报告对不上