使用 Python 的 RSI 算法交易
在公眾號「python風(fēng)控模型」里回復(fù)關(guān)鍵字:學(xué)習(xí)資料
機器學(xué)習(xí)是計算密集型的,因為算法不是確定性的,因此必須隨著時間的推移不斷調(diào)整。然而,技術(shù)指標要快得多,因為方程式?jīng)]有改變。因此,這提高了他們用于實時交易的能力。
什么是 RSI?
要創(chuàng)建使用 RSI 的程序,我們必須首先了解 RSI 指標。RSI 是相對強弱指數(shù)的縮寫。它是一個動量指標,使用價格變化的幅度來評估證券是否超買或超賣。
如果 RS一世?值超過70,證券被認為是超買,如果值低于30,則被認為是超賣。超買是指買入造成的泡沫可能很快就會破滅,因此價格會下跌。這創(chuàng)造了一個強大的切入點。
然而,好的做法是僅當(dāng) RSI 值與超買線相交時才下賣單,因為這是一種更保守的方法。至少可以猜測 RSI 何時會達到最高點。
概念:
本程序試圖使用 talib(技術(shù)分析)庫來實現(xiàn) RSI 線與超賣超買線的交點。該程序的大部分內(nèi)容并非來自對指標的編程(因為它是在庫中創(chuàng)建的),而是實現(xiàn)了如何使用超賣和超買區(qū)域進行交易。
這些是該計劃的先決條件。Yfinance 用于下載股票數(shù)據(jù),talib 用于計算指標值。Matplotlib當(dāng)然是將數(shù)據(jù)繪制成圖形。
此腳本訪問數(shù)據(jù)并根據(jù)以下兩個方程計算 rsi 值:
RSIstep1?=100?[100/(1+平均損失/平均收益 )]
RSIstep2?=100?[100/(1+平均平均損失?13+當(dāng)前損失/之前的平均收益?13+當(dāng)前收益 ) ]
該圖顯示了所有超買和超賣區(qū)域,以及為記錄的股票收盤價的每個值計算的 RSI 值。這提供了股票數(shù)據(jù)的良好可視化

這是結(jié)果圖。隨著時間的推移,我們可以看到 RSI 值在不同部分之間波動。RSI 的好處在于它是相對的。這意味著信號的強度與實際值無關(guān),而是與過去值的關(guān)系。
缺失的步驟:
通常,文章到此為止。他們在給出股票交易程序的初步代碼后結(jié)束。有必要更進一步,真正評估股票交易計劃,基于該計劃的盈利能力。這就是為什么我要交出程序。
這個腳本記錄了每個點落入的部分。它要么處于超買、超賣或無區(qū)域,即在兩條線之間。
該腳本集成了 RSI 交易的基本策略。交易策略是當(dāng)價值離開超買和超賣部分時,它進行適當(dāng)?shù)慕灰?。例如,如果它離開超賣部分,則進行買入交易。如果它離開超買部分,則進行賣出交易。
此腳本使用程序進行的交易來計算每筆交易的利潤或虧損。這給出了對程序的最佳評估,因為它準確地針對要查找的變量。qty 變量計算購買了多少股。
運行程序后,計算的利潤為:
Profit : $58.3
結(jié)論:
事實上,考慮到風(fēng)險回報率,58.3 美元的利潤實際上并不是一個很好的投資。有很多方法可以改進程序:
調(diào)整耐心變量
這個變量是在 RSI 值之后多久進行交易。調(diào)整這個值,找到一個模式,并優(yōu)化它以獲得更好的結(jié)果。
2. 找到最好的公司
該算法對哪種股票最有效?在不同的公司上測試此程序以進行評估。
再找中國恒大5年數(shù)據(jù)為例,這是中國恒大近5年的K線圖

相應(yīng)的RSI繪圖如下,我們可以看到一些交易數(shù)據(jù)在oversold超賣線下,意味著以后可能有上漲空間。

提醒一下,股票歷史數(shù)據(jù)是滯后信息,我們要盯緊公司自身經(jīng)營狀況,然后決定此公司是否有投資價值,公司輿情信息先于股票大盤數(shù)據(jù),會反應(yīng)到股票大盤上。雖然中國恒大有些數(shù)據(jù)低于oversold,但此公司最近輿情負面消息太多,建議大家抄底需要謹慎。除非政府有救助意向,否則中國恒大股票會長期繼續(xù)陰跌。
使用 Python 的 RSI 算法交易就為大家介紹到這里,歡迎各位同學(xué)報名《呆瓜半小時入門python數(shù)據(jù)分析》,學(xué)習(xí)更多相關(guān)知識

版權(quán)聲明:文章來自公眾號(python風(fēng)控模型),未經(jīng)許可,不得抄襲。遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。