システムトレード

[EasyLanguageでシステムトレード]作成したストラテジーでバックテストをしてみよう

EasyLanguage バックテスト

前回、『トレードステーションでシステムトレードの自動売買ストラテジーを作成してみよう』にて、自動売買ルール、ストラテジーの作成方法について学びました。

今回は、作成したストラテジーで、実際に取引したら、どれくらいの損益が出るかを、過去のチャートからテストする、バックテストのやり方を紹介します。

バックテストは、作成したストラテジーが、そもそも思い通りに注文できているかを確かめるとともに、与える変数の最適化もできます。

最適化をすると、どういう設定をすれば、最も利益が出るかというのがわかります。

バックテストをやらずに、実際に取引をしてしまうと、検証が不十分で思い通りの取引がされず、多額の損失が出てしまうこともあります。

新しいストラテジーを作ったら、バックテストは、必ずするようにしましょう。

ここでは、ストラテジーは作成済みとして進めます。まだの方は、前回の見て、作成してみてください。

パンダはし
パンダはし
バックテストは重要なんだなー

タートル 投資手法 バックテスト
この結果を見てもまだシステムトレードしないのか【タートル流投資手法の驚くべきバックテスト結果】タートルが取ったとされる投資手法をプログラム化して、バックテストを行いました。その結果としては、かなりのリターンが期待できるものでした。トレンドフォローの投資手法は、まだまだ現役であるようです。...

目次

バックテストをする前に

前回、「短期移動平均線が長期移動平均線を交差したときに注文を出す」というストラテジーを作りました。

今回は、そのストラテジーのバックテストを行います。

ストラテジーのバックテストは、「チャート分析」ウィンドウにて確認できます。

ワークシートから、チャート分析ウィンドウを最大化で表示します。

チャート分析ウィンドウ

ストラテジーのバックテストをする前に、ストラテジーで使う指標を、チャートに表示してみましょう。

今回のストラテジーでは、「短期移動平均線」と「長期移動平均線」が出てきますので、それらを表示してみましょう。

パンダはし
パンダはし
ストラテジーが思い通りに注文してくれるかが、確かめやすいよ

「挿入」タブから、「インジケーター」をクリックしてください。

インジケーター表示

そうすると、「分析テクニックを挿入」ウィンドウが開きます。

「インジケーター」タブが開かれているのを確認し、リストの中から「移動平均線(2本)」をクリックして選択してください。

最後に「OK」ボタンを押せば、短期移動平均線と長期移動平均線が描画されます。

移動平均線 描画

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

パンダはし
パンダはし
トレードステーションに入っていない線を引きたければ、もちろん自分で作れるよ。

移動平均線 描画完了

前回作成したストラテジーでは、短期移動平均線は9日間の平均値、長期移動平均線は18日間の平均値を採用しています。

短期移動平均線と長期移動平均線が、その設定になっているか確認しましょう。

「設定」タブから、「分析テクニック」をクリックしてください。

移動平均線 設定確認

「分析テクニックとストラテジーを設定」ウィンドウが開きます。

「移動平均線(2本)」をクリックして選択後に、「設定」ボタンを押します。

移動平均線 設定確認2

「インジケーターの設定:移動平均線(2本)」ウィンドウが開くので、「入力」タブを選びます。

そこには、名前(変数)と、その値が確認できます。

下の画像のように、「短期」に「9」、「長期」に「18」と入っていれば、ストラテジーと同じ条件です。

異なる場合は、値を修正しましょう。

初めて開いた場合は、短期は5、長期は15となっているかもしれません。

移動平均線 設定確認3

これで、ストラテジーに使用する指標が、チャートに表示されました。

それでは、ストラテジーの検証(バックテスト)をしてみましょう。

バックテストをしてみよう

いよいよ、バックテストをしてみましょう。

「チャート分析ウィンドウ」の「挿入」タブから、「ストラテジー」をクリックします。

ストラテジー挿入

「ストラテジーを挿入」ウィンドウが開きます。

リストの中から、前回で作成したストラテジー「Cross Average」を選択します。その後、「OK」をクリックします。

ストラテジーを挿入2

「分析テクニックとストラテジーを設定」ウィンドウが開きます。

入力値には、ストラテジーを作成したときの数字が入っています。

この入力値に出てくる数字こそが、前回で「input」文で指定した変数です。

「vars」文で定義した変数はここでは現れていません。

「input」文で宣言した変数は、「設定」を押すことで、入力値を手軽に変更できます。

ストラテジーを挿入3

ここで、注意してほしいのは、「プログラムトレード」のチェックを外しておいてください。

ここにチェックを入れると、ストラテジー通りに売買が始まります。

バックテストの段階では、チェックは入れないことを強くおすすめします。

最後に、「OK」をクリックします。

パンダはし
パンダはし
チェックボックスは外しとかないと大損しちゃうかも!!

これで、「チャート分析」ウィンドウに、「Buy」や「Sell」が表示されたこと思います。

(ストラテジーの条件に該当するところが、ひとつもない場合は、もちろん何も表示されません)

ストラテジーによる売買確認

今回のストラテジーでは、短期移動平均線と長期移動平均線がクロスするところなので、上の画像のように、2本の線がクロスしているところで、たしかに注文が出ていることがわかります。

ストラテジーのパフォーマンスを確認しよう

それでは、ストラテジーのパフォーマンスを確認してみましょう。

パフォーマンスとは、適用したストラテジーの取引回数や、損益がどれくらいかを表したものです。

「チャート分析」ウィンドウの「表示」タブから、「ストラテジーパフォーマンスレポート」をクリックします。

ストラテジーのパフォーマンス確認

「ストラテジーパフォーマンスレポート」ウィンドウが開きます。

そこの総損益を見てもらうと、対象の期間内で、ストラテジーを適用した場合の、損益がわかります。

下の画像では、4日間で-2,100円であることがわかります。若干のマイナスですね。

ストラテジーのパフォーマンス確認

これにて、ストラテジーの検証ができました。

作成したストラテジーがどれくらいの損益を出すかが、明らかとなりました。あとは、変数を変えてみたり、そもそもストラテジーを変更したりして、もっとも利益が出るストラテジーを探してみましょう!

ストラテジーの最適化

トレードステーションには、ストラテジーの最適化をする機能があります。

先ほどの「分析テクニックとストラテジーを設定」ウィンドウにて、入力値が変更できたかと思います。

この入力値がいくつのときに、最も利益が出るかというのを、その値を変えながら検証していくことを「最適化」と呼んでいます。

この機能を使うことで、簡単にストラテジーの最適値が求まります。

パンダはし
パンダはし
最適化は便利だなー

ただし、最適化はチャートが出ている範囲でしか行われません。

そこで、まずはチャートの表示期間を変更してみましょう。

チャートの表示期間を変更する

先ほどまでは、直近の4日間の五分足しか表示されていませんでした。

したがって、バックテストもその期間でしか行われていません。

バックテストをする期間が短いと、そのストラテジーが本当に利益をもたらしてくれるのかがわかりません。

期間が短いと、たまたまその期間だけでは勝てていたということになりかねません。

なので、長期間でバックテストをすることをおすすめします。

そのためには、チャートを表示する期間を変更すれば良いです。

その方法は、以下の画像に示すように、チャート上で右クリックするか、「設定」タブから、「銘柄コードの設定」をクリックします。

複数でのストラテジー適用

「銘柄コードの設定」ウィンドウが開きます。

「設定」タブが開いていることを確認し、「範囲」のところの「開始日」を変更すれば、その日からのチャートを表示できます。

また、足の種類もここで変更できるので日足で売買したいというのであれば、変更できます。

長い期間を指定すると、「結構時間かかりますけど良いですか?」と確認されます。

ネット環境にもよりますが、1年分のチャートで30秒かなーという感じです。チャートを読み込んでいるときも、他の作業はできるので、特にストレスにはなりません。

バックテスト期間の変更
パンダはし
パンダはし
10年以上の長期間でバックテスト・最適化しちゃうぞー!

最適化の実施

チャートを表示する期間を変更できたら、ストラテジーの最適化をしてみましょう。(ただしここでは、最適化の期間は直近の4日間で試します)

以下に方法を説明します。

「チャート分析」ウィンドウ上で右クリックして、「ストラテジー」をクリックします。

「分析テクニックとストラテジーを設定」が開くので、最適化したいストラテジーを選択して「設定」をクリックしてください。

ストラテジーの最適化1

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

ストラテジーの最適化2

「最適化」ウィンドウが開きます。

変数をどのように変化させていくかを設定できます。

ここでは、ShortLen(短期移動平均線の平均日数)を5から13まで、1ずつ変化させていくという設定になります。

つまり、ShortLenを5,6,7・・・13と変化させて、最も利益が大きい時を教えてくれます。

「増分」とは、いくつ単位で変化させていくかであり、もし2とすると、5,7,9,11,13のパターンが検証されます。

もちろん、0.1など、より細かくも設定できます。(このストラテジーの場合、移動平均線の平均日数なので、整数しかダメです)

ストラテジーの最適化3

ShortLenの値が変わったのを確認して、「OK」をクリックしてください。

もしも、LongLenなど他のパラメーターも一緒に最適化したいというのであれば、同じ操作を繰り返せば、設定できます。

ストラテジーの最適化4

「最適化設定」という項目が新たにできています。

最適化の結果を保存したい場合は、テキストデータをどこか適当につくって、「参照」してください。

「テストカウント」とは、ケース数です。

今回は、ShortLenを5から13の9パターン検証するので、テストカウントは9となっています。

もし、LongLenもさらに9パターン検証すると設定すると、9×9=81となります。

設定できたら「最適化」をクリックしてください。

ストラテジーの最適化5

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

ストラテジーの最適化6

黒い画面が消えたら、ストラテジーの設定を開いて、パラメーターの値を確認しましょう。

今回は、ShortLenが9から5に変わっています。(銘柄・期間によって、この結果はいろいろと変わってきます)

最適化した結果、今回は、ShortLenは5が最も利益が得られることがわかりました。

ストラテジーの最適化7

実際、以下の画像は、ShortLenが9だったときの(最適化前の)パフォーマンスレポートです。

全取引で500円のプラスだったことがわかります。

最適化前

それに対し、下の画像は、ShortLenが5のときの(最適化後の)パフォーマンスレポートです。

全取引の結果、5,100円のプラスとなり、たしかに利益が大きくなったことがわかります。

ストラテジーの最適化

ただ、先ほども伝えた通り、銘柄・期間によっては、結果が大きく変わるので、ご注意下さい。

パンダはし
パンダはし
いろんな銘柄・長期間で検証して、本当の最適化をしよう!

複数の銘柄でバックテストする

ここまでは、ひとつの銘柄に対して表示期間を長くしたり、バックテストをしたりしました。

では、複数の銘柄に対して、バックテストを行うにはどうしたら良いでしょうか?

これは単純で、「チャート分析ウィンドウをもうひとつ開けば良い」というだけです。

「チャート分析」ウィンドウ内に、複数の銘柄のチャートを表示できますが、バックテストはできません。

なので、チャート分析ウィンドウをもうひとつ開くのが一番簡単な方法です。

方法は以下です。

トレードステーションの左端にある「トレーディングアプリ」から、「チャート分析」をクリックします。

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

複数でのストラテジー適用

「銘柄コードの設定」ウィンドウが開きます。

銘柄コードを直接入力するか、「検索」をクリックしてください。

銘柄コード挿入

「銘柄検索」ウィンドウが開きます。

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

銘柄コード挿入2

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

銘柄コード挿入

あとは、はじめにストラテジーを挿入したときと同じ要領でバックテストができます。

「チャート分析」ウィンドウ上で、右クリックして、「ストラテジーを挿入」をクリックしてください。

複数銘柄でストラテジー

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

複数銘柄でストラテジー

ひとつのチャート分析ウィンドウに複数銘柄表示

ちなみに、ひとつのチャート分析ウィンドウに複数銘柄をプロットする方法を以下に示します。

「挿入」タブから、「銘柄コード」をクリックします。

複数の銘柄コード

「銘柄コードを挿入」ウィンドウが開きます。

「検索」をクリックしましょう。

(銘柄コードがわかっている場合は直接入力してもOKです)

銘柄コード挿入

「銘柄検索」ウィンドウが開きます。

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

銘柄コード挿入2

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

銘柄コードを挿入3

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

銘柄コード挿入完了

多くの銘柄に対して一気にバックテストするには?

これまでで、

  • 作成したストラテジーのバックテスト
  • チャート表示期間を変更して、長期間でバックテスト
  • 複数銘柄に対して、個別にバックテスト

これらができるようになりました!

パンダはし
パンダはし
だいぶ使いこなせてきたよー!

ですが、ストラテジーのパフォーマンスを確認してみるとわかりますが、2つの「チャート分析」ウィンドウの合計値は確認することができません。

また、もっと多くの銘柄に対してバックテストを行うときに、その都度、「チャート分析」ウィンドウを開くのも非効率です。

バックテストがやりづらいというのであれば、実際の売買をするにも非常に手間です。

それを解決するのが、「オブジェクト指向」という考え方です。

これがなかなか難しいですが、次回解説したいと思います。

是非挑戦してみてください!

タートル 投資手法 バックテスト
この結果を見てもまだシステムトレードしないのか【タートル流投資手法の驚くべきバックテスト結果】タートルが取ったとされる投資手法をプログラム化して、バックテストを行いました。その結果としては、かなりのリターンが期待できるものでした。トレンドフォローの投資手法は、まだまだ現役であるようです。...

Prev→『ストラテジー作成』Next→オブジェクト指向に慣れよう

Nocchi_nochilog(のっち)
少額投資をこよなく愛する1児のパパ&サラリーマン。
お小遣い制でも負けずに投資をしています。

知るだけで暮らしが豊かになる知識を発信中!
若いうちから投資することの重要性を伝えるべく、ブログの記事を更新しています。

特にインスタグラムでは、1日1分で自然とお金の知識が身につくような情報を発信しています。
ぜひ合わせてご覧ください!

下のアイコンから飛べます!
\ Follow me /

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です