在Python 2.7中计算正确的MACD和RSI指标,可以使用一些第三方库和算法来实现。下面是一个基本的示例代码,用于计算MACD和RSI指标:
import numpy as np
import pandas as pd
def calculate_macd(data, short_period=12, long_period=26, signal_period=9):
# 计算指数移动平均线(EMA)
ema_short = data.ewm(span=short_period, adjust=False).mean()
ema_long = data.ewm(span=long_period, adjust=False).mean()
# 计算差离值(DIF)
dif = ema_short - ema_long
# 计算信号线(DEA)
signal = dif.ewm(span=signal_period, adjust=False).mean()
# 计算MACD柱状图
macd = dif - signal
return dif, signal, macd
def calculate_rsi(data, period=14):
# 计算价格变化
delta = data.diff()
# 去除第一个NaN值
delta = delta[1:]
# 分别计算上涨和下跌的价格变化
up = delta.copy()
down = delta.copy()
up[up < 0] = 0
down[down > 0] = 0
# 计算平均增长率
avg_gain = up.rolling(window=period).mean()
avg_loss = abs(down.rolling(window=period).mean())
# 计算相对强弱指标(RSI)
rs = avg_gain / avg_loss
rsi = 100 - (100 / (1 + rs))
return rsi
# 假设有一组价格数据,存储在一个DataFrame中的"Close"列中
data = pd.DataFrame({'Close': [10, 12, 15, 14, 13, 16, 18, 17, 19, 20]})
# 计算MACD指标
macd_dif, macd_signal, macd_hist = calculate_macd(data['Close'])
# 计算RSI指标
rsi = calculate_rsi(data['Close'])
# 打印结果
print("MACD DIF:", macd_dif)
print("MACD Signal:", macd_signal)
print("MACD Histogram:", macd_hist)
print("RSI:", rsi)
上述代码中,我们使用了numpy
和pandas
库来进行数据处理和计算。calculate_macd
函数用于计算MACD指标,接受一个价格数据的Series作为输入,并返回DIF、信号线和柱状图的Series。calculate_rsi
函数用于计算RSI指标,接受一个价格数据的Series作为输入,并返回RSI的Series。
请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体需求进行调整和优化。另外,为了获取实时的价格数据,可能需要使用相应的数据源或API。
对于binance web界面中显示的MACD和RSI指标,可以使用以上代码计算得出的指标值进行对比和验证。同时,腾讯云提供了一系列与云计算相关的产品和服务,可以根据具体需求选择适合的产品。例如,可以使用腾讯云的云服务器(CVM)来搭建和运行Python环境,使用对象存储(COS)来存储和管理数据,使用云数据库(CDB)来存储和查询数据等。具体产品介绍和链接地址可以参考腾讯云官方网站。
领取专属 10元无门槛券
手把手带您无忧上云