--
关于止损后再开仓,VARIABLE 变量赋值,没法解决,想到一种条件式COUNT,或循环条件CONTINUE ,满足首先执行前面的各种平仓作为先决条件,之后符合新条件形成再执行,新的开仓,如何编法呢?
下面编的,没有任何信号了。
BUY1:=ND>XD;
SELL1:=ND<XD;
//持有多单
IF HOLDING>0 and enterbars>0 THEN BEGIN
IF SELL1 THEN BEGIN {平多单}
多平:SELL(1,0,MARKET),ORDERQUEUE;
END
//多单管理
//多单止损
IF HOLDING>0 and enterbars>0 and ENTERPRICE-C>=ZSDS THEN BEGIN
多损:SELL(1,0,MARKET),ORDERQUEUE;
END
//移动止盈
IF YDZY=1 THEN BEGIN
//每周期判断是否创新高
IF H>HIGHPRICE THEN BEGIN
HIGHPRICE:=H;
dwin:=HIGHPRICE-ENTERPRICE;
END
//赚3保1
IF Z3B1=1 THEN BEGIN
IF HOLDING>0 and enterbars>0 and dwin>=3 THEN BEGIN
IF H-ENTERPRICE<=0.8 THEN BEGIN
多保1:SELL(1,0,MARKET);
END
END
END
END
//赚7保2
IF Z3B1=1 THEN BEGIN
IF HOLDING>0 and enterbars>0 and dwin>=7 THEN BEGIN
IF H-ENTERPRICE<=2 THEN BEGIN
多保2:SELL(1,0,MARKET);
END
END
END
//赚10保3
IF Z3B1=1 THEN BEGIN
IF HOLDING>0 and enterbars>0 and dwin>=10 THEN BEGIN
IF H-ENTERPRICE<=3 THEN BEGIN
多保3:SELL(1,0,MARKET);
END
END
END
//如果盈利超过15点之后回撤达到7点,就平仓,保住盈利
IF HOLDING>0 and enterbars>0 and dwin>=15 THEN BEGIN
IF HIGHPRICE-H>=7 THEN BEGIN //回撤超过3点
多赢1:SELL(1,0,MARKET);
END
END
//如果盈利超过20点之后回撤达到10点,就平仓,保住盈利
IF HOLDING>0 and enterbars>0 and dwin>=20 THEN BEGIN
IF HIGHPRICE-H>=10 THEN BEGIN //回撤超过3点
多赢2:SELL(1,0,MARKET);
END
END
//如果盈利超过30点之后回撤达到8点,就平仓,保住盈利
IF HOLDING>0 and enterbars>0 and dwin>=30 THEN BEGIN
IF HIGHPRICE-H>=8 THEN BEGIN //回撤超过3点
多赢3:SELL(1,0,MARKET);
END
END
//开空单
if 多平 or 多损 or 多保1 or 多保2 or 多保3 or 多赢1 or 多赢2 or 多赢3 THEN BEGIN
IF HOLDING=0 AND TIME<151300 THEN BEGIN
IF SELL1 THEN BEGIN
空开:BUYSHORT(1,1,MARKET),ORDERQUEUE;
LOWPRICE:=ENTERPRICE;
END
END
END
END
//持有空单
IF holding<0 and enterbars>0 THEN BEGIN
IF BUY1 THEN BEGIN //平空单
空平:SELLSHORT(1,0,MARKET);
END
//空单止损
IF holding<0 and enterbars>0 and C-ENTERPRICE>=ZSDS THEN BEGIN
空损:SELLSHORT(1,0,MARKET);
END
//移动止盈
IF YDZY=1 THEN BEGIN
//每周期判断是否创新低
IF L<LOWPRICE THEN BEGIN
LOWPRICE:=L;
kwin:=ENTERPRICE-LOWPRICE;
END
//赚5保1
IF holding<0 and enterbars>0 and kwin>=3 THEN BEGIN
IF Z3B1=1 THEN BEGIN
IF ENTERPRICE-L<=0.8 THEN BEGIN
空保1:SELLSHORT(1,0,MARKET);
END
END
END
END
//赚7保2
IF holding<0 and enterbars>0 and kwin>=7 THEN BEGIN
IF Z3B1=1 THEN BEGIN
IF ENTERPRICE-L<=2 THEN BEGIN
空保2:SELLSHORT(1,0,MARKET);
END
END
END
END
//赚10保3
IF holding<0 and enterbars>0 and kwin>=10 THEN BEGIN
IF Z3B1=1 THEN BEGIN
IF ENTERPRICE-L<=3 THEN BEGIN
空保3:SELLSHORT(1,0,MARKET);
END
END
END
//如果盈利超过15点之后回撤达到7点,就平仓,保住盈利
IF holding<0 and enterbars>0 and kwin>=15 THEN BEGIN
IF L-LOWPRICE>=7 THEN BEGIN //回撤超过3点
空赢1:SELLSHORT(1,0,MARKET);
END
END
//如果盈利超过20点之后回撤达到10点,就平仓,保住盈利
IF holding<0 and enterbars>0 and kwin>=20 THEN BEGIN
IF L-LOWPRICE>=10 THEN BEGIN //回撤超过3点
空赢2:SELLSHORT(1,0,MARKET);
END
END
//如果盈利超过30点之后回撤达到8点,就平仓,保住盈利
IF holding<0 and enterbars>0 and kwin>=30 THEN BEGIN
IF L-LOWPRICE>=8 THEN BEGIN //回撤超过3点
空赢3:SELLSHORT(1,0,MARKET);
END
END
//开多单
if 空平 or 空损 or 空保1 or 空保2 or 空保3 or 空赢1 or 空赢2 or 空赢3 THEN BEGIN
IF HOLDING=0 AND TIME<151300 THEN BEGIN
IF BUY1 THEN BEGIN
多开:BUY(1,1,MARKET);
HIGHPRICE:=ENTERPRICE; //将开仓价保存到最高价
END
END
END
//日内平仓
IF TIME>=151000 THEN BEGIN
收盘清多:SELL(1,0,MARKET);
收盘清空:SELLSHORT(1,0,MARKET);
END