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

求助求助!!模型只能开仓,不能平仓,求助求助!! [开拓者 TB]

  • 咨询内容: 求助求助!!我的代码在实盘运行中,只能实时的开仓,却不能实时的平仓,问题到底是什么呢??
    源代码如下:

    Params
            Numeric Lenth1(200);
            Numeric Lenth2(50);
            Numeric OffSet(1);                //委托价格偏移单位
            Numeric Lots(1);

    Vars
            NumericSeries MA1;
            NumericSeries MA2;
           
            Numeric OffSetPrice(0);


            Bool UP_MA;                                        //用于保存初始化条件
            Bool UP_Price;
            Bool Down_MA;
            Bool Down_Price;
           
            Bool Buy_Conf;                //用于开仓的条件
            Bool SellShort_Conf;
           
            Bool BuyToCover_Conf;                //用于平仓的条件
            Bool Sell_Conf;
           
            Numeric LongPosition(0);                //用于保存账号多单持仓数量
            Numeric ShortPosition(0);                //用于保存账号多单持仓数量
            Bool GotPosition(False);                        //用于标识账号是否有持仓

    Begin
            // 集合竞价和小节休息过滤
                    If(!CallAuctionFilter()) Return;
                   
            MA1=AverageFC(c,Lenth1);                                //定义两均线
            MA2=AverageFC(c,Lenth2);
           
            PlotNumeric("MA1",MA1);                //在主图画出指标线;
            PlotNumeric("MA2",MA2);
           
           
            UP_MA = MA1[1]>MA2[1];                //MA为多头排列
            Down_MA = MA1[1]<MA2[1];        //MA为空头排列
           
            UP_Price = High>MA1AND High>MA2;        //价格站在MA之上
            Down_Price = Low<MA1AND Low<MA2;        //价格站在MA之下
           
            Buy_Conf = UP_MA And UP_Price;                        //开多单条件
            SellShort_Conf = Down_MA And Down_Price;        //开空单条件
           
            BuyToCover_Conf = Down_MA And UP_Price;                //平空仓
            Sell_Conf = UP_MA And Down_Price;                        //平多单

            OffSetPrice=OffSet*MinMove*PriceScale;
           

            LongPosition=A_BuyPosition();
            ShortPosition=A_SellPosition();

            If(LongPosition==0 AND ShortPosition==0){
            GotPosition=False;
            }
            Else{
            GotPosition=True;
            }

    Commentary("当前是否有持仓:  "+IIFString(GotPosition,"有持仓","没有持仓"));
    If(GotPosition)
    {//如果有持仓,则下面的是平仓条件代码


    Commentary("LongPosition        ="+Text(LongPosition));
    Commentary("ShortPosition        ="+Text(Abs(ShortPosition)));

                            If(LongPosition>0)        //如果持有多单,则判断是否需要平仓
                            {
                                    If(Sell_Conf)
                                    {        //平多单代码
                                    Sell(Lots,Q_BidPrice()-OffSetPrice);
                                    Return;
                                    }
                            }
                            If(ShortPosition<0)        //如果持有空单,则判断是否需要平仓
                            {
                                    if(BuyToCover_Conf)
                                    {        //平空单代码
                                    BuyToCover(Lots,Q_AskPrice()+OffSetPrice);
                                    Return;
                                    }
                            }

    }Else{//如果没有持仓,则下面的是开仓条件代码


                            if (Buy_Conf)
                            {
                                    Buy(Lots,Q_AskPrice()+OffSetPrice);
                                    Return;

                            }
                            if (SellShort_Conf)
                            {
                                    SellShort(Lots,Q_BidPrice()-OffSetPrice);
                                    Return;
                            }

    }


    End

     

  • TB技术人员: 哪们大神帮忙看一下,急呢!

     

  • TB客服: http://pan.baidu.com/s/1boDLqgf
    这视频是从今天早上另一个模型出平仓信号,但实盘运行的模型却没有执行平仓动作,视频中左边两个图表是实盘运行的图表,右边两个是在图表上显示信号,用于对比的。两个模型代码基本一样,只是实盘的模型使用了一些账户函数。
    上面发出来的代码中,已经把“ShortPosition<0”修改为“ShortPosition>0”,但实盘中,还是不能执行平仓,想问一下,问题到底出在哪??

     

  • 网友回复: 你这个公式不是通过a_sendorder下单的 所以A_BuyPosition()应该读不到你账户的仓位  还是建议buy sell这类函数不要和a或者q函数混用哦

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容