以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  【趋势策略范例】日内清仓范例  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=173335)

--  作者:gxx978
--  发布时间:2019/11/29 15:24:19
--  【趋势策略范例】日内清仓范例

      在期货日内交易中,有时需求不持仓过夜,在收盘前清空所持有的仓位。下面分别就两种日内平仓的需求进行范例演示:

 

     一 、收盘提前1分钟清仓(在最后一根K线上清仓)。       

        //此范例适用于图表程序化交易,适用于分钟周期

        //该演示模型用于3分钟周期

        //使用固定轮询模式
        //此范例仅供演示,请勿直接使用入市交易。

        N:BARSLAST(DATE<>REF(DATE,1))+1;                                                        //当日K线数量
        CONKD:H>=HHV(H,2) AND C>=HHV(C,2) AND N>=3 AND TIME<=185700;  //开多条件,最后一根K线上不开仓,加上时间控制,避免清仓后又再次开仓
        CONKK:L<=LLV(L,2) AND C<=LLV(C,2) AND N>=3 AND TIME<=185700;      //开空条件
        CONPD:C<REF(L,1);                                                                                   //平多条件
        CONPK:C>REF(H,1); 
                                                                                  //平空条件

 

        SELL(CONPD AND HOLDING>0,HOLDING,MARKET);
        SELLSHORT(CONPK AND HOLDING<0,HOLDING,MARKET);
        BUY(CONKD,1,MARKET);
        BUYSHORT(CONKK,1,MARKET);

 

       IF (ISLASTBAR AND T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207)) OR (TIME=CLOSETIME(0) AND NOT(ISLASTBAR)) THEN   BEGIN   
            SELL(1,HOLDING,MARKET);            
            SELLSHORT(1,HOLDING,MARKET);                                                          //提前1分钟清仓
            END

 

     二、收盘提前3分钟清仓(不是在最后一根K线上清仓)。  

         //不是最后一根K线上清仓,可以直接用time函数(K线时间)来控制

        //演示范例运行在1分钟K线周期

         N:BARSLAST(DATE<>REF(DATE,1))+1;                                                     //当日K线数量
         CONKD:H>=HHV(H,2) AND C>=HHV(C,2) AND N>=3 AND TIME<185700;  //开多条件,加上时间控制,避免清仓后又再次开仓
         CONKK:L<=LLV(L,2) AND C<=LLV(C,2) AND N>=3 AND TIME<185700;     //开空条件
         CONPD:C<REF(L,1);                                                                               //平多条件
         CONPK:C>REF(H,1);                                                                              //平空条件

 

         SELL(CONPD AND HOLDING>0,HOLDING,MARKET);
         SELLSHORT(CONPK AND HOLDING<0,HOLDING,MARKET);
         BUY(CONKD,1,MARKET);
         BUYSHORT(CONKK,1,MARKET);

 

        IF TIME>185700 AND TIME<190000  THEN BEGIN                                   //提前3分钟清仓
           SELL(1,HOLDING,MARKET);
           SELLSHORT(1,HOLDING,MARKET);
           END

    

[此贴子已经被作者于2020/4/20 16:18:59编辑过]