技术分析之基于Python实现MA、MACD

编程入门 行业动态 更新时间:2024-10-10 08:21:58

<a href=https://www.elefans.com/category/jswz/34/1770192.html style=技术分析之基于Python实现MA、MACD"/>

技术分析之基于Python实现MA、MACD

使用Tushare获得一只股票,这里只供参考,不做投资建议。

stock_name = '600519.SH'ts.set_token('**********')
pro = ts.pro_api()
df_whole = pro.daily(ts_code=stock_name, start_data='20200501', end_data='20200507')
df_whole['trade_date'] = pd.to_datetime(df_whole['trade_date'], format='%Y%m%d')df_whole.set_index('trade_date', inplace=True)
df_whole = df_whole[1:300]
df_whole = df_whole.sort_index(ascending=True)

首先MA(Moving Average)是一个移动平均线,类似于一个低通滤波器。在MACD计算过程中,MA取值取值区间为12,26。也就是说将一只股票的收盘价作为时间序列,去取12天作为一个区间,计算这12天内股票收盘价的一个加权平均数,同理26天类似。我认为,12天的MA可以等价于快线,而26天MA可以等价于慢线。下面展示12天、26天MA的计算方式。

df = df_whole['close']
df_whole['EMA_12_unadj'] = pd.Series.ewm(df, span=12, adjust=False).mean()
df_whole['EMA_26_unadj'] = pd.Series.ewm(df, span=26, adjust=False).mean()

这两条MA的差值我定义为MACD,将所得结果取3日指数平均得到信号线,代码如下所示:

MACD = df_whole['EMA_12_unadj'] - df_whole['EMA_26_unadj']
df_whole['MACD'] = MACDdf_whole['Signal_line'] = pd.Series.ewm(MACD, span=3, adjust=False).mean()

取MACD与Signal-line的插值作为histogram,代码如下:

histogram = df_whole['MACD'] - df_whole['Signal_line']
df_whole['Histogram'] = histogram

接下来对所获得的数据绘图,如下所示:

ax1 = plt.subplot2grid((9,10), (0, 0), rowspan=7, colspan=10)
ax2 = plt.subplot2grid((9, 10), (7, 0), rowspan=7, colspan=10, sharex=ax1)
ax1.plot(df_whole.index, df_whole['close'], label='Close Price')
ax1.plot(df_whole.index, df_whole['EMA_12_unadj'], label='EMA-12')
ax1.plot(df_whole.index, df_whole['EMA_26_unadj'], label='EMA-26')
ax1.legend()
ax1.grid()ax2.bar(df_whole.index, df_whole['Histogram'], label='Histogram')
ax2.plot(df_whole.index, df_whole['Signal_line'], label='Signal Line')
ax2.legend()
ax2.grid()


我认为当12日MA下穿26日MA时,说明近期收盘价下跌较多,可以做空;反之当12日MA上穿26日MA时,说明近期收盘价上涨较快,可以做多。

关于Histogram,我认为可以说明近期股票收盘价上涨的动能。首先我们通过两条MA的差值得到MACD,最后取MACD当日值与MACD的3日平均值做差得到histogr。假设一只股票最近上涨动能不足,趋近于最高点,那么12日MA和26日MA之间的差值将会减小,也就是说当日MACD的值会减小,这时需要注意到MACD的3日均值应该大于当日MACD值,所以histogram的值应该由正转为负,此时说明做空势力大与做多势力。

更多推荐

技术分析之基于Python实现MA、MACD

本文发布于:2024-02-13 04:49:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690750.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:技术   Python   MACD   MA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!