金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2717|回复: 9

不使用跨周期引用在1分钟周期上计算5分钟周期的EMA均线值,要如何修改或优化

[复制链接]

32

主题

157

帖子

157

积分

等级: 免费版

注册:
2021-6-17
曾用名:
发表于 2023-12-26 09:40 | 显示全部楼层 |阅读模式
因多个跨周期引用对内存要求高,希望能在不使用跨周期引用的的情况下,在1分钟周期上计算出5分钟周期的EMA均线值,代码如下:
wtmod:=mod(todaybar,5);
wd:=if(wtmod=0,c,drawnull);
wt:=sumbars(wd>0,12);
ema12:ema(wd,12);//这个值显示不出来,请问要如何修改才行

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-26 09:46 | 显示全部楼层
不跨周期情况下 这个目前没有解决方案。

ema算法本身的逻辑 决定了你这种方式就是不可行的。

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

使用道具 举报

32

主题

157

帖子

157

积分

等级: 免费版

注册:
2021-6-17
曾用名:
 楼主| 发表于 2023-12-26 10:04 | 显示全部楼层
技术009 发表于 2023-12-26 09:46
不跨周期情况下 这个目前没有解决方案。

ema算法本身的逻辑 决定了你这种方式就是不可行的。

能否拆解EMA的算法实现
或别的什么方法,让在1分钟上取到的5分钟数据变得连续,比如用python会形成一个新的数组,就好计算了,是否有类似的方法?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-26 10:11 | 显示全部楼层
在PEL上肯定是做不了的。因为没办法给你生成一个有效的连续的数组。然后再用ema函数计算。ema函数本身也不支持传递一个数组去计算。


你在PYthon里那就无所谓了,而且你在py里就是直接获取大周期数值直接算了就。根本没有在小周期上处理这回事了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

32

主题

157

帖子

157

积分

等级: 免费版

注册:
2021-6-17
曾用名:
 楼主| 发表于 2023-12-26 10:18 | 显示全部楼层
技术009 发表于 2023-12-26 10:11
在PEL上肯定是做不了的。因为没办法给你生成一个有效的连续的数组。然后再用ema函数计算。ema函数本身也不 ...

i = 当前已经走完的1分钟K线数
5分钟收盘价:c0 = close,c[n]=ref(close,n*5+i)
--先进行类似这样的转换如何,这样转换貌似可以将间隔型的值转换为连续的值?
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-12-26 10:20 | 显示全部楼层
不行的。在pel层面做不到这种分割计算。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

32

主题

157

帖子

157

积分

等级: 免费版

注册:
2021-6-17
曾用名:
 楼主| 发表于 2023-12-26 11:26 | 显示全部楼层
技术006 发表于 2023-12-26 10:20
不行的。在pel层面做不到这种分割计算。

看看这个示例如何,能否抽取出实现方法并简化下
input:N(30, 0, 1000,1);
variable:LLT_1=0,LLT_2=0,LLT_N=0;

alpha := 2/(N+1);
alpha_double := alpha*alpha;
c1 := ref(close,1);
c2 := ref(close,2);

IF barpos<=2 THEN BEGIN
LLT_1 := close;
LLT_2 := close;
END

ELSE BEGIN
        LLT_N := (alpha-alpha_double/4)*close+(alpha_double/2*c1)-(alpha-3*alpha_double/4)*c2 + 2*(1-alpha)*LLT_1 - ((1-alpha)*(1-alpha)*LLT_2);       
        LLT_2 := LLT_1;
        LLT_1 := LLT_N;
END

LLT :        LLT_N, colorYellow;       
LL1:        REF(LLT_N,1),colorYellow,linethick0;       
LL2:        REF (LLT_N,2),colorYellow,linethick0;       
DEL:        LLT_N - LL1,linethick0;       
DEF:        LL1 - LL2,linethick0;
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-12-26 12:48 | 显示全部楼层
抱歉,函数算法的特殊实现,已经超出技术支持范畴。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

32

主题

157

帖子

157

积分

等级: 免费版

注册:
2021-6-17
曾用名:
 楼主| 发表于 2023-12-27 10:35 | 显示全部楼层
技术009 发表于 2023-12-26 10:11
在PEL上肯定是做不了的。因为没办法给你生成一个有效的连续的数组。然后再用ema函数计算。ema函数本身也不 ...

我看你在这个帖子里做了解答,关于递归 全局变量的问题,用这个估计能行只是深入了一层
https://www.weistock.com/bbs/for ... B%BE%D6%B1%E4%C1%BF
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-12-27 10:36 | 显示全部楼层
抱歉,此问题已经明确说了做不到,在1分钟上自行计算统计5分钟ema的值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-3 04:19 , Processed in 0.108808 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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