ライブラリ: マルチテスター - ページ 59

klycko #:

残念ながら、あなたのスクリプトは機能しない

確認しました。しかし、おそらく私たちはセットファイルのコンセプトについて異なる解釈をしているのでしょう。

異なる解釈の場合に備えて、以下の行を追加しました。

// テスターのセットファイルをロード/保存する。
#property script_show_inputs

input bool inLoad = true; // 設定のロード/保存 - true/false

#include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/ja/code/26132

#define  EA_INPUTS "[TesterInputs]\r\n"

void OnStart()
{
  const string FileName = __FILE__ + ".set";
  
  string Settings;
  ushort Words[];  
      
  if (inLoad) // 設定をロードする。
  {
    Print("Load: " + (string)FileLoad(FileName, Words));
    Settings = EA_INPUTS + ShortArrayToString(Words, 1); // 1 - ユニコード
    
    Print(MTTESTER::SetSettings(Settings));
  
  }
  else if (MTTESTER::GetSettings(Settings)) // 設定を保存します。
  {
    Settings = StringSubstr(Settings, StringFind(Settings, EA_INPUTS) + StringLen(EA_INPUTS));
    
    Words[ArrayResize(Words, 1) - 1] = 0xFEFF; // 1 - ユニコード
    
    StringToShortArray(Settings, Words, ArraySize(Words));    
    Print("Save: " + (FileSave(FileName, Words) ? (string)ArraySize(Words) : "error"));
  }
}
fxsaber #:

確認しました。しかし、おそらく我々はセットファイルのコンセプトについて異なる解釈をしているのだろう。

異なる解釈の場合に備えて、以下の行を追加した。

お時間と知性に感謝します!

私はすでにグーグルAIの助けを借りてこれらの困難を克服しました。

OX.mq5 スクリプトの形でこの解決策をお送りしました。

ありがとうございました!

metatrader version 5.00
build 5800 17-apr-2026

.zip と全く同じファイルを使っているのですが

何か原因があるのでしょうか?

ファイル:
fileapi.mqh  10 kb
winuser.mqh  82 kb
Thomaz Diogo Cimim #:

。

mqhファイルのバージョンが間違っている可能性が高いです。私や他のユーザーにはすべてコンパイルできます。

// ターミナルから取引履歴をテスターにインポートします。

#include <fxsaber\SingleTesterCache\SingleTesterCache.mqh> //https://www.mql5.com/ja/code/27611
#include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/ja/code/26132

input string inFileName = "Test.tst";

void OnStart()
{  
  SINGLETESTERCACHE SingleTesterCache; // テスト用キャッシュのオブジェクトを作成しました。
  
  //https://www.mql5.com/ru/forum/330333/page7#comment_60578334
  if (SingleTesterCache.Set() &&          // 実際の取引履歴をそこに反映させた。
      SingleTesterCache.Save(inFileName)) // それを、テスターにインポートできるファイルに保存しました。
  {
    const string FullPath = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + inFileName;
    
    MessageBox(MTTESTER::OpenCache(FullPath) ? "Done" : "Failed");
  }
}