MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案 - ページ 9

 
Vladimir Karputov:

納品された標準的なEAを手に取り、動作確認をしてください。しかし、入力パラメータがsinputとして宣言されている場合、これらのパラメータを最適化することはできません。

標準的なEAから選びました。

MACDサンプル

しかし、すべては変わらない。

MACDサンプル入力

sinputのパラメータをマジックにしたのは、最適化する意味がないからです。

にゅうしんにゅうりょく

私のビルドは2155です。もしかして、ビルドに何か問題があるのでは?

 
Mihail Matkovskij:

定番のエキスパートから選びました。

しかし、すべては変わらない。

私自身のsinputでは、最適化しても意味がないので、magicパラメータだけにしました。


私のビルドは2155です。もしかして、ビルドに何か問題があるのでは?

ほら、できたよ。以前は最適化パラメータを設定 する必要がなかったのですが、最適化パラメータの横にフラグを付ける必要があります。

 
Mihail Matkovskij:

定番のエキスパートから選びました。

しかし、すべては変わらない。

私自身のsinputでは、最適化しても意味がないので、magicパラメータだけにしました。


私のビルドは2155です。もしかして、ビルドに何か問題があるのでは?

気を抜いている間に、造りはまあまあになる。標準的なEAで、そのパラメータはACCEPTABLE FOR CHANGE(変更可能)となっていますね。あとは、「変数」欄のチェックボックスにチェックを入れるだけです。


追記:返信を書いているうちに、お分かりになったようですね。

 
Vladimir Karputov:

作りはいいんだけど、不注意なんだよね。あなたは標準的なEAを利用し、そのパラメータは変更することがACCEPTABLEであることがわかります。 あとは、「変数」欄のチェックボックスにチェックを入れるだけです。


追記:返信を書いている間に、わかったようですね。

はい、でもとにかくありがとうございます

 
Testerがカウント中(赤いStopボタン)の場合、Optionsタブのマウスホイールが機能しません(多くのパラメータをスクロールする必要があります)。
 
こんにちは!最適化について質問です。私の端末には4人のエージェントがいます。以前は、最適化によってシステム全体がフリーズすることもありました。そのため、1つのエージェントを切断したところ、すべてうまくいくようになりました。新しいバージョンのターミナルでは、ファーストエージェントが全く読み込まれないことに気づきました。そこで、第4剤に切り替えた。私は正しいことをしたのでしょうか、4つのエージェントが動作している状態でフリーズすることを期待すべきでしょうか、それとも私が想定したように、全体の最適化の間、最初のエージェントはまだアンロードされているのでしょうか?
 
Mihail Matkovskij:
こんにちは!最適化について質問です。私の端末には4人のエージェントがいます。以前は、最適化により、システム全体がフリーズすることがありました。そのため、以前は1つのエージェントを無効化し、すべてうまくいっていました。新しいターミナルバージョンでは、ファーストエージェントが全くロードされないことに気づきました。そこで、第4剤に切り替えた。4つのエージェントが動作しているとフリーズするのでしょうか?それとも、私が想定していたように、最初のエージェントは全体の最適化中にアンロードされたままなのでしょうか?

もしかして、最初のエージェントでVisual Testerのウィンドウを開いていませんか?Yesの場合、Visual Tester ウィンドウを閉じると、エージェント#1がフリーになります。

 

テスターは、テスト間隔の最後の数ティックをリセットしない。

電子ブック

#define  TOSTR(A) " " + #A + " = " + (string)Tick.A
#define  TOSTR2(A) " " + #A + " = " + ::DoubleToString(Tick.A, _Digits)

string TickToString( const MqlTick &Tick, const bool Flags = true )
{
  return(TOSTR(time) + "." + ::IntegerToString(Tick.time_msc % 1000, 3, '0') + TOSTR2(bid) + TOSTR2(ask));
}

void OnDeinit( const int )
{
  MqlTick Tick;

  if (SymbolInfoTick(_Symbol, Tick))
    Print(TickToString(Tick)); // Распечатываем последний тик интервала тестирования.
}


結果

EURGBP.rann_RannForex: history data begins from 2018.02.06 00:00
EURGBP.rann_RannForex: ticks data begins from 2018.02.06 00:00
agent process started on 127.0.0.1:3000
connecting to 127.0.0.1:3000
connected
authorized (agent build 2162)
EURGBP.rann_RannForex,M1 (MetaQuotes-Demo): testing of Experts\Test5-4.ex5 from 2019.09.28 00:00 to 2019.10.01 00:00
common synchronization completed
EURGBP.rann_RannForex: ticks synchronized already [73 bytes]
MetaTester 5 started on 127.0.0.1:3000
initialization finished
login (build 2162)
4372 bytes of account info loaded
1482 bytes of tester parameters loaded
188 bytes of input parameters loaded
2813 bytes of symbols list loaded
expert file added: Experts\Test5-4.ex5. 13105 bytes loaded
7703 Mb available, 96 blocks set for ticks generating
calculate profit in pips, initial deposit 10000, leverage 1:100
successfully initialized
14 Kb of total initialization data received
Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
EURGBP.rann_RannForex: symbol to be synchronized
EURGBP.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
EURGBP.rann_RannForex: load 57 bytes of history data to synchronize in 0:00:00.001
EURGBP.rann_RannForex: history synchronized from 2018.02.06 to 2019.10.01
EURGBP.rann_RannForex: ticks synchronization started
EURGBP.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
EURGBP.rann_RannForex: history ticks synchronized from 2019.09.30 to 2019.10.01
EURGBP.rann_RannForex,M1: history cache allocated for 611815 bars and contains 608725 bars from 2018.02.06 02:00 to 2019.09.27 23:54
EURGBP.rann_RannForex,M1: history begins from 2018.02.06 02:00
EURGBP.rann_RannForex,M1 (MetaQuotes-Demo): generating based on real ticks
EURGBP.rann_RannForex,M1: testing of Experts\Test5-4.ex5 from 2019.09.28 00:00 to 2019.10.01 00:00 started
EURGBP.rann_RannForex : real ticks begin from 2019.09.30 00:00:00
final balance 10000.00 pips
2019.09.30 23:59:58    time = 2019.09.30 23:59:58.022 bid = 0.88612 ask = 0.88741
EURGBP.rann_RannForex,M1: 101751 ticks, 1424 bars generated. Test passed in 0:00:00.558 (including ticks preprocessing 0:00:00.031).
269 Mb memory used including 35 Mb of history data, 64 Mb of tick data
log file "C:\Program Files\ICMarkets - MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20191002.log" written
connection closed


本当は最後にあるべきもの。


どのような間隔でもバグが再現される。

 

入力グループによるパラメータのグループ化のオプションが追加されました。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
input group           "Strategy #1"
input ENUM_TIMEFRAMES InpS1_TF    =PERIOD_M30;        // timeframe
input string          InpS1_Sym1  ="EURUSD";          // first leg
input string          InpS1_Sym2  ="GBPUSD";          // second leg
input int             InpS1_Period=20;                // period of sigma calculation
input double          InpS1_Sigma =3.0;               // sigma level for trade
input int             InpS1_Bars  =100;               // bars for correlation
input double          InpS1_Level =0.7;               // correlation level for trade
input double          InpS1_Lot   =0.1;               // trade lot
sinput long           InpS1_Magic =100;               // Magic Number

input group           "Strategy #2"
input ENUM_TIMEFRAMES InpS2_TF    =PERIOD_M30;        // timeframe
input string          InpS2_Sym1  ="EURJPY";          // first leg
input string          InpS2_Sym2  ="GBPJPY";          // second leg
input int             InpS2_Period=20;                // period of sigma calculation
input double          InpS2_Sigma =3.0;               // sigma level for trade
input int             InpS2_Bars  =100;               // bars for correlation
input double          InpS2_Level =0.7;               // correlation level for trade
input double          InpS2_Lot   =0.1;               // trade lot
sinput long           InpS2_Magic =200;               // Magic Number

input group           "Strategy #3"
input ENUM_TIMEFRAMES InpS3_TF    =PERIOD_M30;        // timeframe
input string          InpS3_Sym1  ="EURCHF";          // first leg
input string          InpS3_Sym2  ="GBPCHF";          // second leg
input int             InpS3_Period=20;                // period of sigma calculation
input double          InpS3_Sigma =3.0;               // sigma level for trade
input int             InpS3_Bars  =100;               // bars for correlation
input double          InpS3_Level =0.7;               // correlation level for trade
input double          InpS3_Lot   =0.1;               // trade lot
sinput long           InpS3_Magic =300;               // Magic Number

input group           "Strategy #4"
input ENUM_TIMEFRAMES InpS4_TF    =PERIOD_M30;        // timeframe
input string          InpS4_Sym1  ="EURUSD";          // first leg
input string          InpS4_Sym2  ="AUDUSD";          // second leg
input int             InpS4_Period=20;                // period of sigma calculation
input double          InpS4_Sigma =3.0;               // sigma level for trade
input int             InpS4_Bars  =100;               // bars for correlation
input double          InpS4_Level =0.7;               // correlation level for trade
input double          InpS4_Lot   =0.1;               // trade lot
sinput long           InpS4_Magic =400;               // Magic Number

input group           "Strategy #5"
input ENUM_TIMEFRAMES InpS5_TF    =PERIOD_M30;        // timeframe
input string          InpS5_Sym1  ="USDCAD";          // first leg
input string          InpS5_Sym2  ="USDCHF";          // second leg
input int             InpS5_Period=20;                // period of sigma calculation
input double          InpS5_Sigma =3.0;               // sigma level for trade
input int             InpS5_Bars  =100;               // bars for correlation
input double          InpS5_Level =0.7;               // correlation level for trade
input double          InpS5_Lot   =0.1;               // trade lot
sinput long           InpS5_Magic =500;               // Magic Number

input group           "Strategy #6"
input ENUM_TIMEFRAMES InpS6_TF    =PERIOD_M30;        // timeframe
input string          InpS6_Sym1  ="USDCHF";          // first leg
input string          InpS6_Sym2  ="USDJPY";          // second leg
input int             InpS6_Period=20;                // period of sigma calculation
input double          InpS6_Sigma =3.0;               // sigma level for trade
input int             InpS6_Bars  =100;               // bars for correlation
input double          InpS6_Level =0.7;               // correlation level for trade
input double          InpS6_Lot   =0.1;               // trade lot
sinput long           InpS6_Magic =600;               // Magic Number

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {

  }  
//+------------------------------------------------------------------+


グループは作業しやすく、折りたたむことも可能です。

 
MetaQuotes Software Corp.:

入力グループによるパラメーターのグループ化に関する新しいオプションがあります。

グループの方が作業しやすく、折りたたみも可能です。

ありがとうございます。また、「全グループの折りたたみ/折りたたみ解除」を実現したい。