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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 问题代码求助老师帮助修正

   

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


  共有2602人关注过本帖树形打印复制链接

主题:问题代码求助老师帮助修正

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


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
问题代码求助老师帮助修正  发帖心情 Post By:2016/11/22 15:49:15    Post IP:220.163.43.40[显示全部帖子]


我的问题策略模型代码要求说明:

1,非多即空;底仓交易手ss=2;
2,若平仓盈利时,不加仓;
3,若平仓亏损,则:亏1次,加仓1手ss+1,连亏2次,加仓2手ss+2... 直到连亏6次时,加仓6手ss+6;此后若再出现连亏,停止加仓,直到反向交易,从ss=2手开始交易。

我写的后台交易代码如下,经反复测试,或变通改写,均不能正确满足我的设计要求。出现的技术问题是,开多、开空起步交易正常,当出现多次连亏后,多空反手交易仅能前2次加仓正确,

多头仓到ss+1=3,空头仓到ss+2=-4,后面的连亏交易就不会增加加仓量了。求金老师及各位专家老师帮助修改正确之,谢谢!

-----------------------------

详细代码如下:

runmode:0;                     //以0逐K线模式运行(1系列模式)     

//声明参数
input:ss(2,1,10,1);            //底仓交易手数
//声明变量                          
globalvariable:kcs=0;           //连亏次数
globalvariable:jyss=0;          //交易手数(底仓+加仓)


////一、平空

   IF (平空条件) and tholding<0 then begin
   tsellshort(1,0,mkt);                        
   END                        
   if tnumprofit(1)>=0 or time=closetime(0) or time=opentime(1) then kcs:=0;            
   if tnumprofit(1)<0 then kcs:=kcs+1;

//连亏交易手数
   if kcs=0 then jyss:=ss;
   if kcs=1 then jyss:=ss+1;                                                       
   if kcs=2 then jyss:=ss+2;   
   if kcs=3 then jyss:=ss+3; 
   if kcs=4 then jyss:=ss+4;        
   if kcs=5 then jyss:=ss+5;  
   if kcs>=6 then jyss:=ss+6;

////开多加仓               
IF (开多条件) and tholding=0 then begin           
   tbuy(jyss>0,jyss,mkt);  
   kcs:=0;   
   jyss:=0;   
   END 

////二、平多
   IF(平多条件)and tholding>0 then begin
   tsell(1,0,mkt);                             //全平多,若有
   END
   if tnumprofit(1)>=0 or time=closetime(0) or time=opentime(1) then kcs:=0;            
   if tnumprofit(1)<0 then kcs:=kcs+1;

//连亏交易手数
   if kcs=0 then jyss:=ss;
   if kcs=1 then jyss:=ss+1;                                                       
   if kcs=2 then jyss:=ss+2;   
   if kcs=3 then jyss:=ss+3; 
   if kcs=4 then jyss:=ss+4;        
   if kcs=5 then jyss:=ss+5;  
   if kcs>=6 then jyss:=ss+6;

//开空加仓  
IF(开空条件)and tholding=0 then begin          
   tbuyshort(jyss>0,jyss,mkt);        
   kcs:=0;   
   jyss:=0;      
   END 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/22 15:53:43    Post IP:220.163.43.40[显示全部帖子]

TNUMSEQLOSS  //连亏次数

我还使用(TNUMSEQLOSS  //连亏次数)函数,也没有满足我的策略设计要求。


 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/22 16:14:27    Post IP:220.163.43.40[显示全部帖子]

谢谢金老师!我明天测试后,如有发现问题,将详细说明,再请指正。

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/22 16:54:18    Post IP:220.163.43.40[显示全部帖子]

金老师,从代码看,这是账户里已有多头/空头持仓后的追加开仓吧?

 

我的策略模型是,空头单平仓亏损 -->反手开多并+仓,多头单平仓亏损 -->反手开空并+仓。。。,


 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/23 9:51:13    Post IP:220.163.43.40[显示全部帖子]

金老师,我昨夜盘反复测试了你给出的“加仓代码”,结果是:反手多空加仓均无效果,没有加仓动作,只有底仓ss。

请你再研究一下我的这个问题,谢谢。


 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/23 10:58:50    Post IP:220.163.43.40[显示全部帖子]

没有,否则,就发生加仓了ss+1。

 

金老师,我贴的代码起步运行是正常的,如果连续亏损的话,正反手交易能发生加仓到ss+2,就停止了,总交易手数就在3和-4之间循环。不知问题出在代码的何处?应该框架是对的(此框架也是参照你在论坛里给出的代码写出的),麻烦你研究解决我的这个问题,我是付费专业版用户。我很需要这个策略模型的正常运行,拜托啦。


 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/23 11:24:35    Post IP:220.163.43.40[显示全部帖子]

持仓判断=0 ,这是反向开仓时要求上次的仓单已全平,由于亏损,才要求反手加仓开仓(ss+1)。

因为平仓后判断,如果亏损,反手开仓并加仓。例如,多头信号开仓(ss=2手);空头信号发出时,多头全平仓(ss=2手),由于平仓为亏损,并反手加仓开空(ss+1=3手)。

 

------------------

我的问题策略模型代码要求说明:

1,非多即空;底仓交易手ss=2;
2,若平仓盈利时,不加仓;
3,若平仓亏损,则:亏1次,加仓1手ss+1,连亏2次,加仓2手ss+2... 直到连亏6次时,加仓6手ss+6;此后若再出现连亏,停止加仓,直到反向交易,从ss=2手开始交易。

[此贴子已经被作者于2016-11-23 11:25:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/23 13:31:25    Post IP:220.163.43.40[显示全部帖子]

是走完k线下单

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/23 14:06:40    Post IP:220.163.43.40[显示全部帖子]

V3.92

 

我试试


 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:70 积分:285 威望:0 精华:0 注册:2011/10/12 15:57:24
  发帖心情 Post By:2016/11/23 14:15:57    Post IP:220.163.43.40[显示全部帖子]


msgout(islastbar,'连亏次数 = '+numtostr(n,0));
msgout(islastbar,'上次盈亏 = '+numtostr(tnumprofit(1),2));

 

金老师,这两行,放在代码的什么地方?


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