欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → 请高手帮忙看看问题出在哪里

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5776人关注过本帖平板打印复制链接

主题:请高手帮忙看看问题出在哪里

帅哥哟,离线,有人找我吗?
kingmoonwang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:261 积分:1358 威望:0 精华:0 注册:2011/12/13 10:55:10
请高手帮忙看看问题出在哪里  发帖心情 Post By:2012/2/22 23:12:06 [只看该作者]

看了论坛上几位大侠的帖子。整合了一个每亏损一次加仓一手,一直加至m手,并加上了止盈止损的模板。不过加上止盈止损以后就有问题了,再测试就不能正确加仓了。感觉应该是止盈止损部分里全局变量赋值的原因。请高手帮忙看看问题出在哪里?

 

 

Input:m(5,1,10,1)

Variable: maxprofit=0;

Variable: sellnum=1;

Variable: buynum=1;

ma5:=ma(c,5);
ma10:=ma(c,10);

Longcond: = cross(ma5,ma10);

Shortcond: = cross(ma10,ma5);

 

if holding>0 then begin
 if Shortcond and c>enterprice then begin

  sell(1,holding,thisclose);
  sellnum:=1;
  buynum:=1;
  end 
 
 
 if Shortcond and c<enterprice then begin

  sell(1,holding,thisclose);
  if sellnum<m then sellnum:=sellnum+1;
  else sellnum:=m; 
  end
 
end


if holding<0 then begin
 if Longcond and c<enterprice then begin

   sellshort(1,holding,thisclose);
   buynum:=1;
   sellnum:=1;
   end

  
 if Longcond and c>enterprice then begin

   sellshort(1,holding,thisclose);
   if buynum<m then buynum:=buynum+1;
   else buynum:=m;
   end
  
end


if holding=0 then begin
 if Longcond then begin

  buy(1,buynum,thisclose);
  maxprofit:=0;
  end


 if Shortcond then begin

  buyshort(1,sellnum,thisclose);
  maxprofit:=0;
  end


end

end


    

 


//止盈止损,止盈止损后下次开仓数归1

win:=0;
win2:=0;


//多头止盈


if holding > 0 and enterbars > 2 then
begin
 win:=(c-enterprice)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;  
  win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

 

 

//空头止盈
if holding < 0 and enterbars > 2 then

begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
  win2:=(maxprofit-win)/maxprofit*100;//最大盈利后的回调幅度
 
end

 

//出现浮动亏损比如2%平仓

if holding>0  then begin
if win<-2 and numprofit(1)<0 then begin
  多止损: sell(1,holding,thisclose);
   buynum:=1;
   sellnum:=1;
   end
end

 

if holding<0 then begin

if win<-2  and numprofit(1)<0 then
   空止损: sellshort(1,holding,thisclose);
   buynum:=1;
   sellnum:=1;
   end

 

 

//出现最高盈利后,回落到盈利的60%平仓出场
if holding>0 then begin
if  win2>=60 and openprofit>0  then
   多止盈: sell(1,holding,thisclose);
     buynum:=1;
     sellnum:=1;
   end

 

if holding<0 then begin
if win2>=60 and openprofit>0   then
   空止盈: sellshort(1,holding,thisclose);
    buynum:=1;
    sellnum:=1;
   end

[此贴子已经被作者于2012-2-22 23:13:20编辑过]

 回到顶部
总数 14 1 2 下一页