利用python编写macd、kdj、rsi、ma等指标.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
利用 Python 编写 MACD、KDJ、RSI、MA 等技术指标 本文档主要介绍了使用 Python 编程语言编写四种常见技术指标:MACD(Moving Average Convergence Divergence)、KDJ(Random Index)、RSI(Relative Strength Index)和 MA(Moving Average)。这些技术指标广泛应用于股票、期货、外汇等金融市场中,用于分析和预测市场趋势。 一、 MACD 指标 MACD 指标是由 Gerald Appel 于 1970年代开发的一种技术指标,用于衡量股票或期货的价格趋势。MACD 指标由两条移动平均线和一个差离值组成。短期移动平均线(shortEMA)和长期移动平均线(longEMA)相交时,表明股票或期货的价格趋势发生变化。 在 Python 中,使用 pandas 库实现 MACD 指标的计算,如下所示: ```python def get_macd_data(data, short=0, long1=0, mid=0): if short == 0: short = 12 if long1 == 0: long1 = 26 if mid == 0: mid = 9 data['sema'] = pd.ewma(data['closeL'], span=short) data['lema'] = pd.ewma(data['closeL'], span=long1) data.fillna(0, inplace=True) data['data_dif'] = data['sema'] - data['lema'] data['data_dea'] = pd.ewma(data['data_dif'], span=mid) data['data_macd'] = 2 * (data['data_dif'] - data['data_dea']) data.fillna(0, inplace=True) return data[['data_dif', 'data_dea', 'data_macd']] ``` 二、 KDJ 指标 KDJ 指标是一种随机指标,由三个参数组成:K 值、D 值和 J 值。KDJ 指标用于衡量股票或期货的价格涨跌幅度。 在 Python 中,使用 pandas 库实现 KDJ 指标的计算,如下所示: ```python def get_kdj_data(data, N=0, M=0): if N == 0: N = 9 if M == 0: M = 2 low_list = pd.rolling_min(data['lowL'], N) low_list.fillna(value=pd.expanding_min(data['lowL']), inplace=True) high_list = pd.rolling_max(data['highL'], N) high_list.fillna(value=pd.expanding_max(data['highL']), inplace=True) rsv = (data['closeL'] - low_list) / (high_list - low_list) * 100 data['KDJ_K'] = pd.ewma(rsv, com=M) data['KDJ_D'] = pd.ewma(data['KDJ_K'], com=M) data['KDJ_J'] = 3 * data['KDJ_K'] - 2 * data['KDJ_D'] data.fillna(0, inplace=True) return data[['KDJ_K', 'KDJ_D', 'KDJ_J']] ``` 三、 RSI 指标 RSI 指标是由 J. Welles Wilder 于 1970年代开发的一种技术指标,用于衡量股票或期货的价格涨跌幅度。 在 Python 中,使用 pandas 库实现 RSI 指标的计算,如下所示: ```python def get_rsi_data(data, N=0): if N == 0: N = 24 data['value'] = data['closeL'] - data['closeL'].shift(1) data.fillna(0, inplace=True) data['value1'] = data['value'] data['value1'][data['value1'] < 0] = 0 data['value2'] = data['value'] data['value2'][data['value2'] > 0] = 0 data['plus'] = pd.rolling_sum(data['value1'], N) data['minus'] = pd.rolling_sum(data['value2'], N) data.fillna(0, inplace=True) rsi = data['plus'] / (data['plus'] - data['minus']) * 100 data.fillna(0, inplace=True) rsi = pd.DataFrame(rsi, columns=['rsi']) return rsi ``` 四、 MA 指标 MA 指标是一种移动平均线指标,用于衡量股票或期货的价格趋势。 在 Python 中,使用 pandas 库实现 MA 指标的计算,如下所示: ```python def get_ma_data(data, N=0): if N == 0: N = 5 data['ma'] = pd.rolling_mean(data['closeL'], N) data.fillna(0, inplace=True) return data[['ma']] ``` 本文档提供了使用 Python 编写四种常见技术指标的实现方法,这些指标广泛应用于股票、期货、外汇等金融市场中,用于分析和预测市场趋势。
- 粉丝: 14
- 资源: 9万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助