我在使用Rust计算股市的EMA指标,但是似乎有一些问题。
EMA指标公式为:
[AppleScript] 纯文本查看 复制代码 Y = [2*X + (N-1) * Y’] / (N+1)
公式更多详细信息:
指数平均数_百度百科
Rust代码:
[AppleScript] 纯文本查看 复制代码 fn EMA(close: Vec<f64>, day: usize) -> f64 {
// Y = [2*X + (N-1) * Y’] / (N+1)
let mut cache: f64 = 0.00;
// cache 即 Y'
for i in 0..day + 1 {
cache = (2 as f64 * close[i - 1] + (i - 1) as f64 * cache) / (i + 1) as f64;
}
cache
}
和某平台上面计算出来的精确到个位基本相同,但是精确到百分位后有一定区别。感觉很奇怪啊。。
|