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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
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  //连亏次数)函数,也没有满足我的策略设计要求。


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/11/22 16:03:03    Post IP:180.169.30.6[只看该作者]

ss:=2;
globalvariable:n=0;

if tbuyholdingex('','',2)+TREMAINQTY(1,'','')=0 and 开多条件 then begin
 if tnumprofit(1)>=0 then n:=0;
 if tnumprofit(1)<0 then n:=n+1;
 tbuy(1,ss+n,mkt);
end

if tsellholdingex('','',2)+TREMAINQTY(3,'','')=0 and 开空条件 then begin
 if tnumprofit(1)>=0 then n:=0;
 if tnumprofit(1)<0 then n:=n+1;
 tbuyshort(1,ss+n,mkt);
end

我用开仓时计算全局变量的方法,你试试看


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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[只看该作者]

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

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/11/22 16:20:54    Post IP:180.173.193.42[只看该作者]

好的


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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[只看该作者]

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

 

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


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/11/22 17:01:12    Post IP:180.169.30.6[只看该作者]

并不是,开仓条件就限定住了必须无持仓无未成交单


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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。

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


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/11/23 10:07:45    Post IP:180.169.30.6[只看该作者]

那么加仓时,有没有持仓判断的?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
tmxker
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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之间循环。不知问题出在代码的何处?应该框架是对的(此框架也是参照你在论坛里给出的代码写出的),麻烦你研究解决我的这个问题,我是付费专业版用户。我很需要这个策略模型的正常运行,拜托啦。


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