您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

通过设置提高金字塔软件的运行效率 [金字塔]

  • 咨询内容:

    以下所有功能介绍仅对2.0以上版本有效

     

    方法1:限制数据数量

       金字塔是面向高端用户的高端分析工具,所有品种的行情数据都保存至本地计算机,这样做的目的是可以快速的进行大量的品种的横向统计计算和相互之间的数据引用。所以默认安装时金字塔将会尽大可能的允许用户保存尽可能长的历史数据,但是历史数据如果保存过长,将会给公式系统的运算带来很大的负担,解决方法就是在运行时限制数据的使用数量,方法如下:

    Ctrl+O 选项-》维护选项卡,如图:

     

     
    此主题相关图片如下:qq截图20121021000842.jpg

     

    上图红色部分两个选项,默认安装后的数字是360周期,360周期对于绝大多数情况下的公式运算量是可以满足的,如果用户的公式系统需要更多的历史数据,只要改动上面的设置即可。

    图形显示:该设置主要用于图表上显示,第一次显示图表时初始使用的数据量使用该设置,如果用户按↓键增加图形显示量时,如果超过默认的360数量,系统会自动从硬盘中自动扩充该大小。

    内存保留:该部分主要是非图形显示的数量控制选项,例如选股、后台预警交易、指标排序、横向统计等。内存保留系统不会自动扩充大小,需要用户自行调整该选项。

    日内严格限制数据的使用数量:如果不启用该选项,对于小于日线周期级别的周期,只会对读取的历史数据进行限制,对于日内分笔生成的分时周期数据没有限制,也就是图表上的K线周期会大于默认的360周期,会随着交易的进行K线数据不断增加,如果用户使用的是分笔或者多秒K线,那么数据量还是非常大的。启用该选项后,会对图表上的数据量进行严格的限定,会显著提高速度,但是如果模型对数据周期敏感,那么启用该选项后可能会带来问题,因此启用该选项后应该多进行测试。

     

    方法2:通过降低刷新频率和当日显示来提高速度

     

    报表刷新时间:报价表(动态显示牌)的刷新时间默认为500毫秒一次,如果系统已经比较卡占用CPU资源较大,那么建义提高此选项设置。

    指标排序更新:报价表上的用户自定义指标数据栏的刷新时间,默认300秒一次,如果希望盘中即时刷新而降低该频率将会导致CPU的占用陡然增大。

    盘中延迟刷新:这是个重要的选项,图表K线图上的指标不是每来一笔TICK都会刷新的,为了提高软件的效率,默认为1.5秒刷新一次,此数值设置过小将会显著提高CPU的占用,如果用户设计的指标比较复杂或者图形使用的数据过多导致系统运行速度缓慢,那么可以将此选项设置高一些,这样可以让软件运行的顺畅一些。

    K线图和分时图仅用当日数据:如果在分笔、多秒或者1分钟数据周期下,不涉及到昨日的历史数据,那么建义勾选此选项。

    图表程式化交易中的高频选项:勾选此选项后,盘中延迟刷新设置 将会失效,系统每来一笔TICK,将会对图表做一次刷新,如果你的公式或数据量比较大,那么将会显著加重系统负担。

     

     

    方法3:通过调整公式系统的属性

     

    通过上图的红色部分,有两个地方可以进行调整,下面我们将分别介绍

    运行模式:2.0版之后的金字塔支持序列和逐周期两种模式,其中序列模式是运行效率最高的一种,逐周期模式只建议在一些特殊场合使用,比如带全局变量的需要逐周期运行的算法,如使用BUY等新交易系统的情况下等等。普通技术指标,ENTERLONG,TBUY后台自动交易等公式,建议用户在序列模式下运行,效率会得到大幅提升。在此提醒用户注意:很多用户为了方便,将用于后台自动交易公式,BUY,TBUY等交易混在一个公式里使用,在初期调试编写过程中这样是可以的,但是如果一旦模型确立编写调试完毕后,请将只能用于图表逐周期模式下的BUY指令去掉,在序列模式下运行我们的后台自动交易公式。否则就只能以逐周期模式运行,既降低了效率,又在后台执行中执行了没有必要的BUY指令,进一步增加了无谓的计算量。但是有特殊目的的算法除外,比如用户想通过BUY指令的虚拟持仓优点来控制实际下单量等等高级用法。

    快速按钮:对于需要固定数量的图表公式,或者需要固定数量就可以计算得到最后一个周期的用于后台交易或者选股的公式来说,使用该选项无疑是最能提高效率的一种了,对于图表限制,可以使公式系统的数据计算不必依赖图表显示的多少,对于后台交易,由于我们通常只需要最后一个周期的数据,只要我们在公式编写时,知道一个正确计算最后周期的信号即可。

     

    方法4:通过公式编写技巧

    一个简单的例子:

    ENTERLONG:CROSS(C,MA(5,10));

    EXITLONG:CROSS(MA(5,10),C);

    通过上面的语句,我们看到了,MA(5,10)其实是被连续使用了两次,这样的重复执行函数调用,必然会带来不必要的运算开支。改进方法如下:

    MA5:=MA(5,10);

    ENTERLONG:CROSS(C,MA5);

    EXITLONG:CROSS(MA5,C);

    通过中间变量MA5,保存函数调用结果,通过重复使用内部变量MA5,达到提高效率的目的。

     

    通过IF控制语句

    通过使用IF ... THEN 控制语句,对于公式的条件进行判断,如果发现需要必要条件时再来进入到内部进行计算,否则就不执行了。

    IF 条件达到 THEN

      BEGIN

       //执行条件内语句

      END

     

    方法5:如果你在公式中引用了过多的跨周期指标调用,那么使用自定义数据功能可以极大的减少重复计算的工作量

    参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=10547

     

    [此贴子已经被作者于2012-10-21 0:17:14编辑过]

     

  • 金字塔客服:  越来越复杂了。一直跟过来的还好,要是新手多半晕菜。建议每个页面添加相应的帮助说明或链接。

     

  • 用户回复:

    请教版主 快速按钮的周期是什么概念---指的是日线数据周期?

     

    数据主要是取10天之内的高低收  填多少周期合适?

     

    比如在1分钟上跨周期引用5日或5月均线 "ma.ma1#DAY或month" 分别设多少周期合适  

     

    谢谢

    [此贴子已经被作者于2010-10-16 18:35:02编辑过]

     

  • 网友回复:

    快速按钮上的周期,与日线或者周线无关,指的是数据数量

     

  • 网友回复:

     

     

    正是因为不懂怎么设置周期所以才提问,目的是想了解怎么设置!而不是仅仅得到一个数据数量的常识

      

    楼主发帖的本意是方便大家   但设置方法没讲清楚

    [此贴子已经被作者于2010-10-16 19:57:26编辑过]

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容