设为首页收藏本站

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

这个不出现交易信号,期望大神给修改完善 [复制链接]

Rank: 1

精华
0
UID
267274
积分
6
帖子
4
主题
2
阅读权限
10
注册时间
2018-7-5
最后登录
2021-6-1
跳转到指定楼层
1#
发表于 2021-5-29 08:35:48 |只看该作者 |倒序浏览
前面的声明定义省略了
Begin
        If(!CallAuctionFilter()) Return;
      //----------------------------初始化--------------------------------------------     
        If(BarStatus==0)
        {
                SetGlobalVar(0,0);   
                SetGlobalVar(1,Lot);  
                SetGlobalVar(2,0);
                SetGlobalVar(3,0);  
                SetGlobalVar(4,0);  
                SetGlobalVar(13,0);
                SetGlobalVar(14,0);
                SetGlobalVar(27,1);  //开仓手数
        }
      If(TrueDate(0)!=TrueDate(1))   //开盘重置
       {
                SetGlobalVar(13,0);     //日交易次数
                SetGlobalVar(14,0);     //日盈利次数
       }
       
       MinPr= MinMove*PriceScale;
       //-----------------------计算开仓手数-------------------------------------------------
      Lots=GetGlobalVar(27);     //开仓手数
             ZDTStop=(Q_BidPrice>Q_LowerLimit+5*MinPr)&&(Q_AskPrice<Q_UpperLimit-5*MinPr);  //涨跌停板不开仓
  
         SetGlobalVar(15,Q_BidPrice);   //买一价       
         SetGlobalVar(16,Q_BidVol);     //买一量
         SetGlobalVar(17,Q_AskPrice);  //卖一价
         SetGlobalVar(18,Q_AskVol);    //卖一量
          Bid = GetGlobalVar(15);        //买一价
       BidVol = GetGlobalVar(16);    //买一量
       Ask= GetGlobalVar(17);        //卖一价
       AskVol= GetGlobalVar(18);    //卖一量

//-------------------------进出场条件--------------------------------------                 
        UB=lowest(LOW,999)+(highest(HIGH,999)-lowest(LOW,999))*7/8;               
        LB=lowest(LOW,999)+(highest(HIGH,999)-lowest(LOW,999))*1/8;
                       
        PlotNumeric("UB",UB);
        PlotNumeric("LB", LB);
     If(BarStatus==2)
        {
       
      SetGlobalVar(19,Max(Max( Max( Bid[1],Bid[2]), Bid[3]), Bid[4]));                            //最近4笔TICK最大买一价(不含当前TICK)
      SetGlobalVar(20,Max(Max( Max( BidVol[1],BidVol[2]), BidVol[3]), BidVol[4]));          //最近4笔TICK最大买一量(不含当前TICK)
         SetGlobalVar(21,Max(Max( Max( Ask[1],Ask[2]), Ask[3]), Ask[4]));                      //最近4笔TICK最大卖一价(不含当前TICK)
      SetGlobalVar(22,Max(Max( Max( AskVol[1],AskVol[2]), AskVol[3]), AskVol[4]));          //最近4笔TICK最大卖一价量(不含当前TICK)
     }
        Bid_Max = GetGlobalVar(19);        //最大买一价
        BidVol_Max = GetGlobalVar(20);    //最大买一量
        Ask_Max = GetGlobalVar(21);        //最大卖一价
        AskVol_Max = GetGlobalVar(22);    //最大卖一量

   If(BarStatus==2)
    {
     //---------------------------量价指标---------------------------------------------
       SetGlobalVar(30,Q_OpenInt);   //当前商品的持仓量
       SetGlobalVar(31,Q_TotalVol);  //当日成交量
       DayOpint=GetGlobalVar(30);
       Dayvol=GetGlobalVar(31);
       Tickvol=Dayvol-Dayvol[1];              //Tick成交量
       If(CountIf(Tickvol>TickDL,10)>2 && DayOpint>DayOpint[2])     //10个中Tick成交量超过TickDL的个数大于2,开始放大量了,且增仓了
             SetGlobalVar2("FL",1);
             Else  SetGlobalVar2("FL",0);
       
           //高频盘口策略  TicK周期下使用
            If(ZDTStop && TradeTime && C[1]>UB[1] && GetGlobalVar2("FL")==1 && Q_BidPrice>=Q_AvgPrice && Q_LastFlag==1 &&(Q_BidVol > GetGlobalVar(20)) && (Q_BidPrice > GetGlobalVar(19))) //开多条件
            SetGlobalVar2("BK",1);
            Else  SetGlobalVar2("BK",0);
            If(ZDTStop && TradeTime && C[1]< LB[1]  &&  GetGlobalVar2("FL")==1 && Q_AskPrice<=Q_AvgPrice && Q_LastFlag==-1 && (Q_AskVol > GetGlobalVar(22)) && (Q_AskPrice < GetGlobalVar(21))) //开空条件
            SetGlobalVar2("SK",1);
            Else  SetGlobalVar2("SK",0);
               
      //--------------------------开平仓模块---------------------------------
      If (GetGlobalVar(0)== 1)//平多
        {
                    If ((Q_BidPrice<=GetGlobalVar(6)) or  (TimeDiff(GetGlobalVar(55),CurrentTime()) > 600))//开仓超过600秒平仓//多头止损
                       {
                            Lotp=Lots; //平仓手数                                                                 
        //   text_order(strDir,celueID,1,3,Lotp,Q_BidPrice,SmoothPoint,Lock);                                                    
                     SetGlobalVar(0,0);
                             KF=GetGlobalVar(0);
                     SetGlobalVar(27,1);   //止损变回1手
                        //---------------
                               Sell(Lotp, Q_BidPrice);
                               Return;     //平仓后返回
                       }
                Else  If(Q_AskPrice>=GetGlobalVar(7))//多头止盈
                {
                               Lotp=Lots; //平仓手数
                   //         text_order(strDir,celueID,1,3,Lotp,Q_BidPrice,SmoothPoint,Lock);
                                  SetGlobalVar(0,0);
                               KF=GetGlobalVar(0);
                     If(Lots>=1 and Lots<4)  Lots=Lots+1;
                     Else If(Lots>=4 and Lots<8) Lots=Lots+2;
                     Else If(Lots>=8 ) Lots=8;
                     SetGlobalVar(27,Lots);   //记录开仓手数
                        //---------------
                                  Sell(Lotp, Q_BidPrice);
                                  Return;
                }
        }
        Else If(GetGlobalVar(0)==-1)//平空
        {
             If ((Q_AskPrice>=GetGlobalVar(10)) or (TimeDiff(GetGlobalVar(77),CurrentTime())>600))//开仓超过600秒平仓
               {
                      Lotp=Lots;
        //text_order(strDir,celueID,0,3,Lotp,Q_AskPrice,SmoothPoint,Lock);
                         SetGlobalVar(0,0);
                      KF=GetGlobalVar(0);
                 SetGlobalVar(27,1);   //止损变回1手
                 //---------------
                         BuyToCover(Lotp,Q_AskPrice);
                       Return;   
               }
              Else If (Q_BidPrice<=GetGlobalVar(11))//空头止盈
                {
                       Lotp=Lots;
                 //    text_order(strDir,celueID,0,3,Lotp,Q_AskPrice,SmoothPoint,Lock);
                      SetGlobalVar(0,0);
                      KF=GetGlobalVar(0);
                If(Lots>=1 and Lots<4)  Lots=Lots+1;
                Else If(Lots>=4 and Lots<8) Lots=Lots+2;
                Else If(Lots>=8) Lots=8;
                SetGlobalVar(27,Lots);   //记录开仓手数
               
                  //---------------
                          BuyToCover(Lotp,Q_AskPrice);
                       Return;
                }
        }
        Else  If (GetGlobalVar(0)== 0  && GetGlobalVar2("BK")==1)  //开多
            {        
                //     text_order(strDir,celueID,0,0,Lots,Q_AskPrice,SmoothPoint,Lock);
                         SetGlobalVar(0,1);
                         jiacha=Q_AskPrice-Q_BidPrice;       
                         SetGlobalVar(5,Q_AskPrice);
                         SetGlobalVar(6,Q_AskPrice - (StopLoss+jiacha)*MinPr);
                         SetGlobalVar(7,Q_AskPrice + (StopYin+jiacha)*MinPr);
                          SetGlobalVar(36,Q_AskPrice +jiacha*MinPr);
                         SetGlobalVar(37,Q_AskPrice -jiacha*MinPr );
                         SetGlobalVar(8,Q_AskPrice - Ydzyin*MinPr);  
                         SetGlobalVar(4,GetGlobalVar(4)+1);  
                         SetGlobalVar(13,GetGlobalVar(13)+1);
                         PriceBid = GetGlobalVar(5);
                         SetGlobalVar(55,CurrentTime());  //多头开仓本地机器时间
                         PriceBidTime = GetGlobalVar(55);
                         //-------------------------------  
                  Buy(Lots,Q_AskPrice);
                       Return;
             }
        Else  If (GetGlobalVar(0)== 0  && GetGlobalVar2("SK")==1)//卖开
          {
                  //    text_order(strDir,celueID,1,0,Lots,Q_BidPrice,SmoothPoint,Lock);   
                         SetGlobalVar(0,-1);
                         jiacha=Q_AskPrice-Q_BidPrice;
                         SetGlobalVar(9,Q_BidPrice);
                         SetGlobalVar(10,Q_BidPrice +(StopLoss+jiacha)*MinPr);
                         SetGlobalVar(11,Q_BidPrice -(StopYin+jiacha)*MinPr);  
                          SetGlobalVar(40,Q_BidPrice +jiacha*MinPr );
                         SetGlobalVar(41,Q_BidPrice -jiacha*MinPr);  
                         SetGlobalVar(12,Q_BidPrice + Ydzyin*MinPr);   
                         SetGlobalVar(4,GetGlobalVar(4)+1);
                         SetGlobalVar(13,GetGlobalVar(13)+1);
                         PriceAsk = GetGlobalVar(9);
                         SetGlobalVar(77,CurrentTime());  //空头开仓本地机器时间
                         PriceAskTime = GetGlobalVar(77);
                         //-------------------------------
                          SellShort(Lots,Q_BidPrice);
                          Return;
           }
    //-----------------------------盈利一定跳数启动,保本移动止盈-------------------------------------------
    If (GetGlobalVar(0)== 1)//多头移动止盈
      {
         SetGlobalVar(8,Max(GetGlobalVar(8),Q_AskPrice-Ydzyin*MinPr));   
         If (GetGlobalVar(8)>GetGlobalVar(5) && GetGlobalVar(8)>=Q_BidPrice)
                {
                               Lotp=Lots;
//        text_order(strDir,celueID,1,3,Lotp,Q_BidPrice,SmoothPoint,Lock);  
                                 SetGlobalVar(0,0);
                      KF=GetGlobalVar(0);
                If(Lots>=1 and Lots<4)  Lots=Lots+1;
                Else If(Lots>=4 and Lots<8) Lots=Lots+2;
                Else If(Lots>=8) Lots=8;
                SetGlobalVar(27,Lots);   //记录开仓手数
                                        //---------------
                                  Sell(Lotp, Q_BidPrice);
                                  Return;
                }
      }
    Else If (GetGlobalVar(0) == -1)//空头移动止盈
      {
          SetGlobalVar(12,Min(GetGlobalVar(12),Q_BidPrice+Ydzyin*MinPr));  
          If (GetGlobalVar(12) <= GetGlobalVar(9) && GetGlobalVar(12) <=Q_AskPrice)
             {
                       Lotp=Lots;
        //         text_order(strDir,celueID,0,3,Lotp,Q_AskPrice,SmoothPoint,Lock);
                          SetGlobalVar(0,0);
                      KF=GetGlobalVar(0);
                If(Lots>=1 and Lots<4)  Lots=Lots+1;
                Else If(Lots>=4 and Lots<8) Lots=Lots+2;
                Else If(Lots>=8) Lots=8;
                SetGlobalVar(27,Lots);   //记录开仓手数               
                  //---------------
                          BuyToCover(Lotp,Q_AskPrice);
                       Return;
             }
      }
您需要登录后才可以回帖 登录 | 注册

bottom

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

GMT+8, 2024-4-20 03:49

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部