相对强弱指数(RSI)是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力,从而作出未来市场的走势。RSI在1978年6月由Wells Wider创制的一种通过特定时期内股价的变动情况计算市场买卖力量对比,来判断股票价格内部本质强弱、推测价格未来的变动方向的技术指标。可以参考相对强弱指标,以及talib推荐的RSI介绍。
计算方法:RSI=[上升平均数÷(上升平均数+下跌平均数)]×100
上升平均数:在某一段日子里升幅数的平均;下跌平均数:在同一段日子里跌幅数的平均。
使用方法:
当RSI高于70时,股票可以被视为超买,是卖出的时候。
当RSI低于30时,股票可以被视为超卖,是买入的时候。
import pandas as pd
import numpy as np
import talib as ta
import tushare as ts
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')
import seaborn as sns
sns.set_style('white')
from matplotlib import dates
import matplotlib as mpl
%matplotlib inline
myfont =mpl.font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=14)
plt.rcParams["figure.figsize"] = (20,10)
dw = ts.get_k_data("600600")
dw = dw[300:]
dw.index = range(len(dw))
close = dw.close.values
dw["rsi"] = ta.RSI(close, timeperiod=14)
#dw[["close","rsi"]].plot()
fig = plt.figure(figsize=(20,10))
fig.set_tight_layout(True)
ax1 = fig.add_subplot(111)
#fig.bar(dw.index, dw.volume, align='center', width=1.0)
ax1.plot(dw.index, dw.close, '-', color='g')
ax2 =ax1.twinx()
ax2.plot(dw.index, dw.rsi, '-', color='r')
ax2.plot(dw.index, [70]*len(dw), '-', color='r')
ax2.plot(dw.index, [30]*len(dw), '-', color='r')
ax1.set_ylabel(u"股票价格(绿色)",fontproperties=myfont, fontsize=16)
ax2.set_ylabel(u"RSI参数",fontproperties=myfont, fontsize=16)
ax1.set_title(u"绿色是股票价格,红色(右轴)为RSI参数",fontproperties=myfont, fontsize=16)
# plt.xticks(bar_data.index.values, bar_data.barNo.values)
ax1.set_xlabel(u"RSI参数图",fontproperties=myfont,fontsize=16)
ax1.set_xlim(left=-1,right=len(dw))
ax1.grid()