台積電布林通道逆勢抄底
抄底就是所謂的逆勢策略,能不能用量化的方式實測呢?
布林通道是最廣為人知的逆勢方法,原理是運用均線和標準差,大部分 K 線都涵蓋在 d 日 MA 上下 n 個標準差的範圍之內操作。
- d 數值越大,價格曲線越平滑,能減少波動雜訊。
- n 數值越大,能產生越極端的訊號。一般 n 值範圍依據 68-95-99.7 法則(68-95-99.7 rule),設定在 1~3,在常態分布中,距平均值小於一個標準差、二個標準差、三個標準差以內的百分比。
當股價跌破下軌通道,可能出現超賣訊號,會在之後均值回歸,產生反彈到中軌通道附近。
布林通道策略
以下策略使用 40 日均線搭配 2.5 倍標準差的布林通道,對台積電(2330)進行逆勢操作:當收盤價跌破下軌時進場,回升至中軌時出場。
from finlab import data
from finlab.backtest import sim
close = data.get('price:收盤價')
upperband, middleband, lowerband = data.indicator(
'BBANDS', resample='D', nbdevup=float(2.5), nbdevdn=float(2.5), timeperiod=40
)
entries = lowerband > close
exits = close > middleband
position = entries.hold_until(exits)['2330']
report = sim(position, upload=False, mae_mfe_window=40, name='護國神山救難隊')
取得波動分析報告
取得報酬率圖表
取得交易紀錄
加入停損停利
搶反彈如搶銀行,不管有沒有搶到都要跑!
極端的暴跌行情下搶反彈,87% 勝率、平均持有 19 個交易日,平均獲利 5%。
持有前 10 日內若多數時間保持獲利狀態,則顯示抄在底部的機率高,反之若多數時間為虧損,則可能抄錯底,再破底風險變高,若跌幅超過 15% 則為發生樣本外的特殊崩盤情況,應停損出場。
平均一年不到 3 次,要把握機會!
漲幅超過 10% 產生停利訊號,跌幅超過 15% 產生停損訊號。
from finlab import data
from finlab.backtest import sim
close = data.get('price:收盤價')
upperband, middleband, lowerband = data.indicator(
'BBANDS', resample='D', nbdevup=float(2.5), nbdevdn=float(2.5), timeperiod=40
)
entries = lowerband > close
exits = close > middleband
position = entries.hold_until(exits, take_profit=0.1, stop_loss=-0.15)['2330']
report = sim(position, upload=False, mae_mfe_window=40, name='護國神山救難隊')
report.display_mae_mfe_analysis(violinmode='overlay').show()
report.display()