金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2560|回复: 10

求组:ema的具体算法

[复制链接]

44

主题

134

帖子

134

积分

等级: 免费版

注册:
2021-7-4
曾用名:
发表于 2024-3-26 09:24 | 显示全部楼层 |阅读模式
例如:A:=ema(c,3);

具体C和ref(c,1)和ref(c,2)是如何计算的?谢谢
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

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

具体算法在函数说明中有的呀:


EMA(X,N),求X的N日指数平滑移动平均。算法:若Y=EMA(X,N)
则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。

第一个ema值就是 c,第二个则是使用上面的  Y=[2*X+(N-1)*Y']/(N+1) 进行计算即可。 其中Y' 就是表示第一个K的c. 后面的计算以此类推.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

134

帖子

134

积分

等级: 免费版

注册:
2021-7-4
曾用名:
 楼主| 发表于 2024-3-26 10:35 | 显示全部楼层
如果Y=EMA(C,3);
则:Y =[2*C+(2)*ref(y,1)]/4;
是不是也可以写成这样?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-26 10:38 | 显示全部楼层
逻辑上是这样没错。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

134

帖子

134

积分

等级: 免费版

注册:
2021-7-4
曾用名:
 楼主| 发表于 2024-3-26 11:20 | 显示全部楼层
老师帮忙写个呀,我写的不对

如果Y=EMA(C,3);
如何翻写?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-3-26 11:22 | 显示全部楼层
完整的:

[PEL] 复制代码
N:=10;//相当于ema的参数N
X:=C;//相当于ema参数x
 
VARIABLE:ema_:=0;
//ema
if BARPOS=1 then ema_:=X;
ema_:=if(BARPOS>1,(2*x+(N-1)*ema_)/(N+1),ema_);
ema_show:ema_;//最后结果
 
x2:ema(c,10);//对照这个校验即可


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

使用道具 举报

44

主题

134

帖子

134

积分

等级: 免费版

注册:
2021-7-4
曾用名:
 楼主| 发表于 2024-3-26 12:55 | 显示全部楼层
老师,不定义全局变量行吗?写的简单点?谢谢
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-3-26 12:56 | 显示全部楼层
不行,这个函数本身就是递归的算法。正常情况下,直接使用ema函数即可
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

134

帖子

134

积分

等级: 免费版

注册:
2021-7-4
曾用名:
 楼主| 发表于 2024-3-26 13:03 | 显示全部楼层
谢谢老师,难怪我写不像
回复

使用道具 举报

44

主题

134

帖子

134

积分

等级: 免费版

注册:
2021-7-4
曾用名:
 楼主| 发表于 2024-3-27 11:53 | 显示全部楼层
老师,好,


TRA0:=MAX(MAX((CALLSTOCK(STKLABEL,VTHIGH,17,0)-CALLSTOCK(STKLABEL,VTLOW,17,0)),ABS(CALLSTOCK(STKLABEL,VTCLOSE,17,-1)-CALLSTOCK(STKLABEL,VTHIGH,17,0))),ABS(CALLSTOCK(STKLABEL,VTCLOSE,17,-1)-CALLSTOCK(STKLABEL,VTLOW,17,0)));
TRA1:=MAX(MAX((CALLSTOCK(STKLABEL,VTHIGH,17,-1)-CALLSTOCK(STKLABEL,VTLOW,17,-1)),ABS(CALLSTOCK(STKLABEL,VTCLOSE,17,-2)-CALLSTOCK(STKLABEL,VTHIGH,17,-1))),ABS(CALLSTOCK(STKLABEL,VTCLOSE,17,-2)-CALLSTOCK(STKLABEL,VTLOW,17,-1)));
TRA2:=MAX(MAX((CALLSTOCK(STKLABEL,VTHIGH,17,-2)-CALLSTOCK(STKLABEL,VTLOW,17,-2)),ABS(CALLSTOCK(STKLABEL,VTCLOSE,17,-3)-CALLSTOCK(STKLABEL,VTHIGH,17,-2))),ABS(CALLSTOCK(STKLABEL,VTCLOSE,17,-3)-CALLSTOCK(STKLABEL,VTLOW,17,-2)));

ATR:=(TRA0+TRA1+TRA23)/3;
=============================
我用这法在一分钟周期上取得了在三分钟周期上的ATR:=MA(TRA,3);
我像用相同的法,取得ATR:=EMA(TRA,3);
感觉难很多,不好写,老师帮忙写个?谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-31 03:40 , Processed in 0.112966 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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