最近市場行情不好,多多研發新的選股策略,開發新功能,你一定要知道的市場週期,並且順應市場週期的發展,才不會每次都錯失良機,甚至是買在高點。你可以跟著 FinLab 加強策略,隨著我們研發新功能,都會是用戶最需要的,也是我們覺得可以幫到大家的,所以趁現在瞭解一下有哪些新功能吧!趁著現在熊市。
熊市做什麼
1. 熊市是給你研發選股策略用的
很多人遇到熊市就去放假去,好好平復心裡的創傷,對於投資理財放了個假,過個一年半年,回來看,股市又不知到去哪裡了。
2. 機會是給準備好的人的
不要等到牛市一頭熱,別人做什麼交易,自己也要跟著做,哪裡有好康到處尋覓,可能聽到的好康,都是別人已經要倒貨的好康。
3. 萬年如一日,一日如萬年
發揮十年磨一劍的精神,要做就做用好幾年的策略,而不是看最近什麼好做,而做什麼,這樣容易迷失在交易得到路上,學而不精。
4. 永遠都在研發策略
你說你爆虧了一波,我也是呀!心境上除了比較少看價格的波動以外,我還是不斷的在改良交易策略,研發新的功能。先把下一階段的策略都佈局好,等到行情一來,抓的早,佈得滿,抱到好。
就算你有再好的策略,但是因為人性,還是可能佈局在高點,停機在低點。所以現在不要再猶豫了,現在把策略都研發好,等到該賺的時候才賺得到。
策略新功能
回測要有好的穩定的績效,要有更多讓績效變穩定的功能,針對熊市行情,大家比較保守,希望產業可以平均分配,希望可以融券對沖風險,我們都聽到了,所以特別研發了一些功能,廢話不多說,趕快來揭曉這禮拜的新功能。介紹 0.32.2.dev 版本的 FinLab Package 有什麼樣的新功能!
1. SunBurst 讓你一眼看出目前股票部位的產業偏好
這是我們神燈精靈 Ben 做的新功能,可以顯示當前的股票,有哪些產業,產業的偏重是哪一塊,詳細內容請見這一篇完整的文章!
2. 回測支援多空對沖
FinLab Package 終於支援做空了,假如你原本就有一個好策略,可以做空 0050 試試看,雖然報酬率可以能會下降,但是風險也會大幅縮小!非常適合我們做多檔股票資產配置使用,
我只是很納悶,怎麼好用的功能,我怎麼不早點來做?XD
做空的方式如下:
from finlab import data
from finlab import backtest
close = data.get('price:收盤價')
position = close < 0
position['2330'] = 0.5
position['1101'] = -0.5
r = backtest.sim(position)
r.display()
另外值得一提的是,新的版本 position
除了以前的布林訊號 (True/False) 外,也可以使用權重!所以上方程式碼,就是 50% 比重給 2330 做多,50% 給 1101 做空。
這樣的權重分配方式,完全兼容之前的版本,也就是 position 是 True / False 的狀況,因為 True 在電腦運算中,本來就代表 1 ,而 False 代表 0。權重都是 1 的情況下,程式就會跟以前一樣平均分配資產喔。
以下是我最近在研發的台股策略,假如額外去空 0050 做對沖,會如何呢?
由於這個策略績效滿好的,所以我拿出20%來融券 0050,效果如下
可以發現報酬率大幅縮水了,但是回測期間的最大跌幅 (Max Drawdown) 只剩下 -10%,對沖掉大盤的風險,心情更不容易起伏,但是要注意的是,這邊回測時,程式並不會幫你模擬融卷回補喔!所以真正操作的時候,可能要稍微留意融券回補的那幾天,可能會無法像是模擬一樣,實際操作可能要用其他的方式,例如期貨或是同類型 ETF 的融券。另外,另外要注意的地方是,不論是現貨、融券部位,在此並不是以「張」為單位,而是「資金比例」,在實際操作時,要記得隨時檢查比例不要差太多,因為融券放空,虧損時,部位會增加喔!也就是越虧風險越高,大家要注意比例並且在融券虧損時減碼喔!
3. 支援 Pandas_ta 計算技術指標
Pandas_ta 最近一兩年算是計算技術指標的後起之秀,原因在於 TaLib 有時候實太難安裝了,而且技術指標就只有那100個,都是老調重彈,沒有更新。有鑒於此,Pandas_ta 採用純 Pandas 計算技術指標,跟不同的作業系統有比較好的相容性。另外,Pandas_ta 也有很多最新的技術指標,例如 supertrend indicator。有非常多沒有看過的指標,像是「Even Better Sinewave 」,聽起來實在是非常有趣呀!這些都可以在 Pandas_ta 文檔中找到。
我們將 Pandas_ta 與 Finlab 整合,使用方式非常的簡單,就跟以前一模一樣,用一行簡短的程式,就可以計算兩千檔股票的數值:
from finlab import data
values = data.indicator('supertrend')
此時,程式會優先搜尋 TaLib 中是否有對應的函式,假如沒有的話,就會搜尋 Pandas_ta。可以讓你一次把所有股票的技術指標一次計算出來。缺點是 Pandas_ta 計算的速度比較慢,所以運算時要稍微等待一下。
下一個階段做什麼?
既然現在回測已經支援權重,那是不是該回測一些權重分配的演算法呢!我們將陸續整合資產配置演算法,PyPortfolioOpt,將股票權重做更有效的配置。看看究竟原本的策略平均分配,用風險報酬最佳化後,產生的權重,是否會有更好的表現?
假如有任何的想要新增的功能,也歡迎在 discord 給我們一些建議喔!