图表模式下使用Buy下单时图表上的信号与绑定账号下单不符,且出现成交价=0的情况

看了一些关于图表交易,A函数,信号闪烁的视频后动手测试了下,运行环境为实时行情,图表交易模式下打开了自动交易,绑定了TB期货模拟账号

第一次测试, 代码如下:

Vars


    Global Integer canBuy(0); //故意使用Global,确保整个运行期间只下单一次


    

     
Events
    OnInit()
    {
        PrintClear();
    }

    OnBar(ArrayRef<Integer> indexs)
    {

        if(QuoteStatus == Enum_QuoteStatus_RealTime and BarStatus == 2)
        {
            
            Print(Text(canBuy));
            if(canBuy <> 1)
            {
                Buy(1,High); //最初买入价参数用的是0, 后看到成交价=0为了排除,改为High
                canBuy = 1;
                Print(Text(canBuy));
                
            }
            Print("-------------------------");
            
        }
        
    }

预期结果:

1. 可能会提示信号闪烁

2. 模拟账号会下单成功

实际结果:(参看下图)

1. 确实提示了信号闪烁,图表上也没有标注交易成功的箭头

2. 绑定的模拟账号下单成功了,但是成交价为0 ,申报失败


第二次测试,修改了下单条件,连续下单3次,每次买入一手, 代码如下:

Vars


    Global Integer canBuy(0);


Events
    OnInit()
    {
        PrintClear();
    }

    OnBar(ArrayRef<Integer> indexs)
    {
    

        if(QuoteStatus == Enum_QuoteStatus_RealTime and BarStatus == 2)
        {
    
            Print(Text(canBuy));
    
            if(canBuy < 3)
            {
                Buy(1, High);
                canBuy = canBuy + 1;
                Print(Text(canBuy));
    
            }
    
            Print("-------------------------");
    
        }
    }

预期结果:

1.  提示信号闪烁,Bar Close时可能会在图表上标记

2.  绑定账号在同一根Bar上只下单一次

实际额结果:

1. 提示了信号闪烁,但没有在图表上标记

2. 只下单了一次,但是申报失败,成交价=0


我的问题:

#1 使用Buy的时候,内部判断信号闪烁的标准是什么,是否需要条件信号连续几个tick都持续存在?

#2 为什么绑定的账号会出现成交价=0的情况?

如何让手工下单在图表上出现开仓信号?
如何让手工下单在图表上出现开仓信号?
如何让手工下单在图表上出现开仓信号?
如何让手工下单在图表上出现开仓信号?
【下单】- 使用Buy函数下单后Portfolio信息和MarketPosition更新延迟
sellshort和buy被触发,但图表上只出现了sell或buytocover信号
出现闪烁后图表信号持仓如何与账户持仓同步
是否支持自己编写模式工具并在下单时使用?
用 Buy(1, 0) 下单后, MarketPosition的值还是0
图表一直重复下单

1 信号闪烁的判断标准就是,当信号出现以后,当前bar后续所有tick驱动,这个信号都必须保证出现,并且手数和价格参数不能改变。否则就会发出信号闪烁警报。

2 成交价为0不是很正常吗?成交不了所以显示为0,不然应该显示什么?未成交单不是应该看委托价吗?

明白了,谢谢了