【手把手教你】股市技術(shù)分析利器之TA-Lib(一)

市場(chǎng)有自己的時(shí)間觀念。股票投資就如同任何人類互動(dòng)一樣,耐心是一項(xiàng)美德警检】悖——羅伯特·D·愛德華《股市趨勢(shì)技術(shù)分析》

引言

TA-Lib币砂,全稱“Technical Analysis Library”, 即技術(shù)分析庫,是Python金融量化的高級(jí)庫,涵蓋了150多種股票、期貨交易軟件中常用的技術(shù)分析指標(biāo)灰蛙,如MACD、RSI、KDJ、動(dòng)量指標(biāo)、布林帶等等候衍。TA-Lib可分為10個(gè)子板塊:Overlap Studies(重疊指標(biāo))伐弹,Momentum Indicators(動(dòng)量指標(biāo))惨好,Volume Indicators(交易量指標(biāo)),Cycle Indicators(周期指標(biāo))龄句,Price Transform(價(jià)格變換),Volatility Indicators(波動(dòng)率指標(biāo))职抡,Pattern Recognition(模式識(shí)別)缚甩,Statistic Functions(統(tǒng)計(jì)函數(shù))壕探,Math Transform(數(shù)學(xué)變換)和Math Operators(數(shù)學(xué)運(yùn)算)李请,見下圖。本公眾號(hào)將以系列的形式詳細(xì)介紹talib技術(shù)指標(biāo)的實(shí)現(xiàn)和應(yīng)用认轨,而本文作為開篇此叠,主要介紹Overlap Studies內(nèi)容。

安裝與使用

安裝:在cmd上使用“pip install talib”命令一般會(huì)報(bào)錯(cuò)只锭,正確安裝方法是裹驰,進(jìn)入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版本選擇相應(yīng)的安裝包),將下載包放在當(dāng)前工作路徑中涩蜘,然后在Anaconda Prompt(或windows的cmd)里面輸入命令:pip install TA_Lib-0.4.17-cp27-cp27m-win_amd64.whl。

使用:import talib as ta

Overlap Studies Functions重疊指標(biāo)

01 移動(dòng)平均線系列

移動(dòng)平均線是技術(shù)分析理論中應(yīng)用最普遍的指標(biāo)之一艇棕,主要用于確認(rèn)友鼻、跟蹤和判斷趨勢(shì)胸梆,提示買入和賣出信號(hào)秽荤,在單邊市場(chǎng)行情中可以較好的把握市場(chǎng)機(jī)會(huì)和規(guī)避風(fēng)險(xiǎn)。但是楔敌,移動(dòng)平均線一般要與其他的技術(shù)指標(biāo)或基本面相結(jié)合來使用,特別是當(dāng)市場(chǎng)處于盤整行情時(shí),其買入賣出信號(hào)會(huì)頻繁出現(xiàn),容易失真贸诚。

通用函數(shù)名:MA

代碼:ta.MA(close,timeperiod=30,matype=0)

移動(dòng)平均線系列指標(biāo)包括:SMA簡單移動(dòng)平均線运悲、EMA指數(shù)移動(dòng)平均線磁餐、WMA加權(quán)移動(dòng)平均線赛蔫、DEMA雙移動(dòng)平均線鳄橘、TEMA三重指數(shù)移動(dòng)平均線垃它、TRIMA三角移動(dòng)平均線、KAMA考夫曼自適應(yīng)移動(dòng)平均線靠胜、MAMA為MESA自適應(yīng)移動(dòng)平均線冻璃、T3三重指數(shù)移動(dòng)平均線。

其中白魂,close為收盤價(jià),時(shí)間序列冤灾,timeperiod為時(shí)間短,默認(rèn)30天归粉,指標(biāo)類型matype分別對(duì)應(yīng):0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default=SMA)

不同類型的移動(dòng)均線也有各自相應(yīng)的調(diào)用函數(shù):

#先引入后面可能用到的包(package)

importpandasaspd

importnumpyasnp

importmatplotlib.pyplotasplt

%matplotlib?inline

#正常顯示畫圖時(shí)出現(xiàn)的中文和負(fù)號(hào)

frompylabimportmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

#引入TA-Lib庫

importtalibasta

#查看包含的技術(shù)指標(biāo)和數(shù)學(xué)運(yùn)算函數(shù)

#print(ta.get_functions())

#print(ta.get_function_groups())

ta_fun=ta.get_function_groups()

ta_fun.keys()

#使用tushare獲取上證指數(shù)數(shù)據(jù)作為示例

importtushareasts

df=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)

foriinrange(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ù)各種類型移動(dòng)平均線',fontsize=15)

plt.xlabel('')

plt.show()

?數(shù)據(jù)來源:tushare

#畫5、30滴劲、120班挖、250指數(shù)移動(dòng)平均線

N=[5,30,120,250]

foriinN:

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ù)走勢(shì)',fontsize=15)

plt.xlabel('')

plt.show()

數(shù)據(jù)來源:tushare

02 布林帶

布林帶(Bollinger Band),由壓力線、支撐線價(jià)格平均線組成运吓,一般情況價(jià)格線在壓力線和支撐線組成的上下區(qū)間中游走,區(qū)間位置會(huì)隨著價(jià)格的變化而自動(dòng)調(diào)整倦青。布林線的理論使用原則是:當(dāng)股價(jià)穿越最外面的壓力線(支撐線)時(shí),表示賣點(diǎn)(買點(diǎn))出現(xiàn)磷账。當(dāng)股價(jià)延著壓力線(支撐線)上升(下降)運(yùn)行吼鱼,雖然股價(jià)并未穿越菇肃,但若回頭突破第二條線即是賣點(diǎn)或買點(diǎn)蟆技。在實(shí)際應(yīng)用中,布林線有其滯后性眶蕉,相對(duì)于其他技術(shù)指標(biāo)在判斷行情反轉(zhuǎn)時(shí)參考價(jià)值較低碱璃,但在判斷盤整行情終結(jié)節(jié)點(diǎn)上成功率較高。

計(jì)算方法:首先計(jì)出過去 N 日收巿價(jià)的標(biāo)準(zhǔn)差 SD(Standard Deviation) 爽航,通常再乘 2 得出 2 倍標(biāo)準(zhǔn)差, Up 線為 N日平均線加 2 倍標(biāo)準(zhǔn)差串述, Down 線則為 N日平均線減 2 倍標(biāo)準(zhǔn)差。

代碼: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_line

df1['M_line']=M_line

df1['L_line']=L_line

df1.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 其他指標(biāo)

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ù)的其他趨勢(shì)指標(biāo)線',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ù)的拋物線擴(kuò)展走勢(shì)',fontsize=15)

plt.xlabel('')

plt.show()

數(shù)據(jù)來源:tushare

均線策略回測(cè)

雙均線策略:分別選擇L天和S天的移動(dòng)平均線(L>S)帕翻,如L=20嘀掸,S=5泉蝌,當(dāng)短周期S均線(5日均線)向上突破長周期L均線(20日均線)時(shí),為買入點(diǎn)粥鞋;反之壕曼,當(dāng)S均線向下?lián)舸㎜均線時(shí)為賣出點(diǎn)腮郊。

標(biāo)的:中國平安(601318),期間:2014.1-2019.1过咬,回測(cè)結(jié)果:

數(shù)據(jù)來源:萬礦

布林線策略回測(cè)

標(biāo)的:黃金期貨

策略:下穿布林線上邊界做空耕捞,上穿布林線下邊界做多

(1)timeperiod=10,回測(cè)期間:2017.01.01-2019.02.21

?數(shù)據(jù)來源:萬礦

(2)timeperiod=10,回測(cè)期間:2016.01.01-2017.02.21

數(shù)據(jù)來源:萬礦

關(guān)于Python金融量化

專注于分享Python在金融領(lǐng)域的實(shí)際應(yīng)用,包括金融數(shù)據(jù)分析、金融建模與量化投資等埃疫。加入知識(shí)星球翠桦,免費(fèi)獲取量化投資學(xué)習(xí)視頻丛晌、公眾號(hào)文章Python源代碼澎蛛,一起學(xué)習(xí)呆馁,共同進(jìn)步!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茎芭,一起剝皮案震驚了整個(gè)濱河市梅桩,隨后出現(xiàn)的幾起案子煮寡,更是在濱河造成了極大的恐慌,老刑警劉巖坐儿,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罪佳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赘艳,警方通過查閱死者的電腦和手機(jī)酌毡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蕾管,“玉大人枷踏,你說我怎么就攤上這事掰曾⌒袢洌” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長掏熬。 經(jīng)常有香客問我佑稠,道長,這世上最難降的妖魔是什么孽江? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任讶坯,我火速辦了婚禮,結(jié)果婚禮上岗屏,老公的妹妹穿的比我還像新娘辆琅。我一直安慰自己,他們只是感情好这刷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布婉烟。 她就那樣靜靜地躺著,像睡著了一般暇屋。 火紅的嫁衣襯著肌膚如雪似袁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天咐刨,我揣著相機(jī)與錄音昙衅,去河邊找鬼。 笑死定鸟,一個(gè)胖子當(dāng)著我的面吹牛而涉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播联予,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼啼县,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了沸久?” 一聲冷哼從身側(cè)響起季眷,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卷胯,沒想到半個(gè)月后子刮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窑睁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年挺峡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卵慰。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖佛呻,靈堂內(nèi)的尸體忽然破棺而出裳朋,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布鲤嫡,位于F島的核電站送挑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏暖眼。R本人自食惡果不足惜惕耕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诫肠。 院中可真熱鬧司澎,春花似錦、人聲如沸栋豫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丧鸯。三九已至蛤铜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丛肢,已是汗流浹背围肥。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜂怎,地道東北人穆刻。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像派敷,于是被迫代替她去往敵國和親蛹批。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • import tkinter as tk from tkinter import ttk import matpl...
    IBM_LELE閱讀 2,847評(píng)論 0 0
  • 抓住自己最有興趣的東西篮愉,由淺入深腐芍,循序漸進(jìn)地學(xué)。 —...
    CuteHand閱讀 2,959評(píng)論 1 3
  • 我們會(huì)根據(jù)業(yè)務(wù)的要求做各種復(fù)雜的報(bào)表试躏,包括了分組猪勇、排序、過濾颠蕴、轉(zhuǎn)置泣刹、差分、填充犀被、移動(dòng)椅您、合并、分裂寡键、分布掀泳、去重、找重...
    fhhhfssfhh閱讀 1,470評(píng)論 0 6
  • 謝謝 你依然記得 謝謝 一起經(jīng)歷過風(fēng)雨 謝謝 仍然一見如故 謝謝 忍受的痛苦歡樂 謝謝 你深邃的眼眸 謝謝 ...
    杏林月閱讀 530評(píng)論 4 7
  • 這幾年有很多相忘于江湖。 創(chuàng)業(yè)這幾年滌蕩的絕對(duì)不僅僅是靈魂员舵,還有我身邊的圈子脑沿。就像一個(gè)女人,判斷自己是不是真的美麗...
    體面事物所的紀(jì)先生閱讀 906評(píng)論 0 0