以前,MACDによる売買手法のバックテストを行ったので,今回はボリンジャーバンドによる売買をバックテストしてみました.
この記事では結果だけを記します.Pythonコードは以下の記事をご覧ください.
手法の概要
今回は,株価がボリンジャーバンドを上回ったときに売り,ボリンジャーバンドを下回ったときに買う手法をバックテストします.
売り買い判定のボリンジャーバンドには,±2σと±3σのバンドを各々用い,それぞれの結果を示します.
例えば±3σのバンドを利用したBacktesting.pyの戦略クラスは,以下のように記述します.ボリンジャーバンドを形成するための移動平均線には25日線を使います.コード全文はこちらの記事末をご覧ください.
class BBsigma(Strategy):
n = 25 #移動平均日数
nu = 3 #何σか
nd = 3 #何σか
def init(self):
self.upper, self.lower = self.I(BB, self.data.Close, self.n, self.nu, self.nd)
def next(self): # チャートデータの行ごとに呼び出される
#+3σより大きいなら売り
if self.data.Close > self.upper:
self.position.close()
#-3σより小さいなら買い
elif self.data.Close < self.lower:
self.buy() # 買い
また,バックテストは2018/1/1~2-21/4/22で行います.
最初の所持金は1000ドルとします.
バックテストの結果
Apple
資産
±3σ:1000 → 1750(+75%)
±2σ:1000 → 1361(+36.1%)
スチールダイナミクス
資産
±3σ:1000 → 1258(+25.8%)
±2σ:1000 → 754(-24.5%)
IBM
資産
±3σ:1000 → 1062(+6.2%)
±2σ:1000 → 1064(+6.4%)
感想
±3σで判定する方が±2σで判定するよりも良い結果になりそうです.
また,MACDでの売買に比べると取引回数が少なく,儲けも小さくなりました.
ボリンジャーバンドは安定して利益が出そうですが,大きくリターンを出すのには向いていないのかもしれません.
バックテストを実行するコードはこちら ↓
https://optrip.xyz/?p=3557