程序化交易吧 关注:3,286贴子:8,508
  • 0回复贴,共1

日内清仓范例

只看楼主收藏回复

//金字塔交易软件用
在期货日内交易中,有时需求不持仓过夜,在收盘前清空所持有的仓位。下面分别就两种日内平仓的需求进行范例演示:
一 、收盘提前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 T0TOTIME(TIMETOT0(CLOSETIME(0))-60)<=DYNAINFO(207) OR (TIME=CLOSETIME(0) AND NO(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


IP属地:上海1楼2020-01-07 13:28回复