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

 
fxsaber:

MTTesterライブラリは、長い間、ユーザーがGUIでできることはすべてできるようにしてきた。

私はMTTesterを マスターしている。

接続のみ

#include <fxsaber\MultiTester\MTTester.mqh>

テストの終了を 待つ方法がわかりません。私はこのような行を実行します

MTTESTER::Run( NULL,SimvolTorg[i]);
Sleep(10000);
MTTESTER::IsReady();

テストの終了を待った結果が起こりません。この問題を自分で解決する必要がありますか?それとも、すでに解決策があるのでしょうか?

 
pivomoe:

その結果、テストの終了を待つことができない。この問題を自分で解決する必要がありますか?それとも、すでに解決策があるのでしょうか?

上に例がありました。私自身は4つの関数しか使っていません:

MTTESTER::IsReady - Тестер готов к запуску.
MTTESTER::ClickStart - Нажать на кнопку Старт/Стоп.
MTTESTER::GetSettings - получить полные текушие настройки тестера.
MTTESTER::SetSettings2 - задать любые настройки тестера.
 
while(1)
        {
         Sleep(1000);
         if( MTTESTER::IsReady() ) break;
        }
ありがとう。助かったよ。
 
pivomoe:
ありがとう。助かったよ。

さらに上級者用に4つ。

MTTESTER::GetPassesDone - количество выполненных прогонов идущей оптимизации.
MTTESTER::GetLastOptCache - последний opt-файл.
MTTESTER::GetLastTstCache - последний tst-файл.
MTTESTER::CloseNotChart - закрывает график оптимизации.


他には何も使わないよ。

 
すでに最適化されたEAをテストする際、最適化が無効になっている場合、テストするペアと時間枠を変更する間に15秒の間をおいて、テスターの「チャート」と「バックテスト」のタブを自動的に押す機能を追加する可能性があるかどうか教えてください。最適化されたExpert Advisorで、多くの時間枠で多くのペアをテストする必要がある場合、最適化から入力されたインジケータの正しさを各インストゥルメントで確認する必要があるため、マルチテスターを使用することはできません。または、過去のテスト結果を確認する時間を持つために、どこかで一時停止を挿入することができます。 ありがとうございます。
 
Il'ya Matviyenko:
既に最適化されたEAをテストする際、最適化が無効の場合、テストするペアと時間枠を変更する間に15秒の間をおいて、テスターの "チャート "と "バックテスト "のタブを自動的にクリックする機能を追加する可能性があるかどうか教えてください。最適化されたExpert Advisorで、多くの時間枠で多くのペアをテストする必要がある場合、最適化から入力されたインジケータの正しさを各インストゥルメントで確認する必要があるため、マルチテスターを使用することはできません。あるいは、どこかで一時停止を挿入して、過去のテスト結果を表示する時間が必要です。 ありがとうございます。

タブの切り替えは私には複雑すぎて試していません。もしかしたら、誰かがそれをやって、ここで共有できるかもしれません。今のところうまくいっていません。

 
fxsaber:

タブの切り替えは僕には複雑すぎて試していない。もしかしたら、誰かがそれをやって、ここで共有できるかもしれない。今のところうまくいっていない。

そのようなコードがあった(たぶん今もある)。

user32::SendMessageW(user32::GetDlgItem(Handle, 0x2712), WM_LBUTTONDOWN, 1, 0x17007C); // 設定」タブの選択

他のタブも似ているはずだ。それとも私が間違っているのだろうか?

 
traveller00:

そのようなコードがあった(今もあるかもしれない)。

そうだった!忘れてた。

 

すべてがはるかにシンプルになった。MultiTester.mqhに次のように追加するだけでよい:

.....................

void OnTimer()
{
static const int Size = TesterSettings.GetSize();
static bool IsRun = false;
static int Pos = 0;
static datetime StartTime = 0;
static bool Init = false;
static int Attempts = 0;
static int Errors = 0;
if(MessageBox("Continue?",MB_OK)==IDOK) { {{{MessageBox("Continue?",MB_OK)==IDOK)
if (!Size || IsStopped())
{
EventKillTimer();
ExpertRemove();

}

................

そして、中間テスト結果を好きなだけ賞賛することができる。

 
Il'ya Matviyenko:

すべてがはるかにシンプルになった。MultiTester.mqhに追加すれば十分である:

と追加するだけで、中間テスト結果を好きなだけ眺めることができる。

これが、すべてがオープンソースである理由である。