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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请合并两个策略

   

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


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

主题:请合并两个策略

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


加好友 发短信
等级:新手上路 帖子:39 积分:164 威望:0 精华:0 注册:2011/7/1 23:19:12
请合并两个策略  发帖心情 Post By:2013/5/3 14:54:34    Post IP:112.193.11.12[只看该作者]

以下两个策略都能独立编译运行,但合并成一个后应用于同一标的会导致错误的提前卖出(本人能力达不到,主要是两个策略合并后买入卖出的数量、时间不能互相干扰),请高手帮忙合并一下,使其能形成单一策略顺利进行回测。谢谢。

 

//策略1.

if ref(c,1)>ref(c,2) then buy(1,100%,limitr,o);//当昨日收阳买入。

if holding>0 and enterbars>=1 and c>=enterprice then sell(1,100%,thisclose);//买入后赚钱就卖。

if holding>0 and enterbars=3 then sell(1,100%,thisclose);//3个bar不管输赢都卖掉。

 

 

//策略2

if ref(c,2)>ref(c,3) then buy(1,100%,limitr,o); //当前日收阳买入。(注意本买入条件将于于策略1买入的后一日成立)

if holding>0 and enterbars>=1 and c>=enterprice then sell(1,100%,thisclose);//买入后赚钱就卖。

if holding>0 and enterbars=2 then sell(1,100%,thisclose);//2个bars不管输赢卖掉。

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
附件图片示意


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


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

策略合并,把合并后的策略思路说一下,简单的合并不一定有意义


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:39 积分:164 威望:0 精华:0 注册:2011/7/1 23:19:12
  发帖心情 Post By:2013/5/3 16:36:40    Post IP:112.193.11.12[只看该作者]

就是上述分策略讲的。

合并缘由是本来只有策略1,后来我发现在策略1的买入bar的下一个bar还可以再次获取一次机会。因此有了策略2.

策略1和2只是买入相差一bar,卖出时限是一致的。策略1是最多3bar卖出,策略2于是就是最多2bar卖出.

 

要说里面的理论意义,就是赌策略1买日后的下一个bar的O和C之间存在大概率多头价差。


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


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

globalvariant:hold1=0,hold2=0;

//策略1.

if holding>0 and hold1>0 and enterbars>=1 and c>=enterprice then

begin

  hold1:=hold1-1;

  sell(1,100%,thisclose);//买入后赚钱就卖。

end;

if holding>0 and hold1>0 and enterbars=3 then

begin

  hold1:=hold1-1;

  sell(1,100%,thisclose);//3个bar不管输赢都卖掉。

end; 

if ref(c,1)>ref(c,2) then

begin

  hold1:=hold1+1;

  buy(1,1,limitr,o);//当昨日收阳买入。

end;

 

策略2你用相同的原理改写,注意全局变量用hold2那个

 

另外,最好遵循先平后开原则,当然你要先开后平也行,只是容易弄不好


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


加好友 发短信
等级:新手上路 帖子:39 积分:164 威望:0 精华:0 注册:2011/7/1 23:19:12
  发帖心情 Post By:2013/5/3 19:55:31    Post IP:112.193.11.12[只看该作者]

LS兄弟的不行。

问题出在:当策略1头一日买入后要次日+红盘两个条件才能卖出 即 enterbars>=1 and c>enterprice

而策略2的买入日就是策略1的次日。此时enterbars已经被刷新了。当日=策略2的买入日=本意策略1的卖出日其enterbars值已经不是1而是0了。

因此策略1的所有卖出都被推迟了一日。

 

不知道如何来替代enterbars 的作用

 

 


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/4 21:33:13    Post IP:183.235.249.123[只看该作者]

哦,我明白你的意思了,我忽略了你用了这个条件,这种情况下无法用enterbars,因为他只表示最近信号的了,你还可以用我的办法,只是要继续用超全局变量了:

globalvariant:hold1=0,hold2=0,enterbars1=-1,enterbars2=-1,enterprice1=0,enterprice2=0;

//策略1.

enterbars1:=enterbars1+1;

if holding>0 and hold1>0 and enterbars1>=1 and c>=enterprice1 then

begin

  hold1:=hold1-1;

  enterbars1:=0;

  enterprice1:=c;

  sell(1,100%,thisclose);//买入后赚钱就卖。

end;

if holding>0 and hold1>0 and enterbars=3 then

begin

  hold1:=hold1-1;

  sell(1,100%,thisclose);//3个bar不管输赢都卖掉。

end; 

if ref(c,1)>ref(c,2) then

begin

  hold1:=hold1+1;

  buy(1,1,limitr,o);//当昨日收阳买入。

end;

 

策略2你用相同的原理改写,应该不用我写给你了


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/4 21:33:43    Post IP:183.235.249.123[只看该作者]

对了,忘记说了,好像要勾上“仅刷最后一根K线”

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


加好友 发短信
等级:新手上路 帖子:39 积分:164 威望:0 精华:0 注册:2011/7/1 23:19:12
  发帖心情 Post By:2013/5/6 13:50:46    Post IP:112.193.8.91[只看该作者]

多谢指点。

虽然上面你那个程序还是不行,但是我已经明白了。


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/6 23:05:33    Post IP:183.235.249.11[只看该作者]

呵呵,最重要就是你明白,我写的也没测试,只是表示个意思,我刚才也看了,至少拼写就错了globalvariant,不好意思


 回到顶部