此主题相关图片如下:111.jpg
请问上图当多头盈利出现回撤后进行多头止盈,为什么多头止盈的地方出现开多,是不是因为这时候方向并没有反转还是多头趋势,如果是这样如何多头止盈出的开多
//参数设置:
INPUT : M(9,2,60,6),N(14,1,100,1),P(26,20,100,8),S(12,5,40,4);
INPUT : SS(40,1,100,1);//持仓手数
VARIABLE : maxprofit = 0;//有仓位时最大获利幅度
win1 := 0;
win2 := 0;//止损、止盈、回撤控制
//需要的中间变量
//MACD指标
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA := EMA(DIFF,M);
MACD1 := 2 * (DIFF-DEA), COLORSTICK;
//开平仓条件
开多 := CROSS(DIFF , DEA);
开空 := CROSS(DEA , DIFF);
平空 := 开多;
平多 := 开空;
//交易系统
IF HOLDING > 0 THEN BEGIN
//多头平仓
IF 平多 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
//多头浮动亏损达3%止损
IF win1 < -3 THEN
多头止损:SELL(1,HOLDING,LIMITR,CLOSE);
//多头获利后回撤20%止盈
IF win2 >15 AND win1 > 10 THEN BEGIN
多头止盈:SELL(1,HOLDING,LIMITR,CLOSE),ORDERQUEUE;
END
IF HOLDING < 0 THEN BEGIN
//空头平仓
IF 平空 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
//空头浮动亏损达3%止损
IF win1 < -3 THEN
空头止损:SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头获利后回撤20%止盈
IF win2 > 15 AND win1 > 10 THEN
空头止盈:SELLSHORT(1,HOLDING,LIMITR,CLOSE);
END
IF HOLDING=0 THEN BEGIN
//多头开仓
IF 开多 THEN BEGIN
BUY(1,SS,LIMITR,CLOSE);
maxprofit := 0;
END
//空头开仓
IF 开空 THEN BEGIN
BUYSHORT(1,SS,LIMITR,CLOSE);
maxprofit := 0;
END
END
上面一个简单的例子,请帮忙改下如果改变策略使得当出现盈利回撤平仓后反手开仓