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

A函数公式不发单有人懂吗?麻烦帮忙解决可有偿 [开拓者 TB]

  • 咨询内容: Params
            Numeric J1(55);

    Vars
            NumericSeries MA;
            Numeric GG;
    Begin
            If(BarStatus==0) SetGlobalVar(0,0);
            MA=Average(C,55);
            GG=Highest(H[1],2);
            PlotNumeric("MA",MA);
                   
            If(Barstatus <> 2 Or AccountDataExist()==false) return;
                   
            if(BarStatus==2)
            {
            If(Q_AskPrice > ma[1] and GetGlobalVar (0) <> 1 AND A_BuyPosition==0 )
            {
            //A_SendOrder(Enum_Sell,Enum_Exit,1,Q_AskPrice);      
            A_SendOrder (Enum_Buy,Enum_Entry,1,Q_AskPrice )        ;
                 SetGlobalVar (0,1);
            }
          
            If(Q_BidPrice<=ma[1] AND GetGlobalVar (0)==1)
            {
                    //A_SendOrder(Enum_Buy,Enum_Exit,1,Q_BidPrice);
                    A_SendOrder ( Enum_Sell,Enum_Exit,1,Q_BidPrice);      
                    SetGlobalVar (0,0);
            }
            }
    End

     

     来源:CXH99.COM

  • TB技术人员: 本帖最后由 追涨杀跌 于 2020-8-14 16:20 编辑

    您好。您的问题,我之前就回复过您,而且我是做过测试后再回复您的,单从发单角度策略是没有问题的。
    但策略本身的逻辑是否有问题,我确实没有细测。说实话,每个客户写个策略碰到问题就丢给我们调试,我们再多的工作人员也忙不过来,这也绝不是解决问题的正确服务方式,这点希望您多理解。
    之后我看您还是不断地在论坛发帖、到客服群询问,虽然这种方式我并不认同。但为了解决您的问题, 就只有花点时间在极速版上做下测试,看看到底是什么原因。测试结果见下图:


    从测试的交易记录看 ,满足条件后,发单确实是没有问题的。但9点21分54秒后为什么就没有继续发单呢,仔细看消息中心,可以发现是有一个报错的。
    所以,后面不发单,原因还是出在策略本身。
    因为您发出买入开仓单后,SetGlobalVar (0,1); 这是没问题的,因为如果不设置,在A_BuyPosition改变之前,就有可能会重复地买入。
    但买入指令后并不意味着回报就立即回来了,所以卖出平仓时,是需要判断一下是否A_BuyPosition>0的
    而您现在的代码里并没有判断,所以,在9:21:54正好价格上穿完均线,马上又下穿均线,就发出了买入开仓指令,还没等成交,又立即发出了卖出平仓指令,而这时买入的回报还没回来,卖出平仓自然就报错了。但GlobalVar(0)又被您改成0了。后面买入的回报回来了,就演变成了,A_BuyPosition=1,GlobalVar(0)=0,这种出乎意外的情形了
    后面就很好理解了,因为开仓和平仓条件都不能满足了,也就不会再发单了。按照这个分析,后面一个条件中,应该改成
    If(Q_BidPrice<ma[1] AND GetGlobalVar (0)==1 And A_BuyPosition==1)

    因时间关系,我只能测试至此,如还有问题,后面只能靠您自己继续调试了。 附件: 你需要登录才可以下载或查看附件。没有帐号?注册

     

  • TB客服:
    追涨杀跌 发表于 2020-8-14 16:18
    您好。您的问题,我之前就回复过您,而且我是做过测试后再回复您的,单从发单角度策略是没有问题的。
    但策 ...

    谢谢老师  给您添麻烦了,不发单的问题已经解决了是因为映射的问题,我用888合约映射主力   所以一直不发单   
    感谢

 

有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流或微信号:cxh99cxh99  进行 有偿收费 编写!

怎么收费,代编流程等详情请点击阅读!

(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)


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

相关文章

    没有相关内容