ID:399899
注: 这里使用的数据源是Tushare
量化投资研究中不可避免的需要计算很多的指标,方法有自己构建计算方法去计算。也可以使用现成的库来调用,这里以计算股票300123 RSI值来示范:
1.首先我们需要拿到300123 近一年历史数据
import tushare as ts
pro = ts.pro_api('token码') # token码需要在tushare网站https://tushare.pro 个人主页处取到
data = pro.daily(ts_code='300123.SZ',start_date = '20200316')
data.sort_values(by=['trade_date'],ascending=True,inplace=True)
data = data.reset_index(drop=True)
data.head() # 查看一下数据
2.自己计算
RSI计算公式:
UP和DOWN为时间跨度为t的 收盘价的涨跌平均值 这里时间跨度选为6 也就是RSI6
rsi_6 = []
for i in range(0,len(data)-5):
change = data.loc[i:i+5,'change'].values.tolist()
up = 0
n_up = 0
down = 0
n_down = 0
for j in change:
if j > 0:
up += j
n_up += 1
else:
down += abs(j)
n_down += 1
up = 0 if n_up == 0 else up/n_up
down = 0 if n_down == 0 else down/n_down
rsi = 100*up/(down+up)
rsi_6.append(round(rsi,2))
print(rsi_6[:10]) # 打印前十个查看
[32.88, 32.18, 29.27, 31.3, 32.45, 30.28, 45.03, 49.76, 59.77, 59.09]
3.使用TA-LIB库进行计算 库的安装自行百度
import talib
rsi_6_talib = talib.RSI(data.close,6)
常见的指标使用talib库可以简便计算,但是有时候会发现和自己计算的有一点偏差,这里应该是需要去找talib源码看他是怎么计算的才能知道问题所在。