设为首页收藏本站

 找回密码
 注册
查看: 1616|回复: 1
打印 上一主题 下一主题

关于无法平仓反手,请问为什么?求解答。 [复制链接]

Rank: 3Rank: 3

精华
0
UID
212247
积分
128
帖子
83
主题
23
阅读权限
40
注册时间
2015-6-28
最后登录
2019-11-15
跳转到指定楼层
1#
发表于 2015-8-11 11:09:33 |只看该作者 |倒序浏览
代码如下:
If(BarStatus==2)
                                    {
                                        If (GetGlobalVar(0)==-1 And (close>H6[1]))
                                 {
                                   SetGlobalVar(0,1); A_SendOrder(enum_buy,enum_exit,1,Q_AskPrice+2*MinMove*PriceScale);
                                        
                                   A_SendOrder(Enum_buy,enum_Entry,1,Q_AskPrice+2*pricescale*MinMove);}// 想达到条件后,平前面的仓位并反手。
                                          
                                If  (GetGlobalVar(0)==1 And close<L6[1] )
                                 {
                                   SetGlobalVar(0,-1); A_SendOrder(Enum_sell,enum_exit,1,Q_BidPrice-2*MinMove*PriceScale); A_SendOrder(Enum_sell,enum_Entry,1,Q_BidPrice-2*PriceScale*MinMove);}//达到条件,平前仓位并反手
                                }   
                                    If(time>0.1509)  { A_SendOrder(enum_sell,enum_exit,1,Q_BidPrice-2*Minmove*priceScale);A_SendOrder(Enum_buy,enum_exit,1,Q_askprice+2*minmove*pricescale);}//到时间 全平
                                 }  
  


      一般希望只持有单边的单,但是运行起来经常出现的是  开始的时候 是单边的单,到后来变成了 双边持仓。然后总持仓为0. 不知道问题出在哪。
  是tick变化太快,然后导致了  时间不够,只运行了程序一部分吗?我的代码并不长。。。  谢谢高手解答。。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 3Rank: 3

精华
0
UID
212247
积分
128
帖子
83
主题
23
阅读权限
40
注册时间
2015-6-28
最后登录
2019-11-15
2#
发表于 2015-8-11 14:30:50 |只看该作者


仓位失控,而且 仓位越加越多,请问是什么原因呢?代码 如下。
Params
               
                       Numeric       length(6);
       
            Vars
                           NumericSeries       H6(0);
                           NumericSeries       L6(0);
                           Numeric       I(0);
                       StringSeries  kongzhi("0");
                       Numeric      s(0);
                               
                Begin
                         if(date>20150930) return;
                         if (BarStatus==0) SetGlobalVar(0,1);      
                             if (time >0.0920   and  time <0.1509 )
                                {H6=Highest(high,length);
                                 L6=Lowest(low,length);
                                 If (GetGlobalVar(0)==-1 And (close>H6[1]))
                                 {  PlotString("买卖","买▲",l-10,-1,1);
                                   SetGlobalVar(0,1);Buy(1,h6[1]+2*MinMove);BuyToCover(1,h6[1]+2*MinMove*PriceScale);}
                                       
                                If  (GetGlobalVar(0)==1 And close<L6[1] )
                                 { PlotString("买卖","卖▼",h+10,-1,1);
                                   SetGlobalVar(0,-1);Sell(1,L6[1]-2*MinMove);sellshort(1,L6[1]-2*MinMove*pricescale);}
                       
               /*If (Time>=0.1455 And time <=0.1515)  {
                           BuyToCover(0,close);
                                Sell(0,close);}
                                 s=0;*/
                               
                                //if(BarStatus!=2 And !CallAuctionFilter()) Return;
                                If(BarStatus==2)
                                    {
                                        If (GetGlobalVar(0)==-1 And (close>H6[1]))
                                 {
                                   SetGlobalVar(0,1); A_SendOrder(enum_buy,enum_exit,1,Q_AskPrice+2*MinMove*PriceScale);
                                        
                                   A_SendOrder(Enum_buy,enum_Entry,1,Q_AskPrice+2*pricescale*MinMove);}
                                          
                                If  (GetGlobalVar(0)==1 And close<L6[1] )
                                 {
                                   SetGlobalVar(0,-1); A_SendOrder(Enum_sell,enum_exit,1,Q_BidPrice-2*MinMove*PriceScale); A_SendOrder(Enum_sell,enum_Entry,1,Q_BidPrice-2*PriceScale*MinMove);}
                                }   
                                    If(time>0.1509)  { A_SendOrder(enum_sell,enum_exit,1,Q_BidPrice-2*Minmove*priceScale);A_SendOrder(Enum_buy,enum_exit,1,Q_askprice+2*minmove*pricescale);}
                                 }  
                End  
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-27 13:17

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部