显示lib包_【手把手教你】股市技术分析利器之TA-Lib(一)
市場有自己的時間觀念。股票投資就如同任何人類互動一樣,耐心是一項美德。——羅伯特·D·愛德華《股市趨勢技術分析》
引言
TA-Lib,全稱“Technical Analysis Library”, 即技術分析庫,是Python金融量化的高級庫,涵蓋了150多種股票、期貨交易軟件中常用的技術分析指標,如MACD、RSI、KDJ、動量指標、布林帶等等。TA-Lib可分為10個子板塊:Overlap Studies(重疊指標),Momentum Indicators(動量指標),Volume Indicators(交易量指標),Cycle Indicators(周期指標),Price Transform(價格變換),Volatility Indicators(波動率指標),Pattern Recognition(模式識別),Statistic Functions(統(tǒng)計函數(shù)),Math Transform(數(shù)學變換)和Math Operators(數(shù)學運算),見下圖。本公眾號將以系列的形式詳細介紹talib技術指標的實現(xiàn)和應用,而本文作為開篇,主要介紹Overlap Studies內(nèi)容。
安裝與使用
安裝:在cmd上使用“pip install talib”命令一般會報錯,正確安裝方法是,進入https://www.lfd.uci.edu/~gohlke/pythonlibs/,下拉選擇TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl(win系統(tǒng)64位,python3.7版本,根據(jù)自己系統(tǒng)和python版本選擇相應的安裝包),將下載包放在當前工作路徑中,然后在Anaconda Prompt(或windows的cmd)里面輸入命令:pip install TA_Lib-0.4.17-cp27-cp27m-win_amd64.whl。
使用:import talib as ta
Overlap Studies Functions重疊指標
01 移動平均線系列
移動平均線是技術分析理論中應用最普遍的指標之一,主要用于確認、跟蹤和判斷趨勢,提示買入和賣出信號,在單邊市場行情中可以較好的把握市場機會和規(guī)避風險。但是,移動平均線一般要與其他的技術指標或基本面相結合來使用,特別是當市場處于盤整行情時,其買入賣出信號會頻繁出現(xiàn),容易失真。
通用函數(shù)名:MA
代碼:ta.MA(close,timeperiod=30,matype=0)
移動平均線系列指標包括:SMA簡單移動平均線、EMA指數(shù)移動平均線、WMA加權移動平均線、DEMA雙移動平均線、TEMA三重指數(shù)移動平均線、TRIMA三角移動平均線、KAMA考夫曼自適應移動平均線、MAMA為MESA自適應移動平均線、T3三重指數(shù)移動平均線。
其中,close為收盤價,時間序列,timeperiod為時間短,默認30天,指標類型matype分別對應:0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)
不同類型的移動均線也有各自相應的調(diào)用函數(shù):
#先引入后面可能用到的包(package)import pandas as pd import numpy as npimport matplotlib.pyplot as plt%matplotlib inline #正常顯示畫圖時出現(xiàn)的中文和負號from pylab import mplmpl.rcParams['font.sans-serif']=['SimHei']mpl.rcParams['axes.unicode_minus']=False#引入TA-Lib庫import talib as ta#查看包含的技術指標和數(shù)學運算函數(shù)#print(ta.get_functions())#print(ta.get_function_groups())ta_fun=ta.get_function_groups()ta_fun.keys()#使用tushare獲取上證指數(shù)數(shù)據(jù)作為示例import tushare as tsdf=ts.get_k_data('sh',start='2000-01-01')df.index=pd.to_datetime(df.date)df=df.sort_index()types=['SMA','EMA','WMA','DEMA','TEMA','TRIMA','KAMA','MAMA','T3']df_ma=pd.DataFrame(df.close)for i in range(len(types)): df_ma[types[i]]=ta.MA(df.close,timeperiod=5,matype=i)df_ma.tail()df_ma.loc['2018-08-01':].plot(figsize=(16,6))ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.title('上證指數(shù)各種類型移動平均線',fontsize=15)plt.xlabel('')plt.show()數(shù)據(jù)來源:tushare
#畫5、30、120、250指數(shù)移動平均線N=[5,30,120,250]for i in N: df['ma_'+str(i)]=ta.EMA(df.close,timeperiod=i)df.tail()df.loc['2014-01-01':,['close','ma_5','ma_30','ma_120','ma_250']].plot(figsize=(16,6))ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.title('上證指數(shù)走勢',fontsize=15)plt.xlabel('')plt.show()數(shù)據(jù)來源:tushare
02 布林帶
布林帶(Bollinger Band),由壓力線、支撐線價格平均線組成,一般情況價格線在壓力線和支撐線組成的上下區(qū)間中游走,區(qū)間位置會隨著價格的變化而自動調(diào)整。布林線的理論使用原則是:當股價穿越最外面的壓力線(支撐線)時,表示賣點(買點)出現(xiàn)。當股價延著壓力線(支撐線)上升(下降)運行,雖然股價并未穿越,但若回頭突破第二條線即是賣點或買點。在實際應用中,布林線有其滯后性,相對于其他技術指標在判斷行情反轉時參考價值較低,但在判斷盤整行情終結節(jié)點上成功率較高。
計算方法:首先計出過去 N 日收巿價的標準差 SD(Standard Deviation) ,通常再乘 2 得出 2 倍標準差, Up 線為 N日平均線加 2 倍標準差, Down 線則為 N日平均線減 2 倍標準差。
代碼:ta.BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)
H_line,M_line,L_line=ta.BBANDS(df.close, timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)df1=pd.DataFrame(df.close,index=df.index,columns=['close'])df1['H_line']=H_linedf1['M_line']=M_linedf1['L_line']=L_linedf1.tail()df1.loc['2013-01-01':'2014-12-30'].plot(figsize=(16,6))ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.title('上證指數(shù)布林線',fontsize=15)plt.xlabel('')plt.show()數(shù)據(jù)來源:tushare
03 其他指標
df2=pd.DataFrame(df.close)df2['HT']=ta.HT_TRENDLINE(df.close)periods =np.array([3]*len(df), dtype=float)df2['MAVP']=ta. MAVP(df.close,periods)df2['MIDPOINT']=ta.MIDPOINT(df.close)df2['MIDPRICE']=ta.MIDPRICE(df.high,df.low)df2['SAR']=ta.SAR(df.high,df.low)df2['SAREXT']=ta.SAREXT(df.high,df.low)df2.tail()df2.loc['2018-01-01':'2019-02-21',['close','HT','MAVP','MIDPOINT','MIDPRICE','SAR']].plot(figsize=(16,6))ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.title('上證指數(shù)的其他趨勢指標線',fontsize=15)plt.xlabel('')plt.show()數(shù)據(jù)來源:tushare
df2.loc['2018-01-01':'2019-02-21','SAREXT'].plot(figsize=(16,6))ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.title('上證指數(shù)的拋物線擴展走勢',fontsize=15)plt.xlabel('')plt.show()數(shù)據(jù)來源:tushare
均線策略回測
雙均線策略:分別選擇L天和S天的移動平均線(L>S),如L=20,S=5,當短周期S均線(5日均線)向上突破長周期L均線(20日均線)時,為買入點;反之,當S均線向下?lián)舸㎜均線時為賣出點。
標的:中國平安(601318),期間:2014.1-2019.1,回測結果:
數(shù)據(jù)來源:萬礦
布林線策略回測
標的:黃金期貨
策略:下穿布林線上邊界做空,上穿布林線下邊界做多
(1)timeperiod=10,回測期間:2017.01.01-2019.02.21
數(shù)據(jù)來源:萬礦
(2)timeperiod=10,回測期間:2016.01.01-2017.02.21
數(shù)據(jù)來源:萬礦
關于Python金融量化
專注于分享Python在金融領域的實際應用,包括金融數(shù)據(jù)分析、金融建模與量化投資等。加入知識星球,免費獲取量化投資學習視頻、公眾號文章Python源代碼,一起學習,共同進步!
總結
以上是生活随笔為你收集整理的显示lib包_【手把手教你】股市技术分析利器之TA-Lib(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: elementui表格复制_Elemen
- 下一篇: mysql服务重启后不见了_一次诡异的M