ライブラリ: マルチテスター - ページ 9 12345678910111213141516...56 新しいコメント fxsaber 2019.11.12 11:47 #81 fxsaber:テスターを自動化するための完全な自由が手に入った。 実際の応用例の一つです(すべて自動的に行われます)。 すべてのシンボルを取得し、各シンボルに対して以下のステップを実行します。 最適化を開始する。 ベストパスの最後にデータが取得され、そこから最適化のためのいくつかのタスクが形成されます(入力パラメータの設定範囲)。 項目3からのすべての最適化が実行される。 項目4からのすべての最適化からベストパスが取り出され、ポートフォリオ取引用のセットとして保存される。 これは、非常に強力なマーケット・スキャナーであり、TSアジャスターであることが判明した。このような操作にTCソースは必要ない。 fxsaber 2019.11.12 18:01 #82 // テスターにセットファイルをロードする例。 #property script_show_inputs #include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/ja/code/26132 input string inFileName = "SetFile.set"; // セットファイル string FileToString( const string FileName ) { ushort Buffer[]; return(FileLoad(FileName, Buffer) ? ShortArrayToString(Buffer) : NULL); } void OnStart() { MTTESTER::SetSettings("[TesterInputs]\n" + FileToString(inFileName)); } テスターのiniファイルも同様です。 Edgar Akhmadeev 2019.11.12 23:12 #83 ありがとう fxsaber 2019.11.13 15:44 #84 MT5 build2209+用にライブラリが更新されました。 fxsaber 2019.11.13 16:00 #85 fxsaber:非常に強力なマーケット・スキャナーであり、TSアジャスターであることが判明した。 #property script_show_inputs #include <fxsaber\MultiTester\MultiTester.mqh> //https://www.mql5.com/ja/code/26132 #include <fxsaber\MultiTester\Task.mqh> input bool OnlyCustomSymbols = true; // カスタム文字のみ input bool AllSymbols = false; // すべての文字または現在の文字 void Add( const string SymbName ) { TesterSettings.Add(NULL, SymbName, 0, 0, 0, TASK::InitBase, TASK::DeinitBase); for (int i = 0; i < ::inAmount; i++) TesterSettings.Add(NULL, NULL, 0, 0, 0, TASK::InitSub, TASK::DeinitSub); } // この関数はタスクリストを生成する。 void SetTesterSettings() { if (AllSymbols) // マーケット・ウォッチから全シンボルを検索する。 for (int i = SymbolsTotal(true) - 1; i >= 0; i--) { const string Name = SymbolName(i, true); if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM)) Add(Name); } else if (!OnlyCustomSymbols || SymbolInfoInteger(_Symbol, SYMBOL_CUSTOM)) Add(_Symbol); } エキスパート・アドバイザーは sinput int inMinTrades = 500; // 最低取引数(ポジション)。 sinput int inMaxTrades = 90000; // 最大取引(ポジション)数。 double OnTester() { return(((TesterStatistics(STAT_TRADES) >= inMinTrades) && (TesterStatistics(STAT_TRADES) <= inMaxTrades)) ? TesterStatistics(STAT_PROFIT) : 0); } fxsaber 2019.11.17 23:22 #86 いくつかの落とし穴を回避更新 traveller00 2019.11.18 12:13 #87 以前のバージョンについては知らない。しかし最新バージョンでは、同じ測定器のテストを何度も実行することができます。 Doneがログに表示され、その後空になり(Startが表示されない)、端末が同時に新しいパスを開始しました。どうやら、else if (IsRun = (Init = TesterSettings.Init(Pos))&& TesterSettings.Run(Pos))がfalseを返したからです。そして、次のタイマーパスでは、if (MTTESTER::IsReady()) がfalseを返すので、待ちのループになります。TesterSettings.Run(Pos))自体がfalseを返すのは、タイムアウトのため、つまり、ただ待たずに終了するため、些細なことのようです。 fxsaber 2019.11.18 12:24 #88 traveller00: TesterSettings.Run(Pos))がfalseを返すのは、タイムアウトによる些細なことのようです。 もしそうなら、この数値を増やしてみてください。 static bool ClickStart( const bool Check = true, const int Attempts = 5 ) Startボタンが押されてから長い間Stopボタンに変わらなかったというケースは初めてです。 Example3を100文字実行しましたが、すべてうまくいきました。 traveller00 2019.11.18 12:27 #89 そう、僕自身は50に増やしたんだ。でも、他の誰かが同じような問題を抱えていたり、一般的なバージョンで微調整したい場合に備えてね。 fxsaber 2019.11.18 12:30 #90 traveller00: そう、僕自身は50に増やしたんだ。しかし、他の誰かが同じような問題を抱えていたり、一般的なバージョンでそれを微調整したい場合に備えて、次のようにしました。 ボタンのステータスを変更するのにかかった試行回数のロギングを置く。興味深い結果だ。 ZY おそらくこのバグは まだ影響しているのでしょう。 12345678910111213141516...56 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
テスターを自動化するための完全な自由が手に入った。
実際の応用例の一つです(すべて自動的に行われます)。
これは、非常に強力なマーケット・スキャナーであり、TSアジャスターであることが判明した。このような操作にTCソースは必要ない。
非常に強力なマーケット・スキャナーであり、TSアジャスターであることが判明した。
エキスパート・アドバイザーは
以前のバージョンについては知らない。しかし最新バージョンでは、同じ測定器のテストを何度も実行することができます。
Doneがログに表示され、その後空になり(Startが表示されない)、端末が同時に新しいパスを開始しました。どうやら、else if (IsRun = (Init = TesterSettings.Init(Pos))&& TesterSettings.Run(Pos))がfalseを返したからです。そして、次のタイマーパスでは、if (MTTESTER::IsReady()) がfalseを返すので、待ちのループになります。TesterSettings.Run(Pos))自体がfalseを返すのは、タイムアウトのため、つまり、ただ待たずに終了するため、些細なことのようです。
traveller00:
TesterSettings.Run(Pos))がfalseを返すのは、タイムアウトによる些細なことのようです。
もしそうなら、この数値を増やしてみてください。
Startボタンが押されてから長い間Stopボタンに変わらなかったというケースは初めてです。
Example3を100文字実行しましたが、すべてうまくいきました。
そう、僕自身は50に増やしたんだ。しかし、他の誰かが同じような問題を抱えていたり、一般的なバージョンでそれを微調整したい場合に備えて、次のようにしました。
ボタンのステータスを変更するのにかかった試行回数のロギングを置く。興味深い結果だ。
ZY おそらくこのバグは まだ影響しているのでしょう。