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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 请问老师如何实现模型组合后的交易次数

   

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


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

主题:请问老师如何实现模型组合后的交易次数

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


加好友 发短信
等级:蜘蛛侠 帖子:1089 积分:0 威望:0 精华:0 注册:2013/11/4 11:07:43
请问老师如何实现模型组合后的交易次数  发帖心情 Post By:2014/2/16 0:55:51 [只看该作者]

 

 

下面是2个模型组合,图表交易。请问老师模型1与模型2分别交易不超过2次,如何改编呢?

 

input: cang2(1,0,10,1);
variable:cc1=0,cc2=0;

 

runmode:0;

variable:zs=0,cc1=0;

ma5:=ma(c,5);

ma20:=ma(c,20);

entertime:=time>100000 and time<144500;

if holding>0 and cc1<=0 then sell(1,1,limitr,o);

if holding<0 and cc1>=0 then sellshort(1,1,limitr,o);

if holding=0 and cc1>0 then buy(1,1,limitr,o);

if holding=0 and cc1<0 then buyshort(1,1,limitr,o);

if cc1>0 and l<zs then begin

sell(1,1,limitr,min(o,zs-0.6));

cc1:=0;

end

if cc1<0 and h>zs then begin

sellshort(1,1,limitr,max(o,zs+0.6));

cc1:=0;

end

if cc1>0 and ma5<ma20 then cc1:=0;

if cc1<0 and ma5>ma20 then cc1:=0;

if cc1=0 and ma5>ma20 and entertime then begin

cc1:=1;

zs:=c-10;

end

if cc1=0 and ma5<ma20 and entertime then begin

cc1:=-1;

zs:=c+10;

end

if time>=150000 then begin

cc1:=0;

end

/////////////////////////////////以上是模型1

/////////////////////////////////模型2——20周期反手
hi:=ref(hhv(h,20),1);
lo:=ref(llv(l,20),1);
if cc2>0 and l<lo then begin
pc:=min(max(holding,0),cang2);
kc:=cang2-pc;
if pc>0 then sell(1,pc,limitr,min(o,lo-0.2)-0.6);
if kc>0 then buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);
cc2:=0;
end
if cc2<0 and h>hi then begin
pc:=min(abs(min(holding,0)),cang2);
kc:=cang2-pc;
if pc>0 then sellshort(1,pc,limitr,max(o,hi+0.2)+0.6);
if kc>0 then buy(1,kc,limitr,max(o,hi+0.2)+0.6);
cc2:=0;
end
if cc2=0 and h>hi then begin
pc:=min(abs(min(holding,0)),cang2);
kc:=cang2-pc;
if pc>0 then sellshort(1,pc,limitr,max(o,hi+0.2)+0.6);
if kc>0 then buy(1,kc,limitr,max(o,hi+0.2)+0.6);
cc2:=1;
end
if cc2=0 and l<lo then begin
pc:=min(max(holding,0),cang2);
kc:=cang2-pc;
if pc>0 then sell(1,pc,limitr,min(o,lo-0.2)-0.6);
if kc>0 then buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);
cc2:=-1;
end

/////////////////////////////////以上是模型2

 


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2014/2/16 17:55:26 [只看该作者]

模型1与模型2分别交易不超过2

这句话是什么意思呢?


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


加好友 发短信
等级:蜘蛛侠 帖子:1089 积分:0 威望:0 精华:0 注册:2013/11/4 11:07:43
  发帖心情 Post By:2014/2/17 7:58:06 [只看该作者]

以下是引用klc在2014/2/16 17:55:26的发言:

模型1与模型2分别交易不超过2

这句话是什么意思呢?

就是模1开仓不超过2次,模2开仓不超过2次。

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2014/2/17 9:08:18 [只看该作者]

variable:num=0;// 全局变量,控制交易次数,没开仓一次把这个值加1。

 

if holding=0 and cc1>0 and num<2 then

begin

buy(1,1,limitr,o);

num:=num+1;

end

 

if holding=0 and cc1<0 and num<2 then

being

buyshort(1,1,limitr,o);

num:=num+1;

end


 回到顶部
客人(123.97.*.*)
  5楼


  发帖心情 Post By:2014/2/17 11:23:34 [只看该作者]

以下是引用yukizzc在2014/2/17 9:08:18的发言:

variable:num=0;// 全局变量,控制交易次数,没开仓一次把这个值加1。

 

if holding=0 and cc1>0 and num<2 then

begin

buy(1,1,limitr,o);

num:=num+1;

end

 

if holding=0 and cc1<0 and num<2 then

being

buyshort(1,1,limitr,o);

num:=num+1加在开仓语句控制交易次数,结果交易信号几乎看不到了;如num:=num+1加在平仓语句中控制交易次数又控制不住,即交易超过2次,如模型不组合在一起分别运行则正常即不超过2次。昨天我已都试过了。老师上面的方法你实际试验的结果如何呀?

num:=num+1;

end


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


加好友 发短信
等级:蜘蛛侠 帖子:1089 积分:0 威望:0 精华:0 注册:2013/11/4 11:07:43
  发帖心情 Post By:2014/2/17 11:25:49 [只看该作者]

以下是引用yukizzc在2014/2/17 9:08:18的发言:

variable:num=0;// 全局变量,控制交易次数,没开仓一次把这个值加1。

 

if holding=0 and cc1>0 and num<2 then

begin

buy(1,1,limitr,o);

num:=num+1;

end

 

if holding=0 and cc1<0 and num<2 then

being

buyshort(1,1,limitr,o);

num:=num+1;

num:=num+1加在开仓语句控制交易次数,结果交易信号几乎看不到了;如num:=num+1加在平仓语句中控制交易次数又控制不住,即交易超过2次,如模型不组合在一起分别运行则正常即不超过2次。昨天我已都试过了。老师上面的方法你实际试验的结果如何呀?

end


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2014/2/17 11:32:38 [只看该作者]

因为num到2之后就不会再开仓了,你得加上个条件什么时候把num重置为0


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


加好友 发短信
等级:蜘蛛侠 帖子:1089 积分:0 威望:0 精华:0 注册:2013/11/4 11:07:43
  发帖心情 Post By:2014/2/17 13:37:23 [只看该作者]

以下是引用yukizzc在2014/2/17 11:32:38的发言:

因为num到2之后就不会再开仓了,你得加上个条件什么时候把num重置为0

重启在:收盘时重置为0的。还有问题:就是1分钟k线iF00品种开仓时经常是同根K开2次仓的,但num:=num+1一下子就超过了2次!

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


加好友 发短信
等级:蜘蛛侠 帖子:1089 积分:0 威望:0 精华:0 注册:2013/11/4 11:07:43
  发帖心情 Post By:2014/2/17 13:40:00 [只看该作者]

尤其是模型2同根K都开2次仓的,请老师怎样才能阻止这种同根K开2次仓呢?

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2014/2/17 13:50:59 [只看该作者]

if time=closetime(0) then num:=0;//  在代码后加上这句当time等于收盘时num重置为0

你开仓语句里加上一个开仓历时的判断ENTERBARS>0,这样如果当前k线出现开仓信号那么ENTERBARS=0,之后的开仓语句不会执行。


 回到顶部
总数 26 1 2 3 下一页