1)开多单成交后,价格跌破前3日K线最小的底点止损(包括开仓K线的底点在内),或者价格跌破开仓价格-1.5*ATR止损;
2)开空单成交后,价格升破前3日K线最大的高点止损(包括开仓K线的高点在内),或者价格升破开仓价格+1.5*ATR止损;
3)盈利达到2*ATR后,回拉达到0.6*ATR后止盈!
请帮忙编写一下。
h1:=callstock(stklabel,vthigh,6,-1);
h2:=callstock(stklabel,vthigh,6,-2);
h3:=callstock(stklabel,vthigh,6,-3);
l1:=callstock(stklabel,vtlow,6,-1);
l2:=callstock(stklabel,vtlow,6,-2);
l3:=callstock(stklabel,vtlow,6,-3);
//1)开多单成交后,价格跌破前3日K线最小的底点止损(包括开仓K线的底点在内),或者价格跌破开仓价格-1.5*ATR止损;
//2)开空单成交后,价格升破前3日K线最大的高点止损(包括开仓K线的高点在内),或者价格升破开仓价格+1.5*ATR止损;
//3)盈利达到2*ATR后,回拉达到0.6*ATR后止盈!
max3:=max(h1,max(h2,h3));
min3:=min(l1,min(l2,l3));
if holding>0 and l<min3 then sell(1,0,market);
if holding>0 and l<enterprice-1.5*atr then sell(1,0,market);
if holding<0 and h>max3 then sellshort(1,0,market);
if holding<0 and h>enterprice+1.5*atr then sellshort(1,0,market);
if holding>0 and hhv(h,enterbars+1)>enterprice+2*atr and l<=enterprce+0.6*atr then sell(1,0,market);
if holding<0 and llv(l,enterbars+1)<enterprice-2*atr and h>=enterprice-0.6*atr then sellshort(1,0,market);
不要意思,我没有表述明白,我是指开仓价格左右的3K最低最高被破止损。
/1)开多单成交后,开仓价格左右的3K被跌破,选最小的底点止损(包括开仓K线的底点在内),或者价格跌破开仓价格-1.5*ATR止损;
//2)开空单成交后,开仓价格左右的3K升破,选最大的高点止损(包括开仓K线的高点在内),或者价格升破开仓价格+1.5*ATR止损;
IF llv(l,enterbars+1)<enterprice-3*AverageTR THEN BEGIN
IF h>=enterprice-0.6*AverageTR THEN BEGIN
空赢:SELLSHORT(1,SS,THISCLOSE),ORDERQUEUE;
END
END
END
在逐K模式下, llv(l,enterbars+1)无法使用。
开仓价格左右的3K被跌破,是指,比如当下K线开多,的那个下K下前一K,,本周开仓K,下一K,这3K
VARIABLE:DUOKONG=0;
VARIABLE:YDZY=1;
VARIABLE:HIGHPRICE=0,LOWPRICE=0;
VARIABLE:Z3B1:=1;
DUOKONG:=1;
IF HOLDING<0 THEN BEGIN
IF trendr=1 THEN BEGIN
空平:SELLSHORT(1,SS,THISCLOSE),ORDERQUEUE;
END
IF h>enterprice+1.5*AverageTR THEN BEGIN
空损:SELLSHORT(1,SS,THISCLOSE),ORDERQUEUE;
END
IF YDZY=1 THEN BEGIN
IF L<LOWPRICE THEN BEGIN
LOWPRICE:=L;
END
llk:=llv(l,enterbars+1);
IF llk<enterprice-3*AverageTR THEN BEGIN
IF h>=enterprice-0.6*AverageTR THEN BEGIN
空赢:SELLSHORT(1,SS,THISCLOSE),ORDERQUEUE;
END
END
END
IF Z3B1=1 THEN BEGIN
IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN
IF ENTERPRICE-L<=1.2 THEN BEGIN
END
END
END
END
IF HOLDING=0 THEN BEGIN
IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
IF buy11 THEN BEGIN
多开:BUY(1=1,SS,THISCLOSE),ORDERQUEUE;
HIGHPRICE:=ENTERPRICE;
END
END
END
IF HOLDING>0 THEN BEGIN
IF trendr=-1 THEN BEGIN
多平:SELL(1,SS,THISCLOSE),ORDERQUEUE;;
END
IF l<enterprice-1.5*AverageTR THEN BEGIN
多损:SELL(1,ORDVOL,THISCLOSE),ORDERQUEUE;
END
IF YDZY=1 THEN BEGIN
IF H>HIGHPRICE THEN BEGIN
HIGHPRICE:=H;
END
hhk:=hhv(h,enterbars+1);
IF hhk>enterprice+2*AverageTR THEN BEGIN
IF l<=enterprce+0.6*AverageTR THEN BEGIN
多赢:SELL(1,SS,THISCLOSE),ORDERQUEUE;
END
END
END
IF Z3B1=1 THEN BEGIN
IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN
IF H-ENTERPRICE<=1.2 THEN BEGIN
END
END
END
END
IF HOLDING=0 THEN BEGIN
IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN
IF sel22 THEN BEGIN
空开:BUYSHORT(1=1,SS,THISCLOSE),ORDERQUEUE;
LOWPRICE:=ENTERPRICE;
END
END
END
在逐K模式下, llv(l,enterbars+1)无法使用。