バックテストをコマンドライン実行する(MT5)

この投稿文は次の言語で読めます: 日本語

コマンドラインからの実行可否

MT4と同様、MT5の ヘルプファイルに記載がありました。

/config で ini ファイル指定ができるので、同様の動きが実現できそうです。

User Guide

プラットフォーム入門
└上級ユーザーのために
└プラットフォームの起動

引用

コマンドラインからの実行

プラットフォームは事前に定義されたパラメータを使って手動で実行することができます。これは、コマンドラインでの異なるオプション、及び異なる設定ファイルの使用によってなされます。

プラットフォームは、コマンドラインからオプションで実行することができます。そこにプラットフォーム実行ファイルへのパス( file\terminal.exe へのパス)を指定し、スペースの後に以下のキーの1つ以上追加します。
•/login: ログイン番号 — プラットフォームをアカウントで実行します。例は terminal.exe / login:100000です。
•/config: 設定ファイルへのパス — プラットフォームを指定された設定ファイルを使って実行します。例は terminal.exe /config:c:\myconfiguration.iniです。デフォルトの設定ファイルは common.iniです。
•/profile: プロファイル名 — プラットフォームを特定のプロファイルで実行します。プロファイルはプラットフォーム/profiles/charts/に位置しなければなりません。例は terminal.exe /profile:Euroです。
•/portable — プラットフォームをポータブルモードで実行します。このモードはプラットフォームがすでにメインモードで起動された場合に必要かもしれません。プラットフォームをポータブルモードで実行するには、オペレーティングシステムユーザーには適切な権限が必要です。

キー割り当てが誤って設定された場合(無効なログイン、プロファイル名または構成ファイル)は、デフォルト値が使用されます。

カスタム設定ファイルを使用しての実行

プラットフォームは、パラメータのカスタムセットを使用して実行することができます。デフォルトのcommon.iniに基づいて独自の構成ファイルが作成されます。プラットフォームを特定の構成ファイルで実行するにはコマンドラインで以下のコマンドを使います。

path_to_platform\terminal exe /config:c:\myconfiguration.ini

ここで c:\myconfiguration.iniは構成ファイルへのパスです。

カスタム構成ファイルは、プラットフォームの作業中には「読み取り専用」モードで使用されます。プラットフォームインターフェイスから行われた設定の変更は、使用されているカスタム構成ファイルには書き込まれません。

構成ファイルパラメータは、いくつかのブロックに分割し、プラットフォーム構成ウィンドウタブの設定に対応しています。以下は構成ファイルの中で最も重要な設定です。

 

スポンサーリンク

設定項目はどの程度変わったか?

MT4の頃より設定項目が増えていますね!

ストラテジテスタ内の設定項目変更を受け、同じ意味を示す設定項目でも
与える値の意味が変わっているので一通りの見直しが必要になりそうです。

ただ、大枠の動作イメージ自体は変わらず、かつ MQL5 Cloud Network に関する設定もあるので
高速バックテストも実現できそうかな。

気になるのは Visual ですが、コマンドライン実行を想定したパラメータなのに、
ビジュアルモードで実行されるケースってどんなんだろう?? ちょっと利用ケースが思いつきませんでした。

※MT4 で設定できた Spread は、MT5からはヒストリカルデータ側に持つ仕様になったようで。
構成ファイルには書けないものと思われます。

起動設定(MT5)

説明 ※起動設定(MT4) 説明

Expert

テスト(最適化)モードで自動に実行されるエキスパートアドバイザーのファイル名このパラメータが存在しない場合、テストは実行されません。

TestExpert

テストの目的で起動するエキスパートの名前です。このパラメータが指定されていない場合には、テストは開始されません。

ExpertParameters

エキスパートアドバイザーパラメータを含むファイルの名称このファイルは、プラットフォームのインストールディレクトリの \MQL5\Profiles\Tester フォルダに配置される必要があります。

TestExpertParameters

パラメータを含むファイル(\testerディレクトリ)の名前です。このファイルは、テスト用エキスパートの「プロパティ」ウィンドウで「入力」タブの「保存」ボタンを押すことにより作成されます。通常は、デフォルトのパラメータと異なるパラメータを保存するときに使われます。テスト用エキスパートの「テスティング」及び「最適化」タブ内のその他のパラメータ(及びこのパラメータが指定されていない場合には「入力」タブ内のパラメータ)については、最後のテスト後に\tester\[エキスパート名].iniファイルに自動保存された値が入力されます。t

銘柄

メインテスト銘柄として使われる銘柄の名称このパラメータが追加されていない場合には、テスタで最後に選択された銘柄が使用されます。

TestSymbol

エキスパートのテストで使用する通貨ペアの名前です。このパラメータが指定されていない場合には、テスターで最後に使用された値が使われます。

 

Period

テストチャートの時間軸(利用可能な21期間のいずれか)このパラメータが設定されていない場合、デフォルトのH1が使用されます。

TestPeriod

チャートの周期(1分、5分、15分、30分、1時間、4時間、1日、1週間、月)です。このパラメータが指定されていないときは、1時間を使用します。

 

Login

このパラメータは、エキスパートアドバイザーにテストに使われたアカウントの値を通信します。このパラメータの必要性はエキスパートアドバイザーのMQL5コードで設定されます(AccountInfoInteger 関数内)

Model

ティック生成モード(0 — 全ティック、1 —1分足OHLC、2 — 始値のみ、3 — 数値計算、4 — リアルティックに基づいたすべてのティック)。パラメータの指定がない場合、「全ティック」が使われます。

TestModel

テスティングモデルの種類(「レートごと」、「コントロールポイント」、「オープン価格のみ」)によって、0、1、または2のいずれかとなります。このパラメータが指定されていないときは、0(Every tick)を使用します。

 

TestRecalculate

「再計算」フラグを有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。

 

ExecutionMode

ストラテジーテスターでエミュレートされる取引モード(0 — 通常モード、-1 — 取引注文の実行中にランダムな遅延を伴うモード、>0 — ミリ秒単位での取り引きの実行遅延、600,000を超えることはできません)。

Optimization

enable/disable 最適化の有効化/無効化、最適化の種類(0 — 無効、1 — 低速かつより完全なアルゴリズム、2 — 高速遺伝的アルゴリズム、3 — 気配値表示の全ての銘柄を選択)

TestOptimization

最適化を有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。

 

OptimizationCriterion

最適化基準。0 — 最大バランス値、1 — バランスと利益の積の最大値、2 — バランスと期待利益の積の最大値、3 — (100% - ドローダウン)*バランスの最大値、4 — バランスと回復率の積、5 — バランスとシャープレシオの積、6 — エキスパートアドバイザーの OnTester() 関数から受け取られた独自の最適化

TestDateEnable

「日付を使用」フラグを有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。

 

FromDate

YYYY.MM.DD 形式でのテスト範囲の開始日。このパラメータが設定されていない場合は、ストラテジーテスターの対応するフィールドの日付が使用されます。

TestFromDate

テストを開始する日付です。YYYY.MM.DDの形式になります。このパラメータが指定されていない場合には、この日付は1970.01.01となります。

 

ToDate

YYYY.MM.DD 形式でのテスト範囲の終了日。このパラメータが設定されていない場合は、ストラテジーテスターの対応するフィールドの日付が使用されます。

TestToDate

テストを終了する日付です。YYYY.MM.DDの形式になります。このパラメータが指定されていない場合には、この日付は1970.01.01となります。

 

ForwardMode

フォワードテストモード( — オフ、1 — テスト期間の1/2、2 — テスト期間の1/3、3 — テスト期間の1/4、4 — ForwardDate パラメータで指定された独自のインターバル

Report

テスト最適化の結果を保存するレポートファイルの名称。このファイルは、プラットフォームディレクトリに作成されます。例えば \reports\tester.htmのようにこのディレクトリへの相対ファイルを指定することもできます。レポートが保存されるサブディレクトリは存在するべきです。レポートファイル名に拡張子が指定されていない場合、テストレポートには「.htm」、最適化レポートには「.xml」の拡張子が自動的に使用されます。このパラメータが設定されていない場合、テストレポートがファイルとして保存されません。フォワードテストが有効になっている場合、その結果は、「.forward」サフィックスを持つ別のファイルに保存されます。例は「tester.forward.htm」です。

TestReport

テストレポートファイルの名前です。このファイルはクライアントターミナルのディレクトリ内に作成されます。例えば「tester\MovingAverageReport」といった相対パスを指定することができます。ファイル名の中で拡張子が指定されていない場合には、「.htm」が自動的に付加されます。このパラメータが指定されていない場合には、テストレポートは作成されません。

 

ReplaceReport

レポートファイルの上書きを有効にする(1)/ しない(0)。上書きが禁止され、同じ名前のファイルが既に存在する場合は、角括弧内の数字は、ファイル名に追加されます。例は「tester[1].htm」です。パラメータが設定されていない場合、デフォルトの 0 (上書きが許可されていない)が使用されます。

TestReplaceReport

レポートファイルの反復記録を有効/無効にします。「true」または「false」のいずれかの値をとります。「false」の値を指定した場合で、同じ名前のレポートファイルが既に存在するときは、ファイル名の後に角括弧で括った数字が付加されます。例えば、「MovingAverageReport[1].htm」となります。このパラメータが指定されていない場合は、「false」の値が使われます。

 

ShutdownTerminal

テスト終了時のプラットフォームシャットダウンを有効にする(1)/ しない(0)。 このパラメータが設定されていない場合、デフォルトの0(シャットダウンされない)が使用されます。テスト/最適化プロセスは、ユーザによって手動で停止された場合、このパラメータの値は、自動的に0にリセットされます。

TestShutDownTerminal

テスト終了後のターミナルのシャットダウンを有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。ユーザが「停止」ボタンを押した場合には、制御がユーザに移るため、このパラメータの値は「false」にフラッシュされます。

 

Deposit

テストの最適化のための頭金。金額は口座の預金通貨で指定されます。パラメータが設定されていない場合、ストラテジーテスターの対応するフィールドの値が使用されます。

Leverage

テスト/最適化のレバレッジ例は1:100です。パラメータが設定されていない場合、ストラテジーテスターの対応するフィールドのレバレッジが使用されます。

UseLocal

テスト/最適化にローカルエージェントを使用する(1)/ しない(0)。パラメータが指定されていない場合は、現在のプラットフォームの設定が使用されます。テスト/最適化には

UseRemote

テスト/最適化に遠隔エージェントを使用する(1)/ しない(0)。パラメータが指定されていない場合は、現在のプラットフォームの設定が使用されます。テスト/最適化には

UseCloud

MQL5クラウドネットワークエージェントを使用する(1)/ しない(0)。パラメータが指定されていない場合は、現在のプラットフォームの設定が使用されます。テスト/最適化には

Visual

ビジュアルテストモードを有効にする(1)/ しない(0)。パラメータが指定されていない場合は、現在のプラットフォームの設定が使用されます。

Port

テストローカルエージェントが動作するポート。ポートは、様々なエージェントでの並行テストの実行を指定する必要があります。例えば、異なるパラメータを持つ同一のエキスパートアドバイザの並行テストの実行があります。単一のテスト時には、ポートは省略できます。

 

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事