金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 6486|回复: 13

跨周期调用的问题

[复制链接]

92

主题

247

帖子

247

积分

等级: 免费版

注册:
2021-6-20
曾用名:
发表于 2022-8-6 17:39 | 显示全部楼层 |阅读模式
跨周期调用MACD指标
看了下论坛技术以前的贴子,新建一个MACD指标,A1:=REF(MACD,1);那么A1引用的应该是上一个周期的MACD值。那么为啥策略中还是得加##才能引用上一周期的MACD值?如果只写MACD.A1#WEEK,引用的还是当周的MACD值,而不是上一周期的MACD,这是为啥?A1不是已经写明上一周期了吗?
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-8-7 20:02 | 显示全部楼层
A1:=REF(MACD,1)
如果已经写好这个,那么引用时候过来就是上一个了不需要##了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

92

主题

247

帖子

247

积分

等级: 免费版

注册:
2021-6-20
曾用名:
 楼主| 发表于 2022-8-8 09:22 | 显示全部楼层
技术008 发表于 2022-8-7 20:02
A1:=REF(MACD,1)
如果已经写好这个,那么引用时候过来就是上一个了不需要##了

可是我这样写给出的结果确实不是上一个周期的值。
新建一个指标MACD,里面注明
A1:=REF(MACD,1)

然后策略里引用:
A2:=MACD1.A1#WEEK;

给出的A2就是当前周期的值,而不是上一周的值。必须写成A2:=MACD1.A1##WEEK;才给出上周的值。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-8-8 09:27 | 显示全部楼层
本地正常:
截图202208080927102146.png

没有任何问题。你再核实下你本地情况。

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

使用道具 举报

92

主题

247

帖子

247

积分

等级: 免费版

注册:
2021-6-20
曾用名:
 楼主| 发表于 2022-8-8 09:37 | 显示全部楼层

找出问题了,确实是我写错了。抱歉。
回复

使用道具 举报

92

主题

247

帖子

247

积分

等级: 免费版

注册:
2021-6-20
曾用名:
 楼主| 发表于 2022-8-9 10:55 | 显示全部楼层

A1:"MVOL.A1#MIN1",NODRAW;
A2:STKINDI('','MVOL.A1',0,1),NODRAW;

请教下,上面两句引用方式究竟有什么不同?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-8-9 11:00 | 显示全部楼层
后者使用上更灵活。能指定品种,周期,自定义周期的参数,坐标类型等等。最开始只有第一种,你可以认为stk函数的第一种的进一步拓展。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

92

主题

247

帖子

247

积分

等级: 免费版

注册:
2021-6-20
曾用名:
 楼主| 发表于 2022-9-6 15:52 | 显示全部楼层
技术009 发表于 2022-8-9 11:00
后者使用上更灵活。能指定品种,周期,自定义周期的参数,坐标类型等等。最开始只有第一种,你可以认为stk ...

A1:"MVOL.A1#MIN1",NODRAW;
A2:STKINDI('','MVOL.A1',0,1),NODRAW;

再次请教一下这个问题。上面两句在实盘中的工作效率是一样的吗?我新写的策略代码中有6个引用,加载到24个品种中运行的话,哪个函数效率更高一点?
回复

使用道具 举报

92

主题

247

帖子

247

积分

等级: 免费版

注册:
2021-6-20
曾用名:
 楼主| 发表于 2022-9-6 15:54 | 显示全部楼层
技术009 发表于 2022-8-9 11:00
后者使用上更灵活。能指定品种,周期,自定义周期的参数,坐标类型等等。最开始只有第一种,你可以认为stk ...

A1:"MVOL.A1#MIN1",NODRAW;
A2:STKINDI('','MVOL.A1',0,1),NODRAW;
请问这两个函数哪个执行效率更高些?我的策略代码中有6个引用,加载到24个品种运行的话,哪个会效率高一点?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-9-6 15:58 | 显示全部楼层
其实这里区别不大的。除非是不跨周期 不跨品种的调用,也就是双#号的那种调用方式。

用法:
#用户函数.指标线(参数)#

例如:
#test01.B1(20,45)#,表示调用test01指标的B1输出线,参数为20和45
使用用户函数模式与跨周期调用模式方法方式类似,但是比扩周期引用更加节省内存,提高运行效率,缺点是无法跨周期使用。



此外 能合并的调用 尽量合并。比如你要计算另一个周期下的a>b的结果。就没必要分别调用a,b 之后再判断,而是应该 在被调用指标里计算好 a>b的结果 然后 直接调用到这个判断结果就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 04:48 , Processed in 0.178750 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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