Python炒股bot實測近20股票 一個指標較亂買賺多倍

傳統股票分析,一般分基本面及技術面,基本面專注企業營運狀態,最知名當然屬股神畢菲特畢老,揀選優質公司買入股票,然後長期持有。技術面則主要為「睇圖」,分析股票走勢,發掘買入賣出訊號。之前我們用到具人工智能學習功能的AI bot,今回我們改用另一個不具機器學習的bot作模擬交易backtesting,先非常粗略檢視技術分析是否有參考意義。

作為武林兩大宗之中的技術分析,自然發展出林林總總的招式,如RSI、各種平均線、MACD等等方式,泡製出各項買入賣出點,然而各種指標是否真的有作用?Backtesting可視為檢視策略的好起步。

TL;DR:因為只是粗略檢視,未檢視太多指標,但相較「隨機群組」任意買賣,若將技術分析視為買賣紀律,撇開爆升股,一般而言可以較亂買亂賣表現更好。由於目前未打算將指標設計得非常精密,結果是價值投資法仍較適合質素好的股票,一注all in坐5年回報較出出入入好。程式依舊可以於github下載

首先python bot和上回一樣,以17隻股票約5年數據作樣本,除比較股價本身表現及模擬根據指定技術分析作買賣的結果外,亦加入一項「散戶群組」作參照群組,bot的買賣決定完全隨機,重複100次並取平均數;若根據技術指標作買賣的backtesting結果,無法跑贏亂買亂賣的話,那看指標還不如擲骰仔。今次使用的機械人不具學習功能,只會根據既定指標模擬交易。

笑死畢菲特的RSI:不要買騰訊、不要買港視、不要買Tesla、不要買Apple

第一個測試的目標是RSI,取其簡單。一般而言RSI太低,會被視為超賣,將迎來反彈,vice versa。若我們使用RSI低於20時買入,RSI高於80時賣出的策略,第一項結果極出人意表:騰訊(700)、港視(1137)、Tesla和畢菲特重倉的Apple均出現5年零回報的結果,詳細檢視數據,發現:

過於強勢的股票,RSI從沒低過20,5年不超賣,於是bot呆等5年,仍在等待入場時機。

以RSI 20和80作指標backtesting港交所(388)時出現一個有趣狀況,Bot在大部份時間都能跑贏散戶(平均值),但在去年年尾急升的一段,由於Bot過早清倉,反而告別最大的升浪,反而被散戶群組後來居上。

MACD黃金交叉有戰績 惟仍會中大伏

再測試一個簡單技術指標:MACD黃金交叉。整體而言效果不俗,有約一半樣本除了跑贏隨機買賣的對照群組,當中MUR、SU、港交所表現更為亮眼,不少亦跑贏本身股價表現,但對暴升股如Tesla、Apple、港視(1137)、騰訊(700)來說,則仍追不上股價表現,其中騰訊的測試表現更較亂買亂賣差,若本身擅於揀股,與其跟指標出出入入,或許一注到尾更為實際。此外單單靠MACD黃金交叉作決定的話,同樣會遇上SQQQ 5年暴跌99%的災難:bot在期內大蝕95%。

目前我們檢視到此為此,因為這bot只負責模擬交易,下期我們會用其他程式,嘗試尋找具效益的技術指標。

【AI股票bot使用需知】