
等级: 新手上路
- 注册:
- 2023-2-28
- 曾用名:
|
ma60:ma(c,m) ;
INPUT:ss(1,1,200,1) m(60,1,200,1) n(100,1,200,1) ;
ma100:ma(c,n) ;
kd1:=c>max(ma60,ma100);
kd2:=h>ref(h,1);
kd3:=c>ref(c,1);
kd:=ref(kd1,1) and kd2 and kd3 ;
kk1:=c<min(ma60,ma100);
kk2:=l<ref(l,1);
kk3:=c<ref(c,1);
kk:ref(kk1,1) and kk2 and kk3;
//多单开仓模块******************************************************************************
//开多单
IF kd AND HOLDING=0 THEN BEGIN
多开:BUY(1,1,LIMIT,c);
END
//多单止损
IF AVGENTERPRICE-C>100*MINDIFF AND HOLDING>0 THEN BEGIN
多单固定止损:SELL(1,HOLDING,MARKET);
END
//多单移动止盈模块******************************************************************************
variable:maxprofit=0;//有仓位时最大获利幅度
//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;
//多单更新记录的部分
if holding > 0 and enterbars > 0 then
begin
win:=(c-AVGENTERPRICE)/enterprice*100; //记录最大盈利
if win>maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
//出现最高盈利后,回落到盈利的N%平仓出场.
多移动止赢:SELL(win2 >= 90 and openprofit > 0, 0,limit,c);
//**********************************************************************************************************************************
//**********************************************************************************************************************************
//空单开仓模块******************************************************************************
//开空单
IF kk AND HOLDING=0 THEN BEGIN
空开:BUYSHORT(1,1,LIMIT,c);
END
//空单止损
IF C-AVGENTERPRICE>100*MINDIFF AND HOLDING<0 THEN BEGIN
空单固定止损:SELLSHORT(1,HOLDING,MARKET);
END
//空单移动止盈模块******************************************************************************
variable:maxprofit=0;//有仓位时最大获利幅度
//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;
//空单更新记录的部分
if holding < 0 and enterbars > 0 then
begin
win:=(AVGENTERPRICE-c)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
空移动止盈:SELLshort(win2 >= 90 and openprofit > 0, 0,limit,c);
持仓:HOLDING,COLORRED,NODRAW;
请问老师这样移动止盈对吗?为什么图表上运行的结果不一样呢?
|
|