金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 322|回复: 8

如何实现自己的移动平均指标

[复制链接]

7

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
发表于 2025-8-19 19:03 | 显示全部楼层 |阅读模式

如果我不定义variable,直接mea:=ref(mea,1) + multi * (1 + multi2) * (CLOSE - ref(mea,1)) 程序编译会报错,说没有定义mea。但是我现在用variable定义之后,每一次ref(mea,1)的值都是初始值6500。那么需要使用到前一个数值的类似移动平均计算的公式,应该怎么写?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-8-20 08:53 | 显示全部楼层
右边勾选逐k模式不要用序列模式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

7

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-8-20 09:26 | 显示全部楼层
技术008 发表于 2025-8-20 08:53
右边勾选逐k模式不要用序列模式



然后出现了一根K线有值,一根没有的情况,这个怎么解决?


补充内容 (2025-8-20 09:27):
然后出现了一根K线有值,一根没有的情况,这个怎么解决

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-8-20 09:30 | 显示全部楼层
把代码贴一下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-8-20 09:31 | 显示全部楼层

VARIABLE : mea = 6500;
N:=5;
multi:2/(N+1);
multi2:abs((CLOSE - LLV(LOW,N))-(HHV(HIGH,N) - CLOSE))/(HHV(HIGH,N) -LLV(LOW,N));

rmea:ref(mea,1);
cz:multi * (1 + multi2) * (CLOSE - ref(mea,1));

mea:=ref(mea,1) + multi * (1 + multi2) * (CLOSE - ref(mea,1));

AMEA:mea, COLORWHITE;

OrigalMA:MA(CLOSE,N);

补充内容 (2025-8-20 09:32):
rmea,amea,origalma都是输出来检查的值,不参与实际计算
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-8-20 09:36 | 显示全部楼层
mea:=mea + multi * (1 + multi2) * (CLOSE - mea);


赋值时候不能用ref,因为一开始没有ref(mea,1)直接导致整个计算程序是出问题的,mea本身是个序列变量直接用来做更新从就旧值到新值
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-8-20 09:59 | 显示全部楼层
技术008 发表于 2025-8-20 09:36
mea:=mea + multi * (1 + multi2) * (CLOSE - mea);

那是无法取之前的数值导致的么?那如果我要取两天前的数值,还是会用到ref(mea,1)哦,这个怎么解决?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-8-20 10:01 | 显示全部楼层
mea:=ref(mea,1) + multi * (1 + multi2) * (CLOSE - ref(mea,1));

要么你这里赋值时候自己判断如果barpos小于2时候,用哪个值更新,否者怎么样

不然这种逻辑上就是有问题,第一个mea用前面的不存在mea就导致不存在这个值了,你要用前面的mea必须在第二根k开始才能用到前面的mea
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

26

帖子

26

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-8-20 10:12 | 显示全部楼层
技术008 发表于 2025-8-20 10:01
mea:=ref(mea,1) + multi * (1 + multi2) * (CLOSE - ref(mea,1));

要么你这里赋值时候自己判断如果barp ...

明白了,感谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-14 10:43 , Processed in 0.116665 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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