代码如下,以供参考:
VARIABLE:PROFIT=0,KD=0,KK=0,ZZ=0; //PROFIT记录亏损率,KD和KK分别控制日内分别只开1次,ZZ用来控制止损后不再交易。
N1:=TODAYBAR;
DM:=4-INTPART(LOG(C));
SS:ROUNDS(IF(SUM(VOL,N1)=0,C,SUM(C*VOL,N1)/SUM(VOL,N1)),2+DM); //金字塔中没有函数SETTLE,用此计算出当日均价
A1:=PRVSETTLEMENT; //获取昨结算
A2:=SS>A1;
A3:=C>SS;
A4:SS<A1;
A5:C<SS;
M:TIME>010000 AND TIME<183000;
XPRICE:=REF(ENTERPRICE,1); //获取上次开仓价
IF KD=0 AND ZZ=0 AND A2 AND A3 AND M THEN BEGIN
SELLSHORT(HOLDING<0,HOLDING,MARKET);
PROFIT:=PROFIT+(XPRICE-EXITPRICE)/XPRICE; //计算空单盈利率(负的则表示亏损)
BUY(HOLDING=0,1,MARKET);
KD:=1;
END
IF KK=0 AND ZZ=0 AND A4 AND A5 AND M THEN BEGIN
SELL(HOLDING>0,HOLDING,MARKET);
PROFIT:=PROFIT+(EXITPRICE-XPRICE)/XPRICE; //计算多单盈利率(负的则表示亏损)
BUYSHORT(HOLDING=0,1,MARKET);
KK:=1;
END
IF PROFIT<-0.01 THEN BEGIN
SELL(1,HOLDING,MARKET);
SELLSHORT(1,HOLDING,MARKET);
ZZ:=1; //止损后,禁止当日再交易
END
IF TIME>=CLOSETIME(4) THEN BEGIN //盘后,交易开关复位
KD:=0;
KK:=0;
ZZ:=0;
PROFIT:=0;
END