金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2556|回复: 9

关于性能优化问题

[复制链接]

14

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-1-8
曾用名:
发表于 2023-3-8 21:10 | 显示全部楼层 |阅读模式
为了提升跨周期引用效率,这样写:
if  between(time,90100,90500) then
begin
dzqop:=stkindiex('','cta05xg.output',0,6,-1,0) ;
dzqop2:=dzqop;
end

在条件不满足,是否就不会执行begin内的代码并能提升公式性能?

另外,类似这样的引用:
kptime2:=#yykptime.kptime2#,LINETHICK0;
好像直接把代码写在公式里面比通过#引用速度快很多,但看帮助说经过编译,同直接写公式没有区别,到底是否有区别?

我们现在#用的多了,好像很卡。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-9 09:01 | 显示全部楼层
用if条件控制的方式 没什么影响。

跨指标调用多了,就是可能会造成性能降低,因为指标调用相当于生成了一个指标副本在运行,增加资源消耗是必然的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-9 09:08 | 显示全部楼层
关于从代码编写角度提高效率的问题:
https://www.weistock.com/bbs/for ... &extra=page%3D1

可以参考下这里。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

14

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-1-8
曾用名:
 楼主| 发表于 2023-3-9 16:23 | 显示全部楼层

用if条件控制的方式 没什么影响。是说不能用这种方式提升性能吗?条件不满足,还会执行if里面的语句吗?如果不执行的话,如果里面属于跨周期引用等耗性能的代码,应该会提升不少性能的吧?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-9 16:40 | 显示全部楼层
对,就是用这种方式 并不能降低资源的占用。你可以认为只要你这个if条件满足了一次,这个被调用指标 就已经启动运行了,并不会因为你这个if 不满足了,就不执行了。if仅仅影响了你什么时候获取被调用指标计算的值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

14

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-1-8
曾用名:
 楼主| 发表于 2023-3-9 17:53 | 显示全部楼层
我是把这个值放在一个全局变量中的。按一般的程序思维,它应该是不满足就执行下一句吧?怎么会还运行呢?我这个是调用大周期的值。不满足还会去调用吗?逐k线是每个周期都再计算一次的。你说的是系列模式不能提高性能吧。逐k线每新出一根k线运行一次的吧?只计算最后一根k线选项选中还是不能提高性能吗?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-10 08:28 | 显示全部楼层
本帖最后由 技术009 于 2023-3-10 08:30 编辑


你这样想一下,我每次需要时候再去调用,我这个指标要重新使用历史数据计算一次,每次都这样 反而更浪费算力。
这个跨指标调用就是这么个机制,其实也没啥可讨论的 。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

14

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-1-8
曾用名:
 楼主| 发表于 2023-3-12 09:34 | 显示全部楼层
那利用类似:kptime2:=#yykptime.kptime2(22)#,LINETHICK0; 这样的方式,改变参数调用10,是否意味着性能消耗是10倍的增加?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-13 09:09 | 显示全部楼层
本帖最后由 技术009 于 2023-3-13 09:30 编辑

调用过程中 如果参数是动态变化的,可以这样认为:每一个新的参数 都导致一个新的调用。
除非你每个K都是一个新的参数调用,否则没那么夸张的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-3-13 09:11 | 显示全部楼层
不是,影响效率的因素主要是和数据量、和策略复杂度有关系。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-10 02:42 , Processed in 0.211908 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表