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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]有什么办法可以提高跨周期指标调用的效率

   

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


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

主题:[求助]有什么办法可以提高跨周期指标调用的效率

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


加好友 发短信
等级:新手上路 帖子:19 积分:0 威望:0 精华:0 注册:2019/1/5 20:04:24
[求助]有什么办法可以提高跨周期指标调用的效率  发帖心情 Post By:2020/4/6 11:49:35    Post IP:59.58.207.153[只看该作者]

用debugfile记录时间发现程序资源占用最多的地方在于stkindi跨周期调用指标数据,大概每次调用或读取一次要占用1-5ms时间,品种多了,指标多了,耗时就显得太多了。比如20个品种,每个品种5个指标公式,每个指标公式下边有5个不同参数,相当于每个计时器周期调用指标次数为20*5*5=500次,每次平均4ms的话就得占用2s时间了。比如以下为调用ema指标公式,读取3个不同参数的指标
set bema = marketdata.STKINDI(scode,smarket,"ema",0,bperiod,,zbcount)
bema5_0 = bema.GetBufData("ema5",zbcount-1)
bema12_0 = bema.GetBufData("ema12",zbcount-1)
bema36_0 = bema.GetBufData("ema36",zbcount-1)
2个问题:
1.为什么这里占用资源这么多,是因为公司要遍历每根k线进行计算吗?
2.如何提高指标调用的效率,减少资源占用,除了使用自定义数据之外,因为自定义数据如果是要逐个品种逐个周期逐个参数去重新定义的话,要定义超过200个数据。。。工程量实在太大。

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2020/4/6 13:19:53    Post IP:114.216.151.112[只看该作者]

目前除了自定义数据能彻底解决速度问题外,再没有更简单有效的方法了。
你只能考虑优化你的公式代码,以及缩短计算数据来解决,相关参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=74267

 回到顶部