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

 
この2つのツールを組み合わせて、自動ポートフォリオ・オプティマイザーを作る予定はないのでしょうか?そうすれば、最適化の 結果は即座に同じ結果を持つポートフォリオの一部として評価されるでしょう。そうすれば、ドローダウンなどには相関がなく、シャープやリカバリーファクターによるポートフォリオ全体の目標関数や、例えば取引回数による追加フィルターがあります。最適化の結果を手作業でポートフォリオにまとめる必要があり、しかもその数が数百に及ぶとなると......。
 
このライブラリから特定の実行の入力パラメータを取得するには?TESTERCACHE Cache; Cache[i] inputs
 

こんにちは!

昨年12月、貴社のライブラリを実行し、100以上のカスタム・キャラクターで最適化を実行しました。

今日、もう一度実行しようとしたのですが、テスターログには「最適化を開始できません」というエラーしかありません。ライブラリを更新しました。

異なるシンボルで実行してみたり、MultiTester_exampleを実行してみたり、メタトレーダー5の異なるビルドを試してみたり、異なる最適化設定を試して みたり、通常の移動平均Expert Advisorで実行してみたりしましたが、まだこのエラーが発生します。このようなエラーが発生したことがある方はいらっしゃいますか?どうすれば直りますか?

 
Jekamajor #:

テスターのログには "optimisation cannot be started "というエラーしかない。

手動で最適化を開始した場合の反応は?
 
fxsaber #:
手動で最適化を実行した場合の反応は?


手動による最適化は エラーなく開始、実行、終了 します。ログのスクリーンショット。上は単純な移動平均による最適化の起動、下は同じパラメータでライブラリ経由の起動です。

 
Jekamajor #:

以下は、同じパラメーターを使った、ライブラリ経由でのローンチである。

なぜこのExpert AdvisorはTester自体で実行されるのですか?テスターではなくターミナルチャートに投げられます。

 
fxsaber #:

なぜこのExpert Advisorはテスター自体で実行されるのですか?テスターではなくターミナルチャートに投げられます。

そうですね!もう1年も起動方法を忘れていました。チャートにドラッグすると起動します。ありがとうございました!
 
異なる入力パラメータを取る複数の逐次最適化のコードの書き方の例を投稿してください。
 
Soroush Kheradmand #:
異なる入力パラメータを取る複数の逐次最適化のコードの書き方の例を投稿してください。

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

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

テスターの設定はCTRL+C/Vで保存されます。それらを別のファイルに保存し、上記のソースのSettings[] 配列にそれらのデータを入れることができます。

 

データを配列にする簡単な方法はありますか?20個のセットファイルを追加する必要があるのですが、それぞれ108行なので、2160行を手動で " " + 追加して配列にする必要がありますか?

個人的にセットファイルをロードするのが一番いい方法なんだけど、"D:/MT5Tester2,MQL5Profiles,XU BB+ENV+RSI.set" 等々、でも僕はただの人間で、こんなもののコードの書き方も知らないんだ。 君のEAはとてもクールだけど、ちょっとね。

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

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {[Tester]
                        Expert=MT5 White Rabbit v1.14.ex5
                        Symbol=XAUUSD
                        Period=M5
                        Optimization=2
                        Model=4
                        FromDate=2023.02.01
                        ToDate=2024.10.01
                        ForwardMode=0
                        Deposit=20000
                        Currency=USD
                        ProfitInPips=0
                        Leverage=100
                        ExecutionMode=200
                        OptimizationCriterion=6
                        [TesterInputs]
                        OnTester=------------ On Tester ------------
                        MinTrades=60||120||1||1200||N
                        MaxEquityDrawdown=3.0||20.0||2.000000||200.000000||N
                        CustomMax=------------ Custom Max ------------
                        EA_Expires=2024.12.25
                        Enable_Buy=true||false||0||true||N
                        Enable_Sell=true||false||0||true||N
                        TRADE_TIMES=------------ TIME SETTINGS ------------
                        StartTime_1=1||1||3||10||N
                        Stop_Time_1=9||9||4||21||Y
                        Monday=true||false||0||true||N
                        Tuesday=true||false||0||true||N
                        Wednesday=true||false||0||true||N
                        Thursday=true||false||0||true||N
                        Friday=false||false||0||true||Y
                        Weekend=false||false||0||true||N

                        // 次のセット
                        [Tester]
                        Expert=MT5 White Rabbit v1.14.ex5
                        Symbol=XAUUSD
                        Period=M5
                        Optimization=2
                        Model=4
                        FromDate=2023.02.01
                        ToDate=2024.10.01
                        ForwardMode=0
                        Deposit=20000
                        Currency=USD
                        ProfitInPips=0
                        Leverage=100
                        ExecutionMode=200
                        OptimizationCriterion=6
                        [TesterInputs]
                        OnTester=------------ On Tester ------------
                        MinTrades=60||120||1||1200||N
                        MaxEquityDrawdown=3||20.0||2.000000||200.000000||N
                        CustomMax=------------ Custom Max ------------
MultiTester
MultiTester
  • www.mql5.com
Множественные прогоны/оптимизации в Тестере.