//多头初始浮亏 P1% 止损
IF WIN1<-P1 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
当达到止损是, 希望在这里反手, 并同样要求 反手的新单 达到P1% 是 止损离场 一天只反手一次,不知道这样能做到不,请问给位高手 这个该怎么写??
反手
if win1<-p1 then begin
sell;
buyshort();
end
每天限定一次可以用全局变量来记录
IF WIN1<-P1 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
BUYSHORT(1,1,LIMITR,CLOSE);
IF WIN2<-P1 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
BUY(1,1,LIMITR,CLOSE);
思路其实就是这样的,至于只反手一次 我觉得可以通过判断日内交易次数来实现不,只要发现TOTALDAYTRADE=2次就认为反手过一次了
SELLSHORT( WIN2<-P1 ,HOLDING,LIMITR,CLOSE); BUYSHORT( WIN1<-P1 ,1,LIMITR,CLOSE); SELL( WIN1<-P1 ,HOLDING,LIMITR,CLOSE); BUY( WIN2<-P1 ,1,LIMITR,CLOSE); 这样应该就不会再同一根K线上平仓了 |
INPUT:P(10,0,10,1){建仓量},P1(0.2,0,1,1){初始止损幅度},P2(0.6,0,2,1){止盈幅度};
VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}VMIN = 092000;{用于隔夜高开或低开时间差}
WIN1:=0;
WIN2:=0;//止盈、止损、回撤控制
//账户信息:
资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;
开多:=;
平多:= ;
开空:= ;
平空:= ;
交易时间:=TIME>092000 AND TIME<151000;
IF HOLDING>0 THEN BEGIN
//多头平仓
IF 平多 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//多头收盘平仓
IF NOT(交易时间) THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//盈亏计算
IF ENTERBARS>0 THEN BEGIN
WIN1:=(C-ENTERPRICE)/ENTERPRICE*100;
IF WIN1>MAXPROFIT THEN
MAXPROFIT:=WIN1;
WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
END
//多头初始浮亏 P1% 止损
IF WIN1<-P1 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//多头利润大于 P2% 止盈
IF WIN1>P2 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
END
IF HOLDING<0 THEN BEGIN
//空头平仓
IF 平空 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头收盘平仓
IF NOT(交易时间) THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//盈亏计算
IF ENTERBARS>0 THEN BEGIN
WIN1:=(ENTERPRICE-C)/ENTERPRICE*100;
IF WIN1>MAXPROFIT THEN
MAXPROFIT:=WIN1;
WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
END
//空头初始浮亏超过 P1% 止损
IF WIN1<-P1 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头利润大于 P2%止盈
IF WIN1>P2 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
END
IF HOLDING=0 THEN BEGIN
//多头开仓
IF 交易时间 AND 开多 THEN BEGIN
BUY(1,P,LIMITR,CLOSE);
MAXPROFIT:=0;
END
//空头开仓
IF 交易时间 AND 开空 THEN BEGIN
BUYSHORT(1,P,LIMITR,CLOSE);
MAXPROFIT:=0;
end
END;
我希望在我第一次 浮亏 P1% 止损 后反手 而反手后再亏P1%就止损立场。