どんな記事
- あなたの投資は、手探り ではありませんか?
- あなたのトレードに、確かな根拠 がありますか?
- 検証は、チャートをさかのぼること だと思っていませんか?
- 複数の銘柄、複数の足種、何十年にもおよぶような、統計的な検証 ができていますか?
- リスク管理、資金管理、分散投資が 運用成績にどんな影響をあたえるのか 具体的にイメージできますか?
これらは、過去、実際に筆者自身が抱えていた疑問点です。
トレードでたくさんの失敗をして、悩んで、多くの疑問がわいて、たくさんのバックテストを行うことで、ひとつひとつ解消してきました。
バックテストで実戦以上の気づきがあるとは思いません。しかし、バックテストをすることで 多くの気づきを効率よく 手にすることができます。中には、実戦では得られない気づきもあります。
上記のような疑問をお持ちの方に、この記事が参考になるとうれしいです。
2021年1月13日 お知らせ
当初、この記事に掲載していたバックテストの方法は、2019年のFusionTables・サービス終了に伴い使用することができなくなりました。
バックテストのプログラムの解説は弊サイトの別の記事に任せ、この記事では、
- どんなバックテストを
- どんな点に気をつけて行っているのか
について、まとめ直しました。
バックテストとは
バックテスト
バックテストとは、過去のデータを入力し、そのデータに基づいて仮説およびシナリオが正しいかどうかを検証してみる手法のこと。金融機関においては、市場リスク計測の有効性を確認するため、バックテストが定期的に行われている。
引用元: みずほ総合研究所(株)
バックテストで手法の有効性が確認できれば、「大数の法則」にもとづいて、未来においてもその結果を再現できる可能性がでてきます。(「大数の法則」についてはこちらの記事をご覧ください)
バックテストは手法を決める上でもっとも重要です。バックテストをすることで、自信をもってトレードに挑むことができるようになります。
なんでもありのバックテスト
筆者が行っている検証には以下のような特徴があります。
データさえあれば何でもあり
- 株式、FX、コモディティ、仮想通貨、海外市場
- 銘柄数に上限なし
- 何年分でも検証できる
- スワップポイント、スプレッドなどを含めた検証
資金管理やリスク管理
- バックテストが最も得意とする領域
- 手数料や税金を含めた検証
複数銘柄の分散投資
- 複数銘柄をまたぐポジション調整
- 相関係数やボラティリティによるエントリーの制限
結果の精査
- グラフ化や分析も自由自在
- 統計的なアプローチによる手法の精査
数値化さえできれば、どんなテクニカル分析でも可能
デメリット
- ライントレードや裁量の検証は苦手
- プログラミングの知識が必要
世に出回るほとんどの検証ソフトは、(知らないだけかもしれませんが)複数銘柄を同時に走らせるような分散投資のテストをすることができません。また、上の項目すべてを網羅するような検証ソフトは存在しないはずです。
バックテストでここまでわかる
バックテスト結果の一例をご紹介します。
この記事でご紹介するバックテストでは、こんなことがわかっります。
あるバックテストの売買履歴をチャートで確認
保有ポジションの値洗い(未決済の含み損益)の推移とともに確認できます。
銘柄間の相関係数の推移
「似た動きをしているか」を表すのが相関係数です。「1」がまったく同じ動きで「-1」が真逆の動きを表しています。カッコつけて3Dのグラフにしていますが、ヒートマップで十分だったりします・・笑
あるバックテストの資金関連のグラフ
残高の推移をグラフ化したものです。
「1」が100%、「1.5」だと150%の利益ということです。これは年ごとなので、年が変わるとリセットされます。
ドローダウンは、期間の最高残高からどれくらい目減りしたかを表すものです。「0.5」は、最高残高から半分になったということを示します。このグラフは、未決済を含む純資産で集計したものです。
このバックテストは複数の銘柄で分散投資していくようなロジックで、全体で資金に対してどの程度のリスクをとっているかを表したグラフです。
あるバックテストにおける対リスク比の損益の分布
2%のリスクをとってリスク比10倍の利益であれば、20%の利益をとったということを表します。どんなトレードが多かったのか、分布で確認します。
バックテストで分析できる項目(一例)
検証項目が増えるということは色々な角度から分析ができるということです。多くの項目をクリアすることで、その手法が堅固であることを確認できます。
資産関連
決済済み現金資産
損益、最大ドローダウン、CAGR(平均年利)、MAR比
未決済を含む純資産
損益、最大ドローダウン、CAGR(平均年利)、MAR比
日毎の分析
取引日数、最大損失/日、最大利益/日、勝率/日、リスクリワード比率/日、期待値/日
売買成績
年ごと、銘柄ごと
粗利益/損失、純利益/損失、合計手数料、勝率、リスクリワード比率、期待値、破産の確率
タートルズのユニット
ピラミッティングの段階別トレード回数
その他
トレード期間の長さによる分布、リスク比の損益による分布
どんな良いことがあるのか
色々分析できるのは良いですが、バックテストするとどんな良いことがあるのでしょうか。
バックテストのメリット
- トレードを疑似体験
- 通常のリアルチャートでは得られない 膨大な経験値
- テクニカル指標や資金管理、リスク管理の 理解が深まる
- 現実の取引では試せないような 無茶なトレードのテスト
- 仮想通貨のような新興市場の 傾向をつかむ
- 勝てる見込みのない手法 でトレードをすることがなくなる
- 手法の盲点を減らす
- 自動化しやすい
〝損失を出さずに、効率よくノウハウを蓄積できる〟 ということがポイントになりそうです。
盲信してはいけない
もちろん、デメリットもあります。
とくに注意しなくてはならないのは、「バックテストの結果を盲信してしまうこと」です。これらは、筆者自身も一時期、陥っていたと思います。
バックテストのデメリット
- エラーが顕在化せず、もっともらしい結果が出る
- 実戦に比べると、経験の質が落ちる
- なんだかんだ言って、人間の脳みそが一番優秀
- ライントレードのような、図形認識が伴う検証が難しい
- 様々な情報を総合判断するようなことができない
- 検証回数が少ない、最適化しすぎる等、陥りやすいトラップがある
- 統計的な裏付けがあるといっても 絶対ではない
- つぶさに検証結果を確認するのが、ちょっと、めんどくさい
とくに「1」が最も危険です。
また、勉強した上で経験を積んだ「人間の感覚や勘」に勝るようなものではありません。プログラムにはプログラムの、人間には人間の強みがあります。それぞれの良い点を活かすことが大切です。
最低限、ここにあげたデメリットに注意しながら検証していく必要があります。
お金をかけずにバックテストできる?
つらつらと「バックテストとはこういうものだよ」とご紹介してきましたが、
きっと、こう考える人が多いのではないでしょうか。
「どうせ、有料のツールを使うんでしょ」
そう思いますよね。わかります。
ところがどっこい!
これからご紹介する検証は、一切お金をかけずに行うことができます。 もちろん、有料にしたほうが便利になることはたくさんありますが、無料でも、こと検証結果において〝劣る〟ということはありません。
- どんなツールを使うのか
- どのように検証するのか
以下にまとめますので、ご覧ください。
How to バックテスト
バックテストの全体像をご紹介していきます。
バックテストの流れ
まずは、全体の流れです。
- 価格データの取得
- データの整形
- シグナルの設定
- 資金管理やリスク管理の設定
- バックテストを実行!
- 結果を精査
1~6(場合によって3~6)を繰り返す
そんなに複雑なことはしていません。検証用のプログラムさえできていれば、意外とやることはシンプルです。
「2. データの整形」「6. 結果の精査」について、具体的には、以下のようなことを行っています。
2. データの整形
- OHLCVを整える
- テクニカル分析を算出
- 値動きの相関係数を算出
- 市場間の日付の差を埋める
※ OHLCVとは、Open(始値)、High(高値)、Low(安値)、Close(終値)、Volume(出来高)のこと
6. 結果の精査
- 資金の推移
- 売買成績
- 銘柄ごとの売買
- 散布図を確認しながら手法の検討
エントリー時の状況と損益の散布図を確認していくことで、利益に良い影響を与える項目を探し出すことができます。例えば、米国株が前日よりも高いときのエントリーの方が成績が良いみたいなことです。
因果関係のある、またはイメージできる項目であることに注意しながら、手法の精度を上げていきます。
使うツールは?
2021年1月現在、筆者は以下のツールを使ってバックテストを行っています。
TradingView
- ブラウザ上で動作するチャートツール
- 世界中の価格データを扱うことができる
- Pineスクリプトという独自言語で自作インジケーターの作成やバックテストができる
- もっとも簡単にバックテストができるツールだと思う
- 複数銘柄をまたぐようなテストはできない
- 統計的なアプローチはできない
- Pythonと比べるとできることに限りがある
Google Colaboratory(Python)
- 開発環境を構築せずにPythonを使うことができる
- 無料で使える
- もっとも自由にバックテストができるツール
- 統計的なアプローチが得意
- 機械学習で分析することもできる
- 学習コストが高め
まとめ
プログラムを作る。検証をする。
そんな一連の取り組みのおかげで、プログラミングも多少そうですが、何より投資にめちゃくちゃ詳しくなりました。頭の中に投資のシミュレーターがある感じです。自信をもって投資ができています。
ほとんど独学ですが、勉強する上で、多くの解説記事にお世話になってきました。どの記事を参考にしたか、覚えていないものがほとんどですが、本当にありがたいと思います。
この記事も、誰かの役に立つと良いなあと思います。
読んでみて、調べてみても分からない点があれば、LINEや各種SNSでご質問ください。できる限りお答えしたいと思います。

- 記事をシェア