3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】ボリンジャーバンドによる売買手法をバックテストしてみた

Last updated at Posted at 2021-04-23

以前,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

bokeh_plot (14).png

資産
±3σ:1000 → 1750(+75%)
±2σ:1000 → 1361(+36.1%)

スチールダイナミクス

bokeh_plot (18).png

資産
±3σ:1000 → 1258(+25.8%)
±2σ:1000 → 754(-24.5%)

IBM

bokeh_plot (22).png

資産
±3σ:1000 → 1062(+6.2%)
±2σ:1000 → 1064(+6.4%)

感想

±3σで判定する方が±2σで判定するよりも良い結果になりそうです.
また,MACDでの売買に比べると取引回数が少なく,儲けも小さくなりました.
ボリンジャーバンドは安定して利益が出そうですが,大きくリターンを出すのには向いていないのかもしれません.

バックテストを実行するコードはこちら ↓
https://optrip.xyz/?p=3557

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?