前回、『トレードステーションでシステムトレードの自動売買ストラテジーを作成してみよう』にて、自動売買ルール、ストラテジーの作成方法について学びました。
今回は、作成したストラテジーで、実際に取引したら、どれくらいの損益が出るかを、過去のチャートからテストする、バックテストのやり方を紹介します。
バックテストは、作成したストラテジーが、そもそも思い通りに注文できているかを確かめるとともに、与える変数の最適化もできます。
最適化をすると、どういう設定をすれば、最も利益が出るかというのがわかります。
バックテストをやらずに、実際に取引をしてしまうと、検証が不十分で思い通りの取引がされず、多額の損失が出てしまうこともあります。
新しいストラテジーを作ったら、バックテストは、必ずするようにしましょう。
ここでは、ストラテジーは作成済みとして進めます。まだの方は、前回の見て、作成してみてください。

目次
バックテストをする前に
前回、「短期移動平均線が長期移動平均線を交差したときに注文を出す」というストラテジーを作りました。
今回は、そのストラテジーのバックテストを行います。
ストラテジーのバックテストは、「チャート分析」ウィンドウにて確認できます。
ワークシートから、チャート分析ウィンドウを最大化で表示します。

ストラテジーのバックテストをする前に、ストラテジーで使う指標を、チャートに表示してみましょう。
今回のストラテジーでは、「短期移動平均線」と「長期移動平均線」が出てきますので、それらを表示してみましょう。
「挿入」タブから、「インジケーター」をクリックしてください。

そうすると、「分析テクニックを挿入」ウィンドウが開きます。
「インジケーター」タブが開かれているのを確認し、リストの中から「移動平均線(2本)」をクリックして選択してください。
最後に「OK」ボタンを押せば、短期移動平均線と長期移動平均線が描画されます。

なんと簡単!移動平均線は、トレードステーションに標準で入っているので、非常に簡単に表示できます。

前回作成したストラテジーでは、短期移動平均線は9日間の平均値、長期移動平均線は18日間の平均値を採用しています。
短期移動平均線と長期移動平均線が、その設定になっているか確認しましょう。
「設定」タブから、「分析テクニック」をクリックしてください。

「分析テクニックとストラテジーを設定」ウィンドウが開きます。
「移動平均線(2本)」をクリックして選択後に、「設定」ボタンを押します。

「インジケーターの設定:移動平均線(2本)」ウィンドウが開くので、「入力」タブを選びます。
そこには、名前(変数)と、その値が確認できます。
下の画像のように、「短期」に「9」、「長期」に「18」と入っていれば、ストラテジーと同じ条件です。
異なる場合は、値を修正しましょう。
初めて開いた場合は、短期は5、長期は15となっているかもしれません。

これで、ストラテジーに使用する指標が、チャートに表示されました。
それでは、ストラテジーの検証(バックテスト)をしてみましょう。
バックテストをしてみよう
いよいよ、バックテストをしてみましょう。
「チャート分析ウィンドウ」の「挿入」タブから、「ストラテジー」をクリックします。

「ストラテジーを挿入」ウィンドウが開きます。
リストの中から、前回で作成したストラテジー「Cross Average」を選択します。その後、「OK」をクリックします。

「分析テクニックとストラテジーを設定」ウィンドウが開きます。
入力値には、ストラテジーを作成したときの数字が入っています。
この入力値に出てくる数字こそが、前回で「input」文で指定した変数です。
「vars」文で定義した変数はここでは現れていません。
「input」文で宣言した変数は、「設定」を押すことで、入力値を手軽に変更できます。

ここで、注意してほしいのは、「プログラムトレード」のチェックを外しておいてください。
ここにチェックを入れると、ストラテジー通りに売買が始まります。
バックテストの段階では、チェックは入れないことを強くおすすめします。
最後に、「OK」をクリックします。
これで、「チャート分析」ウィンドウに、「Buy」や「Sell」が表示されたこと思います。
(ストラテジーの条件に該当するところが、ひとつもない場合は、もちろん何も表示されません)

今回のストラテジーでは、短期移動平均線と長期移動平均線がクロスするところなので、上の画像のように、2本の線がクロスしているところで、たしかに注文が出ていることがわかります。
ストラテジーのパフォーマンスを確認しよう
それでは、ストラテジーのパフォーマンスを確認してみましょう。
パフォーマンスとは、適用したストラテジーの取引回数や、損益がどれくらいかを表したものです。
「チャート分析」ウィンドウの「表示」タブから、「ストラテジーパフォーマンスレポート」をクリックします。

「ストラテジーパフォーマンスレポート」ウィンドウが開きます。
そこの総損益を見てもらうと、対象の期間内で、ストラテジーを適用した場合の、損益がわかります。
下の画像では、4日間で-2,100円であることがわかります。若干のマイナスですね。

これにて、ストラテジーの検証ができました。
作成したストラテジーがどれくらいの損益を出すかが、明らかとなりました。あとは、変数を変えてみたり、そもそもストラテジーを変更したりして、もっとも利益が出るストラテジーを探してみましょう!
ストラテジーの最適化
トレードステーションには、ストラテジーの最適化をする機能があります。
先ほどの「分析テクニックとストラテジーを設定」ウィンドウにて、入力値が変更できたかと思います。
この入力値がいくつのときに、最も利益が出るかというのを、その値を変えながら検証していくことを「最適化」と呼んでいます。
この機能を使うことで、簡単にストラテジーの最適値が求まります。
ただし、最適化はチャートが出ている範囲でしか行われません。
そこで、まずはチャートの表示期間を変更してみましょう。
チャートの表示期間を変更する
先ほどまでは、直近の4日間の五分足しか表示されていませんでした。
したがって、バックテストもその期間でしか行われていません。
バックテストをする期間が短いと、そのストラテジーが本当に利益をもたらしてくれるのかがわかりません。
期間が短いと、たまたまその期間だけでは勝てていたということになりかねません。
なので、長期間でバックテストをすることをおすすめします。
そのためには、チャートを表示する期間を変更すれば良いです。
その方法は、以下の画像に示すように、チャート上で右クリックするか、「設定」タブから、「銘柄コードの設定」をクリックします。

「銘柄コードの設定」ウィンドウが開きます。
「設定」タブが開いていることを確認し、「範囲」のところの「開始日」を変更すれば、その日からのチャートを表示できます。
また、足の種類もここで変更できるので日足で売買したいというのであれば、変更できます。
長い期間を指定すると、「結構時間かかりますけど良いですか?」と確認されます。
ネット環境にもよりますが、1年分のチャートで30秒かなーという感じです。チャートを読み込んでいるときも、他の作業はできるので、特にストレスにはなりません。

最適化の実施
チャートを表示する期間を変更できたら、ストラテジーの最適化をしてみましょう。(ただしここでは、最適化の期間は直近の4日間で試します)
以下に方法を説明します。
「チャート分析」ウィンドウ上で右クリックして、「ストラテジー」をクリックします。
「分析テクニックとストラテジーを設定」が開くので、最適化したいストラテジーを選択して「設定」をクリックしてください。

「ストラテジーの設定」ウィンドウが開くので、最適化したいパラメーターを選択して、「最適化」をクリックしてください。

「最適化」ウィンドウが開きます。
変数をどのように変化させていくかを設定できます。
ここでは、ShortLen(短期移動平均線の平均日数)を5から13まで、1ずつ変化させていくという設定になります。
つまり、ShortLenを5,6,7・・・13と変化させて、最も利益が大きい時を教えてくれます。
「増分」とは、いくつ単位で変化させていくかであり、もし2とすると、5,7,9,11,13のパターンが検証されます。
もちろん、0.1など、より細かくも設定できます。(このストラテジーの場合、移動平均線の平均日数なので、整数しかダメです)

ShortLenの値が変わったのを確認して、「OK」をクリックしてください。
もしも、LongLenなど他のパラメーターも一緒に最適化したいというのであれば、同じ操作を繰り返せば、設定できます。

「最適化設定」という項目が新たにできています。
最適化の結果を保存したい場合は、テキストデータをどこか適当につくって、「参照」してください。
「テストカウント」とは、ケース数です。
今回は、ShortLenを5から13の9パターン検証するので、テストカウントは9となっています。
もし、LongLenもさらに9パターン検証すると設定すると、9×9=81となります。
設定できたら「最適化」をクリックしてください。

下の画像のように黒い画面が出れば、計算実行中です。バックテスト期間やテストケース数によっては、時間がかかりますので、しばらくお待ちください。

黒い画面が消えたら、ストラテジーの設定を開いて、パラメーターの値を確認しましょう。
今回は、ShortLenが9から5に変わっています。(銘柄・期間によって、この結果はいろいろと変わってきます)
最適化した結果、今回は、ShortLenは5が最も利益が得られることがわかりました。

実際、以下の画像は、ShortLenが9だったときの(最適化前の)パフォーマンスレポートです。
全取引で500円のプラスだったことがわかります。

それに対し、下の画像は、ShortLenが5のときの(最適化後の)パフォーマンスレポートです。
全取引の結果、5,100円のプラスとなり、たしかに利益が大きくなったことがわかります。

ただ、先ほども伝えた通り、銘柄・期間によっては、結果が大きく変わるので、ご注意下さい。
複数の銘柄でバックテストする
ここまでは、ひとつの銘柄に対して表示期間を長くしたり、バックテストをしたりしました。
では、複数の銘柄に対して、バックテストを行うにはどうしたら良いでしょうか?
これは単純で、「チャート分析ウィンドウをもうひとつ開けば良い」というだけです。
「チャート分析」ウィンドウ内に、複数の銘柄のチャートを表示できますが、バックテストはできません。
なので、チャート分析ウィンドウをもうひとつ開くのが一番簡単な方法です。
方法は以下です。
トレードステーションの左端にある「トレーディングアプリ」から、「チャート分析」をクリックします。

「チャート分析ウィンドウ」が開くので、新しく開いたウィンドウ上で右クリックして、「銘柄コードの設定」をクリックします。

「銘柄コードの設定」ウィンドウが開きます。
銘柄コードを直接入力するか、「検索」をクリックしてください。

「銘柄検索」ウィンドウが開きます。
銘柄名を入れて、「検索」をクリックすれば、候補が出ますので、表示させたいのを選択して、「OK」をクリックします。

銘柄コードが挿入されていることを確認し、「OK」をクリックしてください。

あとは、はじめにストラテジーを挿入したときと同じ要領でバックテストができます。
「チャート分析」ウィンドウ上で、右クリックして、「ストラテジーを挿入」をクリックしてください。

そこからは、このページの上の方で学んだ方法で、ストラテジーが挿入できます。

ひとつのチャート分析ウィンドウに複数銘柄表示
ちなみに、ひとつのチャート分析ウィンドウに複数銘柄をプロットする方法を以下に示します。
「挿入」タブから、「銘柄コード」をクリックします。

「銘柄コードを挿入」ウィンドウが開きます。
「検索」をクリックしましょう。
(銘柄コードがわかっている場合は直接入力してもOKです)

「銘柄検索」ウィンドウが開きます。
「銘柄名」を入れて「検索」すると、候補が出てきますので、表示したい銘柄を選択して「OK」をクリックしてください。

銘柄コードが挿入されたので、「プロット」をクリックしてください。

これで、ひとつのチャート分析ウィンドウに複数銘柄を表示できました。

多くの銘柄に対して一気にバックテストするには?
これまでで、
- 作成したストラテジーのバックテスト
- チャート表示期間を変更して、長期間でバックテスト
- 複数銘柄に対して、個別にバックテスト
これらができるようになりました!
ですが、ストラテジーのパフォーマンスを確認してみるとわかりますが、2つの「チャート分析」ウィンドウの合計値は確認することができません。
また、もっと多くの銘柄に対してバックテストを行うときに、その都度、「チャート分析」ウィンドウを開くのも非効率です。
バックテストがやりづらいというのであれば、実際の売買をするにも非常に手間です。
それを解決するのが、「オブジェクト指向」という考え方です。
これがなかなか難しいですが、次回解説したいと思います。
是非挑戦してみてください!
