设为首页收藏本站

 找回密码
 注册
查看: 2186|回复: 1

请问下这个Q函数、A函数和全局变量的策略哪里有误 [复制链接]

Rank: 1

精华
0
UID
124669
积分
2
帖子
1
主题
1
阅读权限
10
注册时间
2012-3-19
最后登录
2018-6-25
发表于 2018-2-13 13:57:13 |显示全部楼层
Params
    Numeric y(1);
        Numeric py(0);

Vars
    Numeric length(10);
    Numeric kt(0);
        Numeric dt(0);
        Numeric kpks(0);
        Numeric dpks(0);
        Numeric x(6);
        Numeric ma;
        NumericSeries ma1;
        NumericSeries lowestafterentry;
        NumericSeries highestafterentry;

Begin
        ma1=AverageFC(Close,Length);
        PlotNumeric("ma1",ma1);
       
        If(BarStatus==0)
        {
            kt=0.000000;
                dt=0.000000;
                kpks=0;
                dpks=0;
                SetGlobalVar(2,0.000000);
                SetGlobalVar(3,0.000000);
                SetGlobalVar(6,0);
                SetGlobalVar(7,0);
        }Else
        {
            kt=GetGlobalVar(2);
                dt=GetGlobalVar(3);
                kpks=GetGlobalVar(6);
                dpks==GetGlobalVar(7);
        }
       




       
                //空单开仓
                If(BarStatus==2 And A_SellPosition==0 And A_GetOpenOrderCount==0 And Close[1]<Open[1] And Close[1]<Close[2])
                {
                    If(A_GetOrderCount==0)  //当天还没交易,未发过委托
                        {
                                    A_SendOrder(Enum_Sell,Enum_Entry,y,Q_BidPrice(1)-py);
                                        kt=Time;
                                        SetGlobalVar(2,kt);
                        }
                               
                        If(A_GetOrderCount>0 And CurrentBar-kpks>x)
                        {
                                    A_SendOrder(Enum_Sell,Enum_Entry,y,Q_BidPrice(1)-py);
                                       
                                        kt=Time;
                                        SetGlobalVar(2,kt);
                        }
                }
                         
                       
               
                //多单开仓
                If(BarStatus==2 And A_BuyPosition==0 And A_GetOpenOrderCount==0 And Close[1]>Open[1] And Close[1]>Close[2])
                {
                        If(A_GetOrderCount==0)  //当天还没交易,未发过委托
                        {
                                    A_SendOrder(Enum_Buy, Enum_Entry,y,Q_AskPrice(1)+py);
                                        dt=Time;
                                        SetGlobalVar(3,dt);
                        }
                               
                        If(A_GetOrderCount>0 And CurrentBar-dpks>x)   
                        {
                                        A_SendOrder(Enum_Buy, Enum_Entry,y,Q_AskPrice(1)+py);
                                        dt=Time;
                                        SetGlobalVar(3,dt);
                        }
                }

        //空单平仓
    If(BarStatus==2 And A_SellPosition==y And Time==kt And A_GetOpenOrderCount==0)
        {
           If(Q_AskPrice(1)>=EntryPrice+100)
           {
                   A_SendOrder(Enum_Buy, Enum_ExitToday,y,Q_AskPrice(1)+py);//开仓K线上止损
                   kpks=CurrentBar;
                   SetGlobalVar(6,kpks);
                }Else lowestafterentry=Min(EntryPrice,Close);
        }
       
        If(BarStatus==2 And A_SellPosition==y And Time<>kt And A_GetOpenOrderCount==0)
        {
            lowestafterentry=Min(lowestafterentry[1],Close[1]);
                //PlotString("lae",Text(lowestafterentry))
               
               
                If(Q_AskPrice(1)>=EntryPrice+100)
                {
                            A_SendOrder(Enum_Buy, Enum_ExitToday,y,Q_AskPrice(1)+py);
                                kpks=CurrentBar;
                        SetGlobalVar(6,kpks);
                }
               
                If(Q_AskPrice(1)>=ma1[1] And Q_AskPrice(1)>=lowestafterentry+200)
                {
                        A_SendOrder(Enum_Buy, Enum_ExitToday,y,Q_AskPrice(1)+py);
                        kpks=CurrentBar;
                        SetGlobalVar(6,kpks);
                }
        }
       
       
        //多单平仓
    If(BarStatus==2 And A_BuyPosition==y And Time==dt And A_GetOpenOrderCount==0)
        {
            If(Q_BidPrice(1)<=EntryPrice-100)
                {
                    A_SendOrder(Enum_Sell,Enum_ExitToday,y,Q_BidPrice(1)-py);
                        dpks=CurrentBar;
                        SetGlobalVar(7,dpks);
                }Else highestafterentry=Max(EntryPrice,Close);
        }
       
        If(BarStatus==2 And A_BuyPosition==y And Time<>dt And A_GetOpenOrderCount==0)
        {
            highestafterentry=Max(highestafterentry[1],Close[1]);
            //PlotString("hae",Text(highestafterentry));
               
               
                If(Q_BidPrice(1)<=EntryPrice-100)
                {
                            A_SendOrder(Enum_Sell,Enum_ExitToday,y,Q_BidPrice(1)-py);
                                dpks=CurrentBar;
                            SetGlobalVar(7,dpks);
                }
               
                If(Q_BidPrice(1)<=ma1[1] And Q_BidPrice(1)<=highestafterentry-200)
                {
                        A_SendOrder(Enum_Sell,Enum_ExitToday,y,Q_BidPrice(1)-py);
                dpks=CurrentBar;
                        SetGlobalVar(7,dpks);
                }
        }
       
        //2点55分以后全平
        If(BarStatus==2 And Time>=0.14550900 And Time<=0.145900 )
        {
            If(A_SellPosition==y And A_GetOpenOrderCount==0)
                {
                        A_SendOrder(Enum_Buy, Enum_ExitToday,y,Q_AskPrice+py);
                        kpks=CurrentBar;
                        SetGlobalVar(6,kpks);
                       
                }
               
                If(A_BuyPosition==y  And A_GetOpenOrderCount==0)
        {
                        A_SendOrder(Enum_Sell,Enum_ExitToday,y,Q_BidPrice-py);
                        dpks=CurrentBar;
                        SetGlobalVar(7,dpks);
                }
        }
       
End

Rank: 1

精华
0
UID
264755
积分
3
帖子
3
主题
0
阅读权限
10
注册时间
2018-4-23
最后登录
2018-11-3
发表于 2018-4-24 00:15:48 来自手机 |显示全部楼层
一个Bar的时间是0.xxxx00-0.xxxx59,请问time=kt 怎么能成立呢?

使用道具 举报

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

bottom

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

GMT+8, 2024-3-29 19:29

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部