2つ目のテクニカル分析アプリの開発始めます! たっきん(Twitter)です!
前回作成した1つ目のテクニカル分析:単純移動平均(SMA)のシステムトレード・アプリケーションは無事に本番口座で運用できるようになったので、次は2つ目のテクニカル分析アプリケーションの作成を行っていきたいと思います。
冒頭でも記載している通り、2つ目のアプリケーションは「ボリンジャーバンド」にしました。
ボリンジャーバンドも単純移動平均と同様にメジャーなトレンド系のテクニカル指標であり、「順張り型」や「逆張り型」での使用方法がよく知られていますし、実際にそのような使い方を解説しているブログも数多く見受けられます。
しかし、
- その使い方は本当に有効なのか?
- 仮に有効だとしてどの程度有効なのか?
- 定量的にどの程度利益が出せるのか?
を解説しているブログはほとんどないのが現状です。
ボリンジャーバンドの有効な活用方法は解説しているのに、定量的にどの程度の利益が出せるのかの解説がないと「これ、本当に使えるの?」と疑問を抱く人も多いのではないでしょうか?
なので今回、ボリンジャーバンドを使ったトレード手法の実態を過去チャートを使ってバックテストを行い、有効性があるのか否かをはっきりさせていきたいと思います!
バックテストの方針
バックテストを実施するために、まずは「ボリンジャーバンド」ノードを追加していきます。
シストレ・アーキテクチャも下図のようになります。
そして、この「ボリンジャーバンド」ノードにバックテスト・ロジックを実装していきます。
まずはボリンジャーバンドの算出式から方針を考えていきましょう。
ボリンジャーバンドは簡易的に表現すると下記の3本の線と計算式で描かれます。
- 単純移動平均線(SMA):過去y日間の移動平均線
- 上部バンド:単純移動平均線 + x*標準偏差(σ)
- 下部バンド:単純移動平均線 – x*標準偏差(σ)
上記からもわかるように、ボリンジャーバンドのパラメーターは「σの係数:x」と「移動平均の算出期間:y」の2つとなります。
また、損益シミュレーションを行うには損切ポイントも設定する必要があるため「損切の閾値:z」を追加し、バックテストのパラメーターは全部で3つとなります。
よってバックテストのやり方としてはx、y、zの値を変動させた総当たりによる損益シミュレーションを行っていきます。
結果の表現方法としてはx,yの2次元ヒートマップをz個作成する方向性で考えています。
Entry・Exitポイント
次は実際にトレードすることを想定したEntryポイント、Exitポイントを決めていきましょう。
前述した通りボリンジャーバンドの使用方法には「順張り型」、「逆張り型」がありますが、まずは「逆張り型」でトレードすることを前提に決めていきたいと思います。
よって、Entryポイント、Exitポイントを下記としました。
<Entryポイント>
・現在価格が「+x*標準偏差(σ)」と「-x*標準偏差(σ)」で構成されるバンド帯から逸脱したタイミング
<Exitポイント>
・ 現在価格が移動平均線へ到達したタイミング
現在の開発状況
現在の開発状況ですが、過去のローソク足チャートよりEntry・Exitポイントを抽出したリストを作成し、その一覧をテーブル及びローソク足チャートに可視化する機能まで作り込みが完了しています。
この一覧表を基に損益シミュレートする機能は今後追加していく予定です。
それでは現在作り込みが完成しているところまでを簡単に紹介していきますね!
まず最初は「σの係数:x」と「移動平均の算出期間:y」の解析範囲を指定し、解析開始ボタンを押すことで選択した解析範囲内の総当たり解析が実行されます。
解析が完了すると解析結果一覧リストが表示できるようになります。
表示させたい「σの係数:x」と「移動平均の算出期間:y」の値を選択し、Fetchボタンを押すことで、選択したパラメータの解析結果一覧を表示させることができます。
さらに、解析結果一覧リストで任意の行を選択すると、その行のEntry・Exitポイントの価格、時間をそれぞれローソク足チャート上に表示させることができます。
一連の操作を動画にもしていますのでよかったら再生してみてください。
さいごに
今回はテクニカル分析のアプリケーション第2弾として「ボリンジャーバンド」の自動売買システムの開発に着手し、まずは「ボリンジャーバンド」の損益シミュレーション開発から作り込みを始めました。
進捗としては自動売買する上でのEntry、Exitポイントを決め、それらのポイントを一覧で表示できるところまで作り込みが完了しました。
次はバックテストによる各種パラメータ総当たりによる損益シミュレーションを行い、「ボリンジャーバンド」の有効性の確認と勝率の良いポイントをヒートマップに表現していく予定です。
それではまた、次回の更新までお待ちくださいね!
早ければ来年早々に本番口座で「ボリンジャーバンド」の自動売買トレードを運用できるように進めていこうと思います。
※ソースコードはGitHubで公開しています。
コメント