最適化の結果の操作

これらは、ストラテジーテスターで最適化の結果のカスタム処理を整理するための関数です。テストエージェントでの最適化中のみでなく、エキスパートアドバイザーとスクリプトでの局所的な呼び出しも可能です。

ストラテジーテスターでエキスパートアドバイザーを実行する際には、基本データ型または(文字列、クラスオブジェクト及び動的配列オブジェクトを含まない)基本構造体 のデータ配列を作成することが出来ます。このデータは FrameAdd() 関数で「フレーム」と呼ばれる特別な構造体に保存されます。エキスパートアドバイザーの最適化中には、それぞれのエージェントが端末に一連のフレームを送信します。全ての受信されたフレームは、terminal_directory/MQL5/Files/Tester フォルダでエキスパートアドバイザーとして *.MQD に書かれます。これらは、エージェントから受信された順序で書かれています。テストエージェントからクライアント端末におけるフレームの受信は TesterPass イベントを作成します。

フレームは、コンピュータメモリ内及び指定された名称のファイルに格納することが出来ます。MQL5 言語ではフレーム数に制限はありません。

MQL5クラウドネットワークのメモリとディスク容量の制限

次の制限は、MQL5クラウドネットワークで実行される最適化に適用されます:エキスパートアドバイザー(EA)は、4GBを超える情報をディスクに書き込んだり、4GBを超えるRAMを使用したりしてはなりません 。上限を超えると、ネットワークエージェントは計算を正しく完了できず、結果を受け取ることができなくなります。ただし、計算に費やした時間はすべて料金が発生します。

各最適化パスから情報を取得する必要がある場合は、ディスクに書き込まずにフレームを送信します。MQL5クラウドネットワークでの計算中にEAでのファイル操作の使用を回避するには、次のチェックを使用できます。

  int handle=INVALID_HANDLE;
  bool file_operations_allowed=true;
  if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_FORWARD))
    file_operations_allowed=false;
 
  if(file_operations_allowed)
    {
    ...
    handle=FileOpen(...);
    ...
    }

 

関数

アクション

FrameFirst

フレーム読み込みのポインタを先頭に移動し、以前に設定したフィルタをリセットします。

FrameFilter

フレーム読み込みフィルタを設定して、ポインタを先頭に移動します。

FrameNext

フレームを読んでポインタを次に移動します。

FrameInputs

フレーム形成に使用される入力パラメータを受け取ります。

FrameAdd

データとフレームを追加します。

ParameterGetRange

ストラテジーテスターーでエキスパートアドバイザーを最適化する際に、値範囲のデータを受け取り入力変数のステップを変更します。

ParameterSetRange

ストラテジーテスターーでエキスパートアドバイザーを最適化する際に、入力変数(値、チェンジステップ、最初と最終の値)の使い方を指定します。

参照

テストの統計MQL5 プログラム実行のプロパティ