如图,我设置了个全局变量,然在符合条件的情况下,打印全局变量这个值(图1),在K线图也打印了这个值(图2),但是为什么打印后面的下单代码没执行呢?图三是策略报告,没有下单成功,按理说既然执行了print("buyFlag,"+Text(buyFlag)); 这个代码,那么后面一行Buy(0,open);这个代码应该也会执行的呀
和我前面回答的一个帖子一样,您也是没完全理解TB公式的运行机制。您认为应该下单的判断语句,第一次执行时,应该是会有交易信号的,恰恰是您产生信号后,设置了全局变量,让这句判断语句,在下一个Tick运行时,不满足条件了。所以,历史K线,信号应该还是会有的,实时就会消失。
主要是打印那行代码执行了,为啥到后面下单那行就不执行了呢🤣
我和贴主遇到类似的情况,当判断条件中都是序列值时,可以正常下单,回测图表上能看到交易标记。但当判断条件中加了一个全局变量时,即使buy/sell函数执行并返回true,回测图表中也看不到交易标记。看起来是个漏洞。
建议你再多看看开发手册和一些教学案例,把驱动机制和全局序列等容器的数据结构特点了解清楚了,再回头看这个问题。
特别要关注全局,序列这两种数据结构作为状态变量时在历史和实时bar上的区别