//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;
if holding > 0 and enterbars > 0 then
begin
win:=(c-enterprice)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
if holding < 0 and enterbars > 0 then
begin
win:=(enterprice-c)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
//出现浮动亏损比如2%平仓
止损:SELL(win < -2,0);
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:SELL(win2 >=60 and openprofit > 0, 0);
variable:maxprofit=0;//有仓位时最大获利幅度
//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
BUY(1,1);
maxprofit:=0;
END
//平仓
SELL(CROSS(MA2,MA1),0);
//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;
if holding > 0 and enterbars > 0 then
begin
win:=(c-enterprice)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
if holding < 0 and enterbars > 0 then
begin
win:=(enterprice-c)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
//出现浮动亏损比如2%平仓
止损:SELL(win < -2,0);
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:SELL(win2 >= 60 and openprofit > 0, 0);
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//*************
//特别注意:由于图表交易系统通常运行在走完一根K线模式下,本范例所给出的移动止损范例只是反映移动止损的逻辑思想。
//在资金回落幅度判断过程中,只是拿每一根K线的收盘价作为统计对象,因此丢失了一些时间细节。
//与真正的移动止损相比,这种图表移动止损是有时间延迟的,在使用过程中应当了解这种运行机制,避免不当使用造成的风险。
//*************
//定义参数
INPUT:N1(5,1,100,10),N2(10,1,120,10),N3(20,1,200,20),N4(60,1,200,20);
//绘制四条均线
MA1:MA(C,N1);
MA2:MA(C,N2);
MA3:MA(C,N3);
MA4:MA(C,N4);
//下单条件
COND1:=CROSS(MA2,MA1);
COND2:=CROSS(MA1,MA2);
//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AvGENTERPRICE>=0.1;
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.1;
SELL(DTYDZS,0,MARKET);
SELLSHORT(KTYDZS,0,MARKET);
//*************************************
//下单
SELL(COND2,0,MARKET);
SELLSHORT(COND1,0,MARKET);
BUY(COND1,30%,MARKET);
BUYSHORT(COND2,30%,MARKET);
//其他
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
交易系统-功能模块范例
这里有移动回落平仓的范例的就是上面的例子