恭请各位高手:菜鸟求两个公式的最佳算法写法。谢谢!

Sammo 2011-05-07 09:06:51
恭请各位高手:菜鸟求两个公式的最佳算法写法。谢谢!


一、移动平均函数
SMA(X,N,M):求X的N日移动平均值,M为权重,如Y=(X*M+Y'*(N-M))/N
二、指数移动平均函数
EMA(X,M):求X的M日指数移动平均值。

假设有变量:string[100] X,里面有一百组数字,把第一组X[0]放进SMA函数,其中设定N为5天,M为1:SMA(X[0],5,1),可以求出X[0]这组数据的5日移动平均值.任何一组数据X[0]...X[99]都可以进行运算,要是该组数据达不到N天的,直接返回0,比如刚才举的例子,X[96]到X[99]没有达到5天的数据进行运算,直接返回0。

指数移动平均函数 EMA(X,M),一样的意思。
麻烦各位抽空帮帮,感恩!!
...全文
388 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Sammo 2011-05-11
哎。。。自己顶一下。
  • 打赏
  • 举报
回复
Sammo 2011-05-10
[Quote=引用 7 楼 shalves 的回复:]

或者你干脆说你想要什么指标效果,我写给你。
[/Quote]

写股票软件没这本事,呵呵!只是我的运算要求中,有其中两个函数刚好和股票软件里的公式一样,所以以它来举例罢了。

没写过这类函数,来此求助:
一、SMA(X,N,M)的函数算法:
SMA(X,N,M),求X的N日移动平均,M为权重。
算法: 若Y=SMA(X,N,M)
则 Y=[M*X+(N-M)*Y')/N,其中Y'表示上一周期Y值,N必须大于M。

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

假设有一数组:decimal[] X=new decimal[100];
如何编写这两个函数,可以实现把X代入函数后,可以实现求出X[0]到X[99]的SMA和EMA的Y值。
还有一个细节就是:如果设定的N值为5天,那么无法求出X[96]到X[99]的Y值,直接返回值为0。

谢谢!!!
http://topic.csdn.net/u/20110508/09/47b7b1cb-8237-4ca7-95ff-ff1a8264f0e8.html
  • 打赏
  • 举报
回复
Shalves 2011-05-08
或者你干脆说你想要什么指标效果,我写给你。
  • 打赏
  • 举报
回复
Shalves 2011-05-08
[Quote=引用 4 楼 sammo 的回复:]
引用 2 楼 shalves 的回复:

股票里的SMA,有木有?有木有?

您好,就是股票里的SMA,是通达信的公式里的。
[/Quote]

通达信里面有公式编辑器啊,你要来是这里问,你应该只有一个目的,就是想自己编写股票行情软件。要是不是呢,那你用里面的公式编辑器就可以,直接有SMA和EMA函数,参数跟你需要的一样,你不用考虑函数是怎么实现的。
  • 打赏
  • 举报
回复
Sammo 2011-05-08
[Quote=引用 1 楼 qiaoxuebaoqiao1991 的回复:]

麻烦你把问题在描述清楚点??1:SMA是比值还是matlab里的到SMA啊???
[/Quote]

不好意思,不是1:SMA,是我打错标点符号了,是:“M为1,SMA(X[0],5,1)”,那个“:”应该是“,”号。
  • 打赏
  • 举报
回复
Sammo 2011-05-08
[Quote=引用 2 楼 shalves 的回复:]

股票里的SMA,有木有?有木有?
[/Quote]
您好,就是股票里的SMA,是通达信的公式里的。
  • 打赏
  • 举报
回复
Sammo 2011-05-08
[Quote=引用 1 楼 qiaoxuebaoqiao1991 的回复:]

麻烦你把问题在描述清楚点??1:SMA是比值还是matlab里的到SMA啊???
[/Quote]
不知道MATLAB的SMA的具体算法是怎样的,我的这个就是股票软件,通达信的公式的SMA函数。
  • 打赏
  • 举报
回复
Shalves 2011-05-08
股票里的SMA,有木有?有木有?
  • 打赏
  • 举报
回复
麻烦你把问题在描述清楚点??1:SMA是比值还是matlab里的到SMA啊???
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2011-05-07 09:06
社区公告

让您成为最强悍的C#开发者