以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  老师帮忙看下小问题...  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=34023)

--  作者:bob
--  发布时间:2012/12/25 21:26:21
--  老师帮忙看下小问题...

老师帮我看一下下面的模型是什么毛病?1.MA5上穿MA20 平空开多 MA5下穿MA20 平多 为什么加载了只有空头信号了?2.止盈和止损为什么都不出现,是语句有问题,还是我的参数不合理?

INPUT:m1(5,0,20,1),m2(20,0,20,1),m3(-2,-4,0,1),m4(60,0,100,1);
MA1:MA(CLOSE,M1);//
MA2:MA(CLOSE,M2);
variable:maxprofit=0;//有仓位时最大获利幅度
VARIABLE:maxprofit1=0;
//开仓
IF HOLDING=0 AND CROSS(MA1,ma2)  THEN
BEGIN
 BUY(1,1);
 maxprofit:=0;
END
//平仓
SELL(HOLDING>0 AND cross(ma2,MA1),0);
//判断当前持仓状态下的最大盈利
VARIABLE:win:=0;
VARIABLE:win2:=0;
if holding > 0 and enterbars > 0 then
begin
 win:=(c-enterprice)/enterprice*100;//%
 if win > maxprofit then
  maxprofit:=win;  //记录最大盈利
  win2:=(maxprofit-win); //最大盈利后的回调幅度
end
//出现浮动亏损比如2%平仓
多单止损:SELL(win < M3,0);
 //出现最高盈利后,回落到盈利的60%平仓出场
多单止赢:SELL(win2 >=M4 and openprofit >= 0, 0);
IF HOLDING=0 AND CROSS(ma2,MA1)  THEN
BEGIN
 BUYSHORT(1,1);
 maxprofit1:=0;
END
//平仓
SELLSHORT(HOLDING<0 AND CROSS(ma1,ma2) ,0);
//判断当前持仓状态下的最大盈利
VARIABLE:win1:=0;
VARIABLE:win3:=0;
if holding < 0 and enterbars > 0 then
begin
 win1:=(enterprice-c)/enterprice*100;
 if win1 > maxprofit1 then
  maxprofit1:=win1; //记录最大盈利
  win3:=(maxprofit1-win1); //最大盈利后的回调幅度
end
//出现浮动亏损比如2%平仓
空单止损:SELLSHORT(win < M3,0);
 //出现最高盈利后,回落到盈利的60%平仓出场
空单止赢:SELLSHORT(win2 >=M4 and openprofit >= 0, 0);

 


--  作者:admin
--  发布时间:2012/12/25 22:18:14
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332

建议仔细的看看问题4,学会金字塔的一些罪基本的调试技巧,这样你在编程遇到问题时,才能有更加针对性的解决方案或者问题