ライブラリ: マルチテスター - ページ 35 1...282930313233343536373839404142...56 新しいコメント EgorKim 2024.02.01 09:43 #341 fxsaber #:テストへのご協力ありがとうございました!MTTester.mqhを更新しました。 ライブラリの提供ありがとうございました。 fxsaber 2024.02.01 11:44 #342 MTTester.mqhを再び更新しました。今回は、その苦労話をしよう。 #include <fxsaber\Benchmark\Benchmark.mqh> //https://www.mql5.com/ja/code/31279 #include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/ja/code/26132 const bool Init = EventSetTimer(3); void OnTimer() { if (MTTESTER::IsReady()) // スタートボタンが押せる状態になっている場合 Print(_B(MTTESTER::ClickStart(), 1)); // スタートボタンが押されたかどうかと、それにかかった時間。 }このExpert Advisorは、Stopでなければ3秒ごとにStartボタンを押す。私はそれを押すことができた - 真、そうでなければ - 偽。スタートボタンを押すと計算が始まる。Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 125248 mcs. true Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 123327 mcs. trueこの操作には約125ミリ秒かかる。珍しいことではない。 Start を押す - 即座に計算が開始されるか、テスターが計算を実行できないことを報告します(FromDate >= ToDate など)。Alert: MTTester.mqh: Start->Stop - is not detected! Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 1001401 mcs. true Alert: MTTester.mqh: Start->Stop - is not detected! Alert: Bench_Stack = 0, 1 <= Time[Test.mq5 9 in OnTimer: MTTESTER::ClickStart()] = 1004102 mcs. trueこの操作には約1秒かかります。ライブラリは警告を発しますが、ボタンが押されたことをtrueで返します。スタートボタンが押されていない。ターミナルを再起動しないと治りません。この状況のログはありません。このような状況を特定するのに10秒弱かかります。このようなアラートが表示されます。problem with Start-button!false を返す - ボタンが押されていない。 fxsaber 2024.03.05 06:00 #343 MTTester.mqhを更新。 fxsaber 2024.03.06 13:29 #344 fxsaber #:スタートが押されない。ターミナルを再起動しないと治りません。 リモートのWinServerマシンが、失敗することなく何百回もシングルパスし続けていた。 このマシンにログイン(RDP)したとたん、スタートボタンがクリックできなくなった。対処法は、いつものようにターミナルを再起動することです。 この動作は、このマシンへの同様のログインと関係があるようだ。RDPで何十回ログインしても、すべてうまくいく。しかし、あるログインはテスターにとって致命的となる。 Start-bug に遭遇した人は、マシンへのログインと Start ボタンの関係に注意してください。 ZY偶然かどうか、WinServerはこのマシンへのログオン中にアップデートをチェックするよう申し出た。 sergego18 2024.03.30 05:11 #345 どの*.setファイルにパラメータを設定するか、プログラムで指定できますか? デフォルトでは同じ設定しか使用されないので、あまり便利ではありません。 fxsaber 2024.03.30 05:24 #346 sergego18 #:どの*.setファイルにパラメータを設定して渡すかをプログラムで指定することは可能ですか? 例 sergego18 2024.03.30 06:29 #347 fxsaber #: 例 ありがとうございます。「設定」を1行で渡し、行を「♪」で区切るのが良いのでしょうか? それとも例のように行の配列で渡すのがよいのでしょうか? また MTTester クラスの静的メソッド Run static bool Run( const string ExpertName = NULL、 const string Symb = NULL、 const ENUM_TIMEFRAMES period = PERIOD_CURRENT、 const datetime iBeginTime = 0、 const datetime iEndTime = 0 ) EA設定を指定するパラメータ文字列(または文字列の配列)を1つ追加しますか? fxsaber 2024.03.30 06:40 #348 sergego18 #:「設定」は1行にまとめて、行の区切りは「Ⅾ」の方がいいのでしょうか?それとも例のように行の配列で渡すのが良いですか? GetSettingsはTesterではCTRL+Cです。 SetSettingsはTesterではCTRL+Vです。 CTRL+C/Vがどのようなデータで動作するか確認してください。 また MTTesterクラスのstaticメソッド Run このメソッドは使いません。履歴として残ります。 この例では、必要なMTTESTERメソッドをすべて示しています。 fxsaber 2024.03.30 06:42 #349 sergego18 #:どの*.setファイルにパラメータを設定して渡すかをプログラムで指定することは可能ですか? Validate は、テスターの本格的な ini ファイルと、縮小版のテスター用 set ファイルで動作します。 多くの ini/set ファイルを実行する必要がある場合、Validate はすぐにそれを実行します。ご利用ください。 sergego18 2024.03.30 19:47 #350 fxsaber #:Validateは、本格的なTesterのiniファイルと、Testerのためのset-filesという縮小版で動作します。多くのini/set-filesを実行する必要がある場合、Validateはすぐに実行できます。使用してください。 このコメントから、セットファイルが文字列配列として必要な形式で読み込まれる解決策を見つけました。 https://www.mql5.com/ru/forum/318305/page34#comment_51842356 また、次のように置き換えた。 typedef bool (*INITDEINIT)( void ); 各実行の初期化時と非初期化時のコールバック呼び出しのポインタ をインターフェイスに置き換えた。 インターフェース InitDeInit { bool RunInit(); bool RunDeInit(); }; これは 構造体 SETTINGS に類似したクラスの継承者に実装されています。 と同様のクラスを継承し、RunInit()メソッドに実装されています。 必要なツールのセットファイルを読み込む。 typedef bool (*INITDEINIT)( void ); - このポインタでは、どのツールが初期化/非初期化されているかを知ることができないため、メソッドへのポインタはまだMQLでサポートされていないインターフェイスへのポインタを使用する方がよいでしょう。 このアプローチでは、MTTester::Runメソッドを修正する必要はありません。 Библиотеки: MultiTester - Обновил платформу MetaTrader 5 build 3550 улучшения и исправления Fxsaber. 2024.01.21Yuriy Bykovwww.mql5.com You can add this draft function for reading settings from file to string array. автоматическим торговым системам и тестированию торговых стратегий. Validate умеет запускать последовательно много ini-задайний Libraries: MultiTester 1...282930313233343536373839404142...56 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
テストへのご協力ありがとうございました!MTTester.mqhを更新しました。
ライブラリの提供ありがとうございました。
このExpert Advisorは、Stopでなければ3秒ごとにStartボタンを押す。私はそれを押すことができた - 真、そうでなければ - 偽。
スタートボタンを押すと計算が始まる。
この操作には約125ミリ秒かかる。
珍しいことではない。
Start を押す - 即座に計算が開始されるか、テスターが計算を実行できないことを報告します(FromDate >= ToDate など)。
この操作には約1秒かかります。ライブラリは警告を発しますが、ボタンが押されたことをtrueで返します。
スタートボタンが押されていない。ターミナルを再起動しないと治りません。
この状況のログはありません。このような状況を特定するのに10秒弱かかります。このようなアラートが表示されます。
false を返す - ボタンが押されていない。
スタートが押されない。ターミナルを再起動しないと治りません。
リモートのWinServerマシンが、失敗することなく何百回もシングルパスし続けていた。
このマシンにログイン(RDP)したとたん、スタートボタンがクリックできなくなった。対処法は、いつものようにターミナルを再起動することです。
この動作は、このマシンへの同様のログインと関係があるようだ。RDPで何十回ログインしても、すべてうまくいく。しかし、あるログインはテスターにとって致命的となる。
Start-bug に遭遇した人は、マシンへのログインと Start ボタンの関係に注意してください。
ZY偶然かどうか、WinServerはこのマシンへのログオン中にアップデートをチェックするよう申し出た。
どの*.setファイルにパラメータを設定するか、プログラムで指定できますか?
デフォルトでは同じ設定しか使用されないので、あまり便利ではありません。
どの*.setファイルにパラメータを設定して渡すかをプログラムで指定することは可能ですか?
例
ありがとうございます。
「設定」を1行で渡し、行を「♪」で区切るのが良いのでしょうか?
それとも例のように行の配列で渡すのがよいのでしょうか?
また
MTTester クラスの静的メソッド Run
static bool Run( const string ExpertName = NULL、
const string Symb = NULL、
const ENUM_TIMEFRAMES period = PERIOD_CURRENT、
const datetime iBeginTime = 0、
const datetime iEndTime = 0 )
EA設定を指定するパラメータ文字列(または文字列の配列)を1つ追加しますか?
「設定」は1行にまとめて、行の区切りは「Ⅾ」の方がいいのでしょうか?
それとも例のように行の配列で渡すのが良いですか?
GetSettingsはTesterではCTRL+Cです。
SetSettingsはTesterではCTRL+Vです。
CTRL+C/Vがどのようなデータで動作するか確認してください。
また
MTTesterクラスのstaticメソッド Run
このメソッドは使いません。履歴として残ります。
この例では、必要なMTTESTERメソッドをすべて示しています。
どの*.setファイルにパラメータを設定して渡すかをプログラムで指定することは可能ですか?
Validate は、テスターの本格的な ini ファイルと、縮小版のテスター用 set ファイルで動作します。
多くの ini/set ファイルを実行する必要がある場合、Validate はすぐにそれを実行します。ご利用ください。
Validateは、本格的なTesterのiniファイルと、Testerのためのset-filesという縮小版で動作します。
多くのini/set-filesを実行する必要がある場合、Validateはすぐに実行できます。使用してください。
このコメントから、セットファイルが文字列配列として必要な形式で読み込まれる解決策を見つけました。
https://www.mql5.com/ru/forum/318305/page34#comment_51842356
また、次のように置き換えた。
typedef bool (*INITDEINIT)( void );
各実行の初期化時と非初期化時のコールバック呼び出しのポインタ
をインターフェイスに置き換えた。
インターフェース InitDeInit {
bool RunInit();
bool RunDeInit();
};
これは
構造体 SETTINGS に類似したクラスの継承者に実装されています。
と同様のクラスを継承し、RunInit()メソッドに実装されています。
必要なツールのセットファイルを読み込む。
typedef bool (*INITDEINIT)( void ); - このポインタでは、どのツールが初期化/非初期化されているかを知ることができないため、メソッドへのポインタはまだMQLでサポートされていないインターフェイスへのポインタを使用する方がよいでしょう。
このアプローチでは、MTTester::Runメソッドを修正する必要はありません。