バックテストは、事前に定義された条件の下で、歴史的な市場データを使用してcBotを評価するためのツールです。
バックテストを行うと、cBotインスタンスを過去の市場動向に基づいて実行できます。その後、cTraderは、cBotによって実行された取引操作および最終的な資産/バランス統計に関する詳細なレポートを生成します。
注意
バックテスト時に行われた取引操作は、いかなるアカウントにも影響を与えません。バックテストは実際の資金を扱うことを目的としていません。この機能はあくまで分析のために存在します。
cBotをバックテストするには、インスタンスの1つを選択し、「バックテスト」タブに切り替えます。
バックテスト設定
バックテストの設定を行うには、左上隅にある「歯車」アイコンをクリックします。cTraderは以下のメニューを開くはずです。
このメニューのオプションは次のように定義されています。すべての金銭に関連するパラメーター(例:開始資本)はUSDで指定されます。
オプション名 | アクションと説明 |
---|---|
開始資本 | cBotが取引を行う際の開始資本を定義します。 |
手数料 | 取引された百万単位ごとの手数料率を設定します。 |
データ | cBotをテストするためのタイムシリーズデータを選択します。利用可能なオプションは次のとおりです。
|
スプレッド | バックテスト中に適用されるスプレッド値を選択します。次のオプションが利用可能です。
|
サンプルCSV M1データ
ローカルマシンから取引データを取得するには、以下のデータを含むカンマ区切りのCSVファイルを作成してください。
- 日付
- 時間
- 始値
- 高値
- 安値
- 終値
- 出来高
例
1 2 3 4 |
|
バックテスト手順とモード
テストする期間を指定するには、以下のコントロールを使用します。
- ‘バックテスト‘タブの上部にあるインタラクティブなスライダーを使用します。
- スライダーの左側と右側にあるカレンダーメニューから必要な値を選択します。
- スライダーの両側にあるフィールドにカスタム値(
DD:MM:YYYY
形式を使用)を入力します。
バックテストを以下のモードで実行できます。
- 非リアルタイムテスト。ボットは必要なすべての操作を順番に実行します。その後、取引統計、資産チャートなどの最終結果のみが表示されます。
- リアルタイム(ビジュアルモード)テスト。提供された履歴データが指定された再生速度でcBotに渡されます。その結果、注文が配置される様子を確認できます。また、すべての取引統計は選択した再生速度で更新されます。
非リアルタイムテスト
設定が完了したら、スライダーの右側にある「再生」ボタンをクリックします。指定された期間の長さやローカルマシンの仕様によっては、cTraderが結果を生成するまでに数分かかることがあります。
リアルタイム(ビジュアルモード)バックテスト
テスト期間を含む必要な設定を指定し、カレンダースライダーの下にある「ビジュアルモード」フラグを有効にします。
「速度」スライダーをドラッグするか、その右側にあるメニューを使用して、データ再生速度を調整します。設定が完了したら、「再生」ボタンを押します。
cTraderは、指定された期間の取引チャートをリアルタイムで選択した再生速度で表示し始めます。再生中に再生速度を動的に調整できることに注意してください。
選択した期間と再生速度によっては、ビジュアルモードのテストに時間がかかることがあります。それでも、cBotが期待どおりに動作しない場合、ビジュアルモードのテストとカスタム取引データを使用して、さまざまな市場条件に対するcBotの反応をテストできます。
レンコチャートとレンジバーを使用したバックテスト
cTraderは、レンコチャートおよびレンジバーチャートでのcBotのバックテストをサポートしています。そのようなバックテストを実行するには、新しいcBotインスタンスを作成し、トレーディングチャートとしてレンコ/レンジバーチャートを選択します。
あるいは、すでに選択されたcBotインスタンスで、画面上部のチャートセレクターメニューを使用し、「三点リーダー」アイコンをクリックします。表示されたメニューで、レンコレンガまたはレンジバーを生成するための利用可能なボリュームしきい値の1つを選択します。
cTraderが選択されたシンボルのレンコ/レンジバーチャートを生成したら、「バックテスト」タブに切り替えます。このタブで、通常どおりバックテストモード/設定を構成します。「再生」アイコンをクリックして、選択したチャートでバックテストを実行します。
バックテスト結果
cTraderは、バックテスト結果を表示するために、いくつかの取引統計を生成します。このデータを表示するには、取引チャートのすぐ下にあるタブに進みます。
資産チャート
バックテストが実行されると(ビジュアルモードを使用するかどうかにかかわらず)、cTraderは取引数をX軸に、アカウント残高をY軸にして資産チャートを生成します。このチャートには次の統計が含まれます。
- 黄色の線は、取引ごとに変化するアカウント残高を示します。
- 灰色のゾーンは、ボットによって行われた取引に応じて、総資産が増加または減少する様子を強調しています。
資産チャートが何を示しているのかを理解するために、上記の例を考えてみてください。この例では、ボットがバックテスト中に290回以上の取引を行っていることがわかります。アカウント残高の変動ごとに、総資産の変動も確認できます。
取引統計
「取引統計」タブには、バックテスト中にcBotがどのようにパフォーマンスを発揮したかに関するデータが含まれています。このタブには次のフィールドが含まれています。
フィールド名 | 定義 |
---|---|
純利益 | すべての取引の純利益合計。 |
プロフィットファクター | 総純利益を総純損失で割った比率。 |
手数料 | cBotによって行われた取引に対して支払われた手数料の合計額。 |
最大残高ドローダウン | 残高の最大ドローダウン額。 |
最大資産ドローダウン | 資産の最大ドローダウン額。 |
取引合計 | cBotによって実行された取引の総数。 |
勝ちトレード | 利益を生んだ取引の総数。 |
最大連勝取引 | 連続して利益を生んだ最大取引数。 |
最大勝ちトレード | 1つの取引で得られた最大の利益。 |
負けトレード | 損失を生んだ取引の総数。 |
最大連敗取引 | 連続して損失を生んだ最大取引数。 |
最大負けトレード | 1つの取引で生じた最大の損失額。 |
平均取引 | すべての取引の平均実現P&L。 |
ポジション
「ポジション」タブには、cBotによって現在開かれているすべてのポジションが表示されます。これは通常の「TradeWatch」ディスプレイの「ポジション」タブと同様の構造で、同じデータが含まれています。
右下隅の「歯車」アイコンをクリックして、中央のテーブルに表示されるデータをカスタマイズします。
注文
「注文」タブには、cBotによって行われた注文に関する情報が含まれています。その構造と外観は、メインの「TradeWatch」ディスプレイの「注文」タブと同様です。
履歴
「履歴」タブには、バックテスト中に記録されたすべての取引および終了取引の統計が表示されます。他のタブと同様に、これは「TradeWatch」ディスプレイの「履歴」タブのコピーです。
イベント
「イベント」タブには、サーバー関連の通信がすべて表示され、これらのイベントのさまざまなパラメーターが表示されます。
ログ
最後に、「ログ」タブには、バックテスト中にcBotが出力したメッセージが表示されます。メッセージリストは完全に検索可能で、イベントタイプおよびインスタンスごとにフィルタリング可能です。
最適化
cBotの初期パラメータの最適なセットを指定するのは難しい場合があります。幸いなことに、cTraderには組み込みのボット最適化機能が用意されています。最適化はコードを受け取り、さまざまなパラメータ値に基づいて複数回実行されます。その後、最適なパラメータ構成を定義するために使用できるカスタマイズ可能な結果のセットが提示されます。
この機能を使用するには、cBotインスタンスを選択し、「最適化」タブに切り替えます。
その後、ドロップダウンカレンダーを使用するか、スライダーをドラッグして、最適化のバックテスト期間を定義します。
最適化設定
最適化は基本的に一連のバックテストに過ぎないため、「バックテスト」タブでの設定方法と同様にバックテスト設定を指定できます。
最適化パラメータ
カレンダースライダーの左側にある「パラメータ」ボタンをクリックします。次のウィンドウが表示されるはずです。
このウィンドウで、最適化したいcBotパラメータの横にあるフラグをチェックします。「タイムフレーム」パラメータはすべてのcBotで利用可能です。
最適化基準
「最適化パラメータ」ボタンの右側にある「基準」ボタンを押します。cTraderは次のタブを開きます。
最適化基準は、バックテスト後に結果をランク付けする方法を定義します。次のオプションから選択できます。
- 標準。最小化または最大化を目指すことができる一連の事前定義された基準。これを行うには、右側のドロップダウンメニューから基準を選択し、その関連メニューから最適化方向を選択します。新しい基準を追加するには、「基準を追加」をクリックします。
- カスタム。以下の例に示すように、
GetFitness()
メソッドを使用してcBotコード内で定義されたカスタム基準。
1 2 3 4 5 |
|
複数基準計算
パラメータの有効性を計算するために複数の基準が使用される場合、cTraderはそれらを等しく使用して最適化パスのフィットネス値を計算します。
具体的には、プラットフォームはすべての最大化基準の値を乗算し、すべての最小化基準の値を別々に乗算します。その後、最大化基準の絶対乗算値を最小化基準の同じ値で割ります。
次の擬似コードは、複数基準フィットネス値がどのように計算されるかを示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
メソッド
「メソッド」ボタン(選択されているオプションによってGA
または#
と表示されます)を押します。以下のメニューで、プラットフォームで使用される最適化方法を選択します。
次のオプションが利用可能です。
- 遺伝的アルゴリズム。このアルゴリズムは生物の進化過程を模倣します。詳細については別のセクションをご覧ください。
- グリッド (#)。このアルゴリズムは、可能なすべてのパラメータセットを順次バックテストします。
注意
私たちの推定では、遺伝的アルゴリズムの方が最適なパラメータ値を見つけるのがはるかに速いです。
リソース
「リソース」ボタンをクリックして、バックテストに割り当てられるCPU負荷の割合を選択します。スライダーを移動して、CPU使用率を設定します。
割り当てるリソースが多いほど、最適化プロセスは速く完了します。ただし、他のアプリケーションを使用する際のパフォーマンスが低下する可能性があります。
最適化中にCPUリソースも調整できることに注意してください。
最適化手順の開始と管理
最適化を続行するには、カレンダースライダーの右側にある「再生」ボタンをクリックします。マシンのリソース、最適化設定、およびcBotの複雑さによっては、最適化に時間がかかる場合があります。
カレンダースライダーのすぐ下にあるUIバーは、完了したバックテストパスの数、経過時間、および残り時間の見積もりに関する情報を提供します。
一方、「最適化」タブの中央画面には、アルゴリズムが完了したすべてのバックテストパスに関する情報がリアルタイムで表示されます。
特定のパスでテストされたパラメータセットを適用するには、「適用」ボタンを押します。最適化手順が実行されていない場合にのみアクティブになります。
あるいは、左上隅にある「最良パスの自動選択」フラグをオンにすると、cTraderが指定された最適化基準に基づいて、最適な結果を達成したパス(およびパラメータ)を自動的に選択します。
最適化結果
最適化が完了すると、中央のテーブルにすべてのバックテストパスとその結果の最終リストが表示されます。
このテーブルには次の列があります。グリッドは完全に構成可能であるため、これらの列はドラッグアンドドロップで移動でき、テーブルを右クリックしてコンテキストメニューからそれらを選択解除することで無効にすることもできます。
フィールド | 定義 |
---|---|
パス | パス番号。 |
フィットネス | パスが最適化基準にどの程度適合しているかを示す値。 |
資産 | パス終了時の総資産。 |
バランス | パス終了時の総バランス。 |
純利益 | 最終残高と開始残高の差額。 |
取引 | クローズされたポジションの総数。 |
勝ちトレード | パス中に達成された勝ちトレードの総数。 |
負けトレード | パス中に達成された負けトレードの総数。 |
プロフィットファクター | 総利益/総損失比率。 |
最大資産ドローダウン (%) | 資産ドローダウンの最大割合。 |
最大残高ドローダウン (%) | 残高ドローダウンの最大割合。 |
最大資産ドローダウン | アカウント預金通貨で指定された最大資産ドローダウン。 |
最大残高ドローダウン | アカウント預金通貨で指定された最大残高ドローダウン。 |
平均取引 | パス中に行われたすべての取引の平均利益。 |
パスパラメータ | この列の「適用」ボタンをクリックして、このパスのパラメータをcBotに適用します。 |
パスを選択して、中央グリッドの下にあるディスプレイにその詳細な統計を表示します。
このディスプレイの最初の7つのタブは、「バックテスト」ウィンドウの同じタブと同じ情報を提供します。「パスパラメータ」タブは最適化に固有です。
パスパラメータ
「パスパラメータ」タブには次の情報が表示されます。
cTraderは、最適化されたすべてのパラメータを緑色で強調表示し、(「パラメータ」メニューで有効にされていない)固定パラメータはハイライトされないままになります。
最適化結果の保存と読み込み
cTraderでは、最適化結果を.optres
ファイルに保存し、ローカルに保存された.optres
ファイルから結果を読み込むこともできます。
注意
.optres
ファイルは、さまざまな最適化設定およびメトリックを表すキーと値のペアのコレクションに過ぎません。
ヒント
.optres
ファイルを使用して、進行状況を失うことなく、複数のローカルマシンでcBotsの微調整を続けることができます。また、このファイルからのデータを生成AIツールに「フィード」して、cBotが完了したパスのパターンを検出しようとすることもできます。
最適化結果を保存するには、プロセスが終了するまで待ってから「保存」アイコンをクリックします。ファイルエクスプローラーダイアログでファイル名を入力し、ファイルを保存します。
最適化結果を読み込むには、「読み込み」アイコンをクリックし、ファイルエクスプローラウィンドウで必要なファイルを選択します。