バックテストは、効果的な取引システム開発の重要な要素です。 これは、特定の戦略で定義されたルールを使用して、過去に発生したはずの取引を履歴データで再構築することで実現されます。 結果は、戦略の有効性を評価する統計を提供します。
根本的な理論は、過去にうまく機能した戦略は将来もうまく機能する可能性が高く、逆に、過去にうまく機能しなかった戦略は将来も機能しなくなる可能性が高いということです。 この記事では、バックテストで使用されるアプリケーション、取得されるデータの種類、およびそれを使用する方法について説明します。
データとツールを使用して取引戦略をバックテストする方法
バックテストは、特定のシステムに関する多くの貴重な統計フィードバックを提供できます。 いくつかの一般的なバックテスト統計には次のものがあります。
- 純損益: ボラティリティ測定値の増減率: 上下の最大割合平均:平均利益と平均損失の割合、保有平均バー露出:投資された(または市場にさらされた)資本の割合比率:勝敗比率年間収益率: リスク調整後収益率:リスクの関数としての収益率
バックテストソフトウェア
通常、バックテストソフトウェアには2つの重要な画面があります。 最初の方法では、トレーダーがバックテストの設定をカスタマイズできます。 これらのカスタマイズには、期間からコミッションコストまでのすべてが含まれます。 AmiBrokerのこのような画面の例を次に示します。
2番目の画面は、実際のバックテスト結果レポートです。 ここで、上記の統計を見つけることができます。 繰り返しますが、AmiBrokerのこの画面の例を次に示します。
一般的に、ほとんどの取引ソフトウェアには同様の要素が含まれています。 一部のハイエンドソフトウェアプログラムには、自動位置サイジング、最適化、およびその他のより高度な機能を実行するための追加機能も含まれています。
トレーディング戦略をバックテストするための10のルール
トレーダーがトレーディング戦略をバックテストしている場合、注意すべき多くの要因があります。 バックテスト中に覚えておくべき最も重要なことのリストは次のとおりです。
- 特定の戦略がテストされた時間枠内の広範な市場動向を考慮してください。 たとえば、戦略が1999年から2000年にのみバックテストされた場合、弱気市場ではうまくいかない可能性があります。 多くの場合、いくつかの異なる種類の市場条件を含む長い期間にわたってバックテストを行うことをお勧めします。バックテストが発生した宇宙を考慮に入れてください。 たとえば、ハイテク市場で構成されるユニバースで広範な市場システムをテストすると、さまざまなセクターでうまく機能しない可能性があります。 一般的なルールとして、戦略が在庫の特定のジャンルを対象にしている場合、ユニバースをそのジャンルに制限します。 それ以外の場合はすべて、テスト目的で大規模なユニバースを維持します。トレーディングシステムの開発では、ボラティリティ測定を考慮することが非常に重要です。 これは、レバレッジされたアカウントの場合に特に当てはまります。レバレッジされたアカウントは、持分が特定のポイントを下回った場合にマージンコールの対象となります。 トレーダーは、ボラティリティを低く抑えてリスクを軽減し、特定の株式の出入りを簡単に行えるようにする必要があります。また、取引システムを開発する際には、保有するバーの平均数も非常に重要です。 ほとんどのバックテストソフトウェアでは、最終計算にコミッションコストが含まれていますが、この統計を無視する必要があるという意味ではありません。 可能であれば、保有するバーの平均数を増やすと、コミッションコストを削減し、全体的な収益を向上させることができます。 エクスポージャーの増加は利益の増加または損失の増加につながり、エクスポージャーの減少は利益の減少または損失の減少を意味します。 一般に、リスクを軽減し、特定の株式の出入りを簡単に移行できるように、エクスポージャーを70%未満に維持することをお勧めします。平均利益/損失統計は、勝率と組み合わせて使用すると便利です。 Kelly Criterionなどの手法を使用して最適な位置のサイジングとお金の管理を決定します。 トレーダーは、平均利益を上げ、勝率を上げることで、より大きなポジションを取り、コミッションコストを削減できます。年率リターンは、他の投資先に対するシステムのリターンをベンチマークするツールとして使用されます。 全体的な年間収益率だけでなく、リスクの増減を考慮することも重要です。 これは、さまざまなリスク要因を説明するリスク調整後のリターンを調べることで実行できます。 取引システムを採用する前に、同等またはそれ以下のリスクで他のすべての投資先を上回る必要があります。 多くのバックテストアプリケーションには、コミッション金額、ラウンド(または端数)ロットサイズ、ティックサイズ、マージン要件、金利、スリッページの仮定、ポジションサイズ設定ルール、同一バー終了ルール、(トレーリング)ストップ設定などの入力があります。 最も正確なバックテスト結果を得るには、これらの設定を調整して、システムが稼働するときに使用されるブローカーを模倣することが重要です。バックテストは、過剰最適化として知られるものにつながる場合があります。 これは、パフォーマンス結果が過去に非常に高く調整され、将来的には正確ではなくなる状態です。 一般に、すべての株、または選択された対象株のセットに適用されるルールを実装し、ルールが作成者に理解できなくなるほど最適化されないようにすることをお勧めします。バックテストは、常に最も正確な方法であるとは限りません特定の取引システムの有効性。 過去にうまく機能した戦略が現在ではうまく機能しない場合があります。 過去のパフォーマンスは、将来の結果を示すものではありません。 戦略が実際に適用されることを確認するために、実際に運用を開始する前に、正常にバックテストされたシステムをペーパートレードしてください。
ボトムライン
バックテストは、トレーディングシステムを開発する上で最も重要な側面の1つです。 適切に作成および解釈された場合、トレーダーは戦略を最適化および改善し、技術的または理論的な欠陥を見つけ、実際の市場に適用する前に戦略の信頼を得ることができます。