以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  包含多空完整的止损,移动止赢交易  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=2307)

--  作者:wzywzy292
--  发布时间:2010/7/31 9:24:46
--  包含多空完整的止损,移动止赢交易
 {代码工作在图表自动交易模式下
当出现开仓后,开仓价格相比,最大损失超过2%止损
当出现盈利后,与最大盈利价格相比,回落到60%幅度后止赢离场}

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

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

//出现浮动亏损比如2%平仓
止损多:SELL(win < -2,0);
 
// 出现最高盈利后,回落到盈利的60%平仓出场
止赢多:SELL(win2 >= 60 and openprofit > 0, 0);

//开仓
IF CROSS(MA2,MA1) THEN
BEGIN
 BUYSHORT(1,1);
 maxprofit:=0;
END

//平仓
SELLSHORT(CROSS(MA1,MA2),0);

//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;

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%平仓
止损空:SELLSHORT(win < -2,0);
 
// 出现最高盈利后,回落到盈利的60%平仓出场
止赢空:SELLSHORT(win2 >= 60 and openprofit > 0, 0);


--  作者:wzywzy292
--  发布时间:2010/7/31 9:29:02
--  
 admin老师:早安!!!
想讨教一个问题:止损、止赢后如果要开反手该如何编写,谢谢!!!
[此贴子已经被作者于2010-7-31 9:35:08编辑过]

--  作者:msedu
--  发布时间:2010/7/31 11:37:06
--  

计算,盈利幅度,你这个好像没考虑,做多做空啊!