取引戦略をバックテストする方法
ホーム
記事
取引戦略をバックテストする方法

取引戦略をバックテストする方法

中級者
公開済 Dec 17, 2020更新済 Jun 21, 2023
7m

概要

市場には素晴らしいアイデアがありますが、資金をリスクにさらすことなく、それらをテストする方法については分からないでしょう。取引のアイデアをバックテストする方法を知っていることは、優れたシステムトレーダーの基本となります。

大前提としてバックテストは、過去の成功事例は将来も成功する可能性があるということです。しかし、自分自身でどのように行い、どのように結果を評価する必要がありますか? 簡単なバックテストのプロセスを見てみましょう。

はじめに

バックテストは、独自のチャート作成および取引戦略を構築開発するための重要な要素の1つです。過去のデータに基づいたシステムを使用して、過去に発生した可能性のある取引を再構築する必要がありますバックテストの結果は、投資戦略が有効であるかどうかの一般的なアイデアを提供してくれるはずです。

バックテストとは?

まず、バックテストについて詳しく知りたい場合は、バックテストとは? の記事を確認してください 

つまり、バックテストの主な目的は、お客様の取引アイデアが有効かどうかを示すことです。まず、過去の市場データを使用して、戦略がどのように機能したかを確認することからはじめます。可能性がありそうな戦略であれば、実際の取引環境でも有効な場合があります。

バックテストの前にするべきこととは?

バックテストを開始する前に、自分がどのようなトレーダーであるかを確立させておく必要があります。お客様は裁量トレーダー、またはシステムトレーダーですか?

裁量取引は意思決定に基づく取引であり、トレーダーは自らの判断で入口と出口のタイミングを決定します。これは比較的緩やかで自由度の高い戦略であり、その判断のほとんどはトレーダーの目の前の状況の表示かに依存します。このように、裁量取引の場合は戦略が厳密に定義されていないため、バックテストはあまり重要ではありません。

もちろん、お客様が裁量トレーダーであれば、バックテストやペーパートレードを一切してはいけないという意味ではありません。これは、通常のシステム取引のように、結果が信頼できない可能性があることを意味します。

システム取引はバックテストに適しています。システムトレーダーは、いつ参入や撤退するかを定義して、正確に伝える取引システムに依存しています。システムトレーダーは、戦略の大部分をコントロールすることができますが、入口と出口のシグナルはすべてシステムトレーダーによって決定されます。次の2つの簡単なステップで、単純なシステム戦略を考えることができます:

  1. AとBが同時に発生した場合、取引を開始する。

  2. その後にXが発生した場合、取引を終了します。 

このアプローチを好むトレーダーもいます。取引から感情的な判断を排除することができ、取引システムが利益を生むという合理的な程度の保証を提供することができます。もちろん、まだ保証はありません。

これは、ポジションの参入や撤退のタイミングをシステム上で非常に具体的にルール化しておくことが重要な理由です。明確に定義されていない戦略は、一貫性のない結果に繋がります。ご想像の通り、この取引スタイルはアルゴリズム取引でより人気があります。

プロセスを自動化したい場合は、購入することができるバックテストソフトウェアがあります — 独自のデータを入力するだけで、ソフトウェアがバックテストを実行します。しかし、この例では手動でバックテスト戦略を使用します。もう少し手間がかかりますが、完全に無料です。

取引戦略をバックテストする方法とは?

Google Sheetのスプレッドシートのテンプレートは、こちらのリンクから入手することができます。これは、独自のテンプレートを作成するための出発点として使用できる基本的なテンプレートです。これにより、バックテストシートに含まれる可能性のある情報についての一般的なアイデアを得ることができます。一部トレーダーは、Excelを使用するか、Pythonでコーディングすることを好む人もいます (厳密なルールはありません)。必要なだけ多くのデータを追加でき、その他の有用な情報も追加することができます。

日時

市場

サイド

エントリー

ストップロス

テイクプロフィット

リスク

報酬

PnL

12/08

BTCUSD

ロング

$18,000

$16,200

$21,600

10%

20%

3,600

12/09

BTCUSD

ショート

$19,000

$20,900

$13,300

10%

30%

-1,900


簡単な取引戦略のバックテストをしてみましょう:

  • ゴールデンクロス後の最初の毎日の終値で1 Bitcoinを購入します。ゴールデンクロスは、50日移動平均線が200日移動平均線を上抜きしたときとみなされます。

  • デスクロス後の最初の終値で1 Bitcoinを売却します。200日移動平均線が50日移動平均線を下回るときをデスクロスとみなします。

ご覧の通り、戦略が有効な時間軸を定義しました。これは、4時間足チャートでゴールデンクロスが発生した場合、取引シグナルとは見なさないことを意味します。

この例での期間は、2019年のスタート時点からです。しかし、より正確で信頼性の高い結果を得たい場合は、Bitcoinの価格アクションの歴史をさらに遡ることができます。

さて、このシステムが期間中にどのような売買シグナルを出したか見てみましょう:

  • 購入 @~$5,400

  • 売却 @~$9,200

  • 購入 @~$9,600

  • 売却 @~$6,700

  • 買い @ ~$9,000

私たちのシグナルをチャートに重ねると、次のようになります:

ゴールデンクロス (デスクロス) 戦略。参照先: TradingView

最初の取引では$3,800の利益、2回目の取引では$2,900の損失となりました。これは、実現損益PNLが現在$900であることを意味します。 

また、アクティブ取引も行っており、2020年12月時点で$9,000の未実現損益がありました。最初に決めた戦略を忠実に実行することで、次のデスクロスが発生した際にこれをクローズします。 

バックテスト結果の評価

では、これらの結果は何を示しているのでしょうか?私たちの戦略は、合理的なリターンをもたらしましたが、今のところ目立ったところはありません。現在開いている取引を実現して実現損益PNLを大幅に増加させることはできますが、それはバックテストの意味がありません。計画を忠実に実行しなければ、結果も信頼することができません。

これはシステム戦略となりますが、コンテキストを考慮することも必要です。$9,600から$6,700までの不採算取引は、2020年3月のCOVID-19の暴落時に発生しました。このようなブラックスワンイベントは、取引システムに非常に大きな影響を与える可能性があります。この損失が異常値なのか、戦略の副産物なのか確認するために、さらに遡る価値があるもう1つの理由です。

これは、簡単なバックテストプロセスの一例です。この戦略は、より多くのデータでテストするか、生成されるシグナルを強化する可能性のある他のテクニカル指標を含めれば、有望かもしれません。

しかし、バックテストの結果から他に何がわかりますか?

  • ボラティリティ測定: お客様の最大アップサイドとドローダウン。

  • エクスポージャー: 戦略を実行するために、ポートフォリオ全体から割り当てる必要がある資本量。

  • 年間収益: 年間を通じての戦略収益率。

  • 勝敗率: システム内取引のうち、何回が勝利となり、何回が敗北となる可能性が高いかを示します。

  • 平均約定価格: 戦略を使用した場合の、約定参入と撤退の平均価格。

これらの前述の例は、完全なリストを構成するものではないことに注意してください。どのような指標を追跡するかは、完全にあなた次第です。いずれにせよ、関連するセットアップについて取引ジャーナルに詳細を記載すればするほど、結果から学ぶ機会が増えることになります。トレーダーの中には、バックテストに非常に厳格な人もいるため、それが結果に反映される可能性が高いです。

最後に考慮すべきことは、最適化です。バックテストの記事を読まれた方は、バックテストとフォワードテスト (またはペーパートレード) の違いが分かると思います。 

まとめ

ここまで、取引戦略の手動バックテストを実行する基本的なプロセスを説明しました。しかし、過去のパフォーマンスが将来のパフォーマンスを保証するものではないことを覚えておくことが重要です。

市場環境は変化するものであり、取引戦略を改善するためには、その変化に適応する必要があります。また、データを盲信しないように注意する必要があります。常識は、結果を評価する際に役立つ (見過ごされがちですが) ツールです。

参考文献