尝试使用 python 计算 EMA,但我无法弄清楚为什么我的代码总是产生相同的结果

萨姆

我试图在 python2.7 中计算比特币的指数移动平均值,但我的结果总是相同的值,我不知道为什么。

def calcSMA(data,counter,timeframe):
   closesum = 0
   for i in range(timeframe):
      closesum = float(closesum) + float(data[counter-i])
   return float(closesum / timeframe)

def calcEMA(price,timeframe,prevema):
   multiplier = float(2/(timeframe+1))
   ema = ((float(price) - float(prevema))*multiplier) + float(prevema)
   return float(ema)

counter = 0
closeprice = [7242.4,7240,7242.8,7253.8,7250.6,7255.7,7254.9,7251.4,7234.3,7237.4
,7240.7,7232,7230.2,7232.2,7236.1,7230.5,7230.5,7230.4,7236.4]

while counter < len(closeprice):
   if counter == 3:
      movingaverage = calcSMA(closeprice,counter,3)
      print movingaverage
   if counter > 3:
      movingaverage = calcEMA(closeprice[counter],3,movingaverage)
      print movingaverage  
   counter +=1  

这是计算 EMA 的方法:{Close - EMA(previous day)} x multiplier + EMA(previous day) 你用一个简单的移动平均线作为公式的种子。

在 Excel 中执行此操作是否可行,因此可能是我使用了变量?

如果有人能告诉我我做错了什么,我真的很高兴,因为我在这个简单的问题上失败了几个小时并且无法弄清楚我已经尝试将我以前的 ema 存储在一个单独的变量中,我什至存储了所有它们在一个列表中,但我总是在每个时间步得到相同的值。

约翰·戈登

该表达式2/(timeframe+1)始终为零,因为组件都是整数,因此 Python 2 使用整数除法。将结果包装在float()没有好处;你只是得到0.0而不是0.

试试吧2.0/(timeframe+1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法弄清楚为什么我的字母在 Python 的凯撒代码中没有旋转

无法弄清楚为什么我的计算机无法启动

使用 mypy 进行类型检查,但我无法弄清楚为什么会发生此错误

我的 Python 不能使用 URL,没有人能弄清楚为什么?

我正在尝试完成此菜单的代码,无法弄清楚为什么它无法正确循环?

尝试弄清楚为什么我的查询缓慢

Scala-使用DFS检测周期吗?我的代码有错误,我似乎无法弄清楚为什么

我正在尝试编写一个覆盖文件特定行的函数,但我无法弄清楚为什么它不起作用

我正在尝试使用无限循环在python3中计算pi:

无法弄清楚为什么我在尝试 CSV 行数时不断收到 KeyError

我在使用 python 计算 excel 单元格时出错,但我不知道为什么?

尝试执行“空”字符串检查,但我无法弄清楚

node.js串行端口,尝试编写,但我无法弄清楚

无法弄清楚为什么我的第二个计数变量不计算 PL/SQL

无法弄清楚为什么我的else语句仍然使用负输入调用此函数

为什么当我尝试使用python计算数组中的数字数量时,其中一个数组进行错误检查

我无法弄清楚为什么我的数组列表未使用我要说明的新值更新

尝试将信息输入数据库时,无法弄清楚我的 PHP 代码出了什么问题

我在自学python时给自己写了一些气泡排序代码,但无法弄清楚为什么它不起作用

无法弄清楚为什么我不从一个线程获取作为输入的数组并尝试使用另一个线程打印它

我无法弄清楚我的Python Socket错误

我正在尝试使用统计模型计算p_value

无法弄清楚为什么如果我使用自定义标头排序,则无法使用背包。

我无法弄清楚如何在JAVA中正确使用“尝试”

使用Python计算目录中的代码行

使用Python代码计算产品的折扣

阶乘使用递归函数。跟踪了代码,但无法弄清楚为什么会出现错误

我正在尝试学习 python 但我的代码不起作用,我不知道为什么

为什么将Random与硬编码的种子一起使用总是产生相同的结果?