您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

【悬赏】编写IF日内突破交易规则 [金字塔]

  • 咨询内容: 交易手数为1手(可以设置)

    记录当天开盘后39分钟内的最高,最低价,最高价记为HH,最低价记为LL

    开多:
    最新价大于HH,以指定价(HH+20个跳动点(0.2为一个跳动点)),开多,
    当成交后,设下止损价为HH减去50个跳动点
    当有最新价达到HH加上50个跳动点时,止损价改为HH加4个跳动点
    平仓1:最新价大于HH*1.03平仓,以指定价(最新价-50个跳动点)平仓
    平仓2:到3点10分平仓。
    开多止损或者平仓后,不再出现开多交易信号
    开空:
    最新价小于LL,以指定价(LL-20个跳动点(0.2为一个跳动点)),开空,
    当成交后,设下止损价为LL加上50个跳动点
    当有最新价达到LL减去50个跳动点时,止损价改为LL减去4个跳动点
    平仓1:最新价小于LL*0.97平仓,以指定价(最新价+50个跳动点)平仓
    平仓2:到3点10分平仓。
    开空止损或者平仓后,不再出现开空交易信号
    谢谢 [此贴子已经被作者于2011-1-20 16:30:02编辑过]

     

  • 金字塔客服:

    思路不错

     

  • 用户回复:

    写好了,用于1分钟周期,我觉得没问题,版主检查下吧!

    不对的地方,请指正

     

    股指突破模型

     

    INPUT:NMIN(39,10,60,10);                                          //设置参数时间

    INPUT:NOFFSET(20,2,50,2);                                         //设置参数滑点

    INPUT:LOTS(1,1,100,1);                                            //设置参数仓位

    INPUT:STOPSET(50,50,100,10);                                     //设置参数止损

    VARIABLE:FLAG=0; //用于限制开仓次数

    VARIABLE:STOP_P=0; //用于变动止损

    CYC:=BARSLAST(DATE>REF(DATE,1))+1;                            //统计日内K线数

    HH:=VALUEWHEN(TIME<=91500+NMIN*100,HHV(H,CYC));                           {在从开盘到设定时间(默认参数开盘39分)内保存当天最高价}

    LL:=VALUEWHEN(TIME<=91500+NMIN*100,LLV(L,CYC));                      {在从开盘到设定时间(默认参数开盘39分)内保存当天最低价}

    IF HIGH > HH AND HOLDING<=0  AND FLAG<>1 THEN  {如果最高价突破设定时间内的前高加设定偏移并且目前没有多单,那么}

    BEGIN

             MYPRICE: = HH + NOFFSET*MINDIFF;       {预设进场价.既等于设定时间内的前高加设定偏移}

             IF C >= MYPRICE THEN                                                                                                   

             BEGIN

                       MYPRICE: = C;
                      
                       FLAG:=1;

                       SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);                                                      {如果有空单先平}

                       BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);   {如果没有多单则以开盘价开多LOTS手 }  
                      
                       IF C<=HH-STOPSET*MINDIFF THEN   SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);
                                                                                            
                       IF C>=HH+STOPSET*MINDIFF THEN  STOP_P:=4;
                      
                       IF C<=HH+STOP_P*MINDIFF THEN  SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);
                      
                       IF C>=HH*1.03 THEN  SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);                                                                                                                            
             END

    END

    IF LOW <= LL AND HOLDING>=0 AND FLAG<>3 THEN               {以下开空部分同上,只不过方向相反}

    BEGIN

             MYPRICE: = LL - NOFFSET*MINDIFF;

             IF C <= MYPRICE THEN

             BEGIN

                       MYPRICE: = C;
                      
                       FLAG:=3;

                       SELL(HOLDING>0,0,LIMITR,MYPRICE);

                       BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
                      
                       IF C>=LL+STOPSET*MINDIFF THEN  SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);
                      
                       IF C<=LL-STOPSET*MINDIFF THEN  STOP_P:=4;
                      
                       IF C>=LL-STOP_P*MINDIFF THEN  SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);
                      
                       IF C<=LL*0.97 THEN  SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);    
                      
             END

    END

    IF TIME >= 151000 THEN                                                                 {收盘平仓}

    BEGIN

             SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);

             SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);

    END

    [此贴子已经被作者于2011-1-20 18:30:32编辑过]

     

  • 网友回复: 用于1分钟周期

     

  • 网友回复:

    给了5个金币了。说明落英写对了?

    管理员自己不会写么?不能吧?


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

相关文章

    没有相关内容