台積電逆勢抄底
抄底就是所謂的逆勢策略,能不能用量化的方式實測呢?
布林通道是最廣為人知的逆勢方法,原理是運用均線和標準差,大部分 K 線都涵蓋在 d日 MA 上下 n 個標準差的範圍之內操作。
d數值越大,價格曲線越平滑,能減少波動雜訊。
n數值越大,能產生越極端的訊號,一般n值範圍依據68–95–99.7法則(68–95–99.7 rule),設定在1-3,在常態分布中,距平均值小於一個標準差、二個標準差、三個標準差以內的百分比。當股價跌破下軌通道,可能出現超賣訊號,會在之後均值回歸,產生反彈到中軌通道附近。
In [1]:
Copied!
!pip install finlab
!pip install ta-lib-bin
!pip install finlab
!pip install ta-lib-bin
布林通道策略¶
In [2]:
Copied!
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='護國神山救難隊')
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='護國神山救難隊')
輸入成功!
WARNING:finlab.data:price:收盤價 -- Daily data usage: 113.8 / 5000 MB WARNING:finlab.data:price:開盤價 -- Daily data usage: 135.3 / 5000 MB WARNING:finlab.data:price:最高價 -- Daily data usage: 156.9 / 5000 MB WARNING:finlab.data:price:最低價 -- Daily data usage: 178.3 / 5000 MB WARNING:finlab.data:price:成交股數 -- Daily data usage: 208.3 / 5000 MB WARNING:finlab.data:etl:adj_close -- Daily data usage: 236.8 / 5000 MB WARNING:finlab.data:security_categories -- Daily data usage: 236.9 / 5000 MB
取得波動分析報告¶
In [3]:
Copied!
report.display_mae_mfe_analysis(violinmode='overlay').show()
report.display_mae_mfe_analysis(violinmode='overlay').show()
取得報酬率圖表¶
In [5]:
Copied!
# 取得報酬率圖表
report.display()
# 取得報酬率圖表
report.display()