@Channelchan
2018-09-29T23:09:23.000000Z
字数 2547
阅读 78251
Talib是python用于金融技术分析的包。
TA_Lib提供什么样的函数?
重叠研究(Overlap Studies)
动能指标(Momentum Indicators)
周期指标(Cycle Indicators)
成交量指标(Volume Indicators)
波动率指标(Volatility Indicators)
数学操作(Math Operators)
数学变换(Math Transform)
统计功能(Statistic Functions)
价格转换(Price Transform)
形态识别(Pattern Recognition)
'numpy.ndarray'
dataframe
import talib as ta
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
data = pd.read_excel('sz50.xlsx', sheetname='600036.XSHG', index_col='datetime')
#读取'numpy.ndarray'
print(ta.MA(data.close.values, 5)[-5:])
[109.272 109.902 110.724 112.568 114.85 ]
# data
print(type(data.close))
<class 'pandas.core.series.Series'>
#直接读取DataFrame,默认读取cloumns名为close的数据。
print(ta.abstract.MA(data, 5).tail())
datetime
2017-11-14 15:00:00 118.426
2017-11-15 15:00:00 118.462
2017-11-16 15:00:00 118.162
2017-11-17 15:00:00 118.442
2017-11-20 15:00:00 118.536
dtype: float64
多个返回值
upperBand , middleBand, lowerBand = ta.BBANDS(data.close.values)
print(upperBand[-5:], '\n', middleBand[-5:],'\n', lowerBand[-5:])
[120.07386407 120.07328024 120.60352084 121.2296413 121.54995687]
[118.426 118.462 118.162 118.442 118.536]
[116.77813593 116.85071976 115.72047916 115.6543587 115.52204313]
fig = plt.figure(figsize=(15, 7))
plt.plot(upperBand)
plt.plot(middleBand)
plt.plot(lowerBand)
plt.show()
stocks = pd.Panel({s: pd.read_excel('sz50.xlsx', sheetname=s, index_col='datetime')
for s in ['600036.XSHG', '600050.XSHG', '600000.XSHG']})
ROCR100 = pd.DataFrame({item: ta.ROCR100(value.values) for item, value in stocks.minor_xs('close').iteritems()},
index = stocks.minor_xs('close').index)
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(15, 7))
plt.hlines(100,ROCR100.index[0],ROCR100.index[-1] , linestyles='dashed', alpha=0.5)
plt.plot(ROCR100)
plt.show()
import numpy as np
volume = pd.Series(np.array(data.volume.values, dtype='float64'), index=data.index)
volumeSMA = pd.Series(ta.MA(volume.values,10), index=data.index)
volumeLMA = pd.Series(ta.MA(volume.values,20), index=data.index)
fig, (ax, ax1) = plt.subplots(2, 1, sharex=True, figsize=(15,7))
ax.plot(data.close)
ax1.bar(volume.index, volume.values,color='g')
ax1.plot(volumeSMA)
ax1.plot(volumeLMA)
plt.show()
Reg = ta.abstract.LINEARREG(data, 20)
slope = ta.abstract.LINEARREG_SLOPE(data, 20)
fig, (ax, ax1) = plt.subplots(2, 1, sharex=True, figsize=(15,7))
ax.plot(data.close)
ax.plot(Reg)
ax1.plot(slope)
plt.hlines(0,slope.index[0],slope.index[-1] , linestyles='dashed', alpha=0.5)
plt.show()
ta.ATR?
atr = ta.ATR(data.high.values, data.low.values, data.close.values, 10)
fig, (ax, ax1) = plt.subplots(2, 1, sharex=True, figsize=(15,7))
ax.plot(data.close)
ax1.plot(pd.Series(atr, index=data.index))
plt.show()