您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

请教老师关于A_SENDORDER()问题 - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 遇到反手时,我想先平仓等成交后在开新仓,以反手做空为例:
    反手开空条件成立:
                 if(A_buyposition()>0){
                    A_SendOrder(enum_sell,enum_exit,A_buyposition(),Q_AskPrice-20);
                    While(A_BuyPosition()>0 || kkk<=0){
                            if(CurrentTime()-A_ordertime(0)>=0.000005){
                                    kkk=1;
                                    Commentary("卖平超时");
                                    }
                            }
                    }
            kkk=0;
            if(A_BuyPosition()==0 && A_SellPosition()==0){
                    A_SendOrder(enum_sell,Enum_Entry,1,Q_AskPrice-20);
                    While(A_SellPosition()<=0 || kkk<=0){
                            if(currenttime()-A_ordertime(0) >= 0.000005){
                                    kkk=1;
                                    Commentary("卖开超时");
                                    }
                            }
                    }
    但实际上不按要求执行,请教老师,该如何改进,谢谢

     

  • TB技术人员: 回复 1# fangzg123

    大致思路如下
    判断是否有未成交单A_OpenOrderLot
    if(A_OpenOrderLot==0)
        setglobalvar(0,1);
    if(判断开仓条件 && Getglobalvar(0)==1)
       A_SendOrder...

     

  • TB客服: 非常感谢,谢谢老师

     

  • 网友回复: 请教老师
    if(A_buyposition()>0){
        A_SendOrder(enum_sell,enum_exit,A_buyposition(),Q_AskPrice-10);
       }
    是否会反复发送委托?
    用什么方法会让其只发送一次委托?

     

  • 网友回复: 回复 4# fangzg123


    会重复下单的,需要加入全局变量控制。

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容