python计算macd的方法

def calculateEMA(period, closeArray, emaArray=[]):
    length = len(closeArray)
    nanCounter = np.count_nonzero(np.isnan(closeArray))
    if not emaArray:
        emaArray.extend(np.tile([np.nan], (nanCounter + period - 1)))
        firstema = np.mean(closeArray[nanCounter:nanCounter + period - 1])
        emaArray.append(firstema)
        for i in range(nanCounter + period, length):
            ema = (2 * closeArray[i] + (period - 1) * emaArray[-1]) / (period + 1)
            emaArray.append(ema)
    return np.array(emaArray)


def calculateMACD(closeArray, shortPeriod=12, longPeriod=26, signalPeriod=9):
    ema12 = calculateEMA(shortPeriod, closeArray, [])
    ema26 = calculateEMA(longPeriod, closeArray, [])
    diff = ema12 - ema26

    dea = calculateEMA(signalPeriod, diff, [])
    macd = (diff - dea)

    fast_values = diff
    slow_values = dea
    diff_values = macd

    return fast_values, slow_values, diff_values
    
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Python是一种流行的编程语言,可以用来编写各种计算和数据分析的程序。在Python中,我们可以使用一些库和函数来计算MACD指标。 在计算MACD之前,我们需要准备一些数据,通常是股票或其他证券的历史价格数据。这些数据可以从一些财经网站或API中获取。一旦我们有了这些数据,我们可以开始计算MACD。 首先,我们需要计算出短期移动平均线(EMA12)和长期移动平均线(EMA26)。可以使用pandas库中的rolling()和mean()函数来计算移动平均线。 然后,我们可以通过减去短期移动平均线(EMA12)从长期移动平均线(EMA26),得到MACD线。这可以简单地使用pandas库的减法运算来实现。 接下来,我们计算MACD线的9日加权移动平均线(DEA),可以通过使用pandas库的ewm()函数来实现。ewm()函数允许我们指定移动平均线的窗口大小和加权方法。 最后,我们可以通过计算MACD线与DEA之间的差值,得到MACD柱状图。这可以通过简单地使用pandas库的减法运算来实现。 在Python中,我们可以使用一些常见的数据分析库,如pandas和NumPy,来处理数据并进行计算。可以使用Matplotlib或Seaborn库来可视化MACD指标的结果。 总而言之,使用Python计算MACD是相当简单的。首先,我们需要准备数据,然后使用适当的函数计算各个指标,并最后可视化结果。Python提供了丰富的库和函数,使得编写计算MACD指标的程序变得非常容易。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值