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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 有关优化策略模型的问题

   

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


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

主题:有关优化策略模型的问题

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


加好友 发短信
等级:论坛游侠 帖子:199 积分:0 威望:0 精华:0 注册:2020/11/19 12:28:26
有关优化策略模型的问题  发帖心情 Post By:2020/11/27 13:16:41    Post IP:123.159.197.51[显示全部帖子]

为了提高程序化运行效率,少占用电脑内存,使用金字塔的自定义数据功能来加强改善跨周期引用指标的效率。


http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=74267


我想优化我的策略,能否帮我在策略思路不变的情况下让它最精简呢?

代码如下:
新建MM指标:
M1:MA(C,5);
M2:CLOSE;
M3:MA(C,10);
M4:MA(C,20);

--------------------------------------------------------------
MA5:MA(CLOSE,5);
MA10:MA(CLOSE,10);
MA20:MA(CLOSE,20);
MA30:MA(CLOSE,30);
MA60:MA(CLOSE,60);
MA120:MA(CLOSE,120)COLOR0000FF;


MA1:="MM.M1#WEEK";
MA2:="MM.M2#WEEK";
MA3:="MM.M3#WEEK";//调用周线的均线指标

MAA1:="MM.M1#DAY";
MAA2:="MM.M2#DAY";
MAA3:="MM.M3#DAY";
MAA4:="MM.M4#DAY";//调用日线的均线指标

AA:=MAA2>MAA1 AND MAA2>MAA3 AND MAA2>MAA4;
BB:=MAA2<MAA1 AND MAA2<MAA3 AND MAA2<MAA4;


A:=C>MA(C,5) AND C>MA(C,10) AND C>MA(C,20) ;
B:=C<MA(C,5) AND C<MA(C,10)  AND C<MA(C,20) ;

IF MA2>MA1  AND MA2>MA3 AND A AND AA  THEN BUY(HOLDING=0,35%,MARKET),PERTRADER;
IF  MA2<MA1  AND MA2<MA3 AND B AND BB THEN BUYSHORT(HOLDING=0,35%,MARKET),PERTRADER;

IF C<=MA(C,10)-5*MINDIFF  THEN SELL(HOLDING>0,HOLDING,MARKET);
IF C>=MA(C,10)+5*MINDIFF THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);


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


加好友 发短信
等级:论坛游侠 帖子:199 积分:0 威望:0 精华:0 注册:2020/11/19 12:28:26
  发帖心情 Post By:2020/11/27 15:29:51    Post IP:223.104.159.235[显示全部帖子]

你刚才说的引用5周线时可以以用过去四周的周线价格+当前小周期价格计算,来替代直接调用大周期的五日均线。
这样思路是很好,起码回测会接近实际。

但是你看到我还有引用10周线和20日线这些数据,如果都用你说的这思路来修改,
会不会导致软件运行变得非常沉重,占用大量内存呢?

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


加好友 发短信
等级:论坛游侠 帖子:199 积分:0 威望:0 精华:0 注册:2020/11/19 12:28:26
  发帖心情 Post By:2020/11/27 15:43:01    Post IP:223.104.159.235[显示全部帖子]

好的,那那其他引用日线中的5日线,10日线和20日线也这样改变了。


代码是不是ref(c,1)呢

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


加好友 发短信
等级:论坛游侠 帖子:199 积分:0 威望:0 精华:0 注册:2020/11/19 12:28:26
  发帖心情 Post By:2020/11/27 16:13:00    Post IP:223.104.159.235[显示全部帖子]


MA1:="MM.M1#WEEK";  你这个是4周均线的价格吧,这个均线价格是最近四周(包括本周的收盘价)的收盘价想加除以4得来的。这样还是会把最近那周的收盘价算进去,这样不行吧。


要用(ref(c,4)+ref(c,3)+ref(c,2)+ref(c,1)+小周期的c)/5来得到实时变动的5周线吧??

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


加好友 发短信
等级:论坛游侠 帖子:199 积分:0 威望:0 精华:0 注册:2020/11/19 12:28:26
  发帖心情 Post By:2020/11/27 16:58:34    Post IP:223.104.159.235[显示全部帖子]

AA:=MAA2>MAA1 AND MAA2>MAA3 AND MAA2>MAA4;
BB:=MAA2<MAA1 AND MAA2<MAA3 AND MAA2<MAA4;

如果把这两个AA和BB当但MM指标里,

那在主策略编辑部里引用他们要怎么写的

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


加好友 发短信
等级:论坛游侠 帖子:199 积分:0 威望:0 精华:0 注册:2020/11/19 12:28:26
  发帖心情 Post By:2020/11/28 11:43:06    Post IP:112.14.87.129[显示全部帖子]

老师你上次说:
唯一我觉得可以优化的地方是这里:
AA:=MAA2>MAA1 AND MAA2>MAA3 AND MAA2>MAA4;
BB:=MAA2<MAA1 AND MAA2<MAA3 AND MAA2<MAA4;

因为这几个变量(MAA1...MAA4)都是一个周期下的。这个判断完全可以放到上面被调用的那个指标里。然后你只需要调用AA,BB就行了。



然后我按照你的思路进行修改,具体如下:
新建MM被引用指标:
M1:MA(C,5);
M2:CLOSE;
M3:MA(C,10);
M4:MA(C,20);

AA:M2>M1 AND M2>M3 AND  M2>M4;
BB:M2<M1 AND M2<M3 AND  M2<M4;
---------------------------------------------------------------------
主策略编辑框里:
AAA:="MM.AA#DAY";
BBB:="MM.BB#DAY";

然后在其他条件都完全一样的前提下进行历史回测,
发现结果不一样了。请问我这样编写是正确的吗





[此贴子已经被作者于2020/11/28 11:44:57编辑过]

 回到顶部