程序化交易吧 关注:3,291贴子:8,510
  • 1回复贴,共1

收盘前清仓怎么写?

只看楼主收藏回复

最近行情波动比较大只做日内,收盘前清仓怎么写?金字塔软件里用的。


IP属地:上海1楼2020-04-29 10:11回复
    一 、收盘提前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


    2楼2020-05-11 13:55
    回复