エラー、バグ、質問 - ページ 1941

 

MT5が最適化中にこのような結果を出せるのはなぜか、詳しい方、教えてください。

これは孤立したケースではない。しかも、どの行をとっても、単発のテストを行えば、表とはまったく違う結果になる。

また、可視化した場合としない場合では、1回の検査で全く異なる検査結果が得られます。

さらに、何度もテストを行えば、その結果も時には大きく異なることがあります。

=====

先週から端末で始まっています。それ以前は、十分に機能していたようです。それとも、何も間違っていることに気づいていないのだろうか。

私も1年前、同じような悩みを抱えていました。そのテスターでは、無理なEA設定 でも結果を出していました。例えば、EAでTake Profitを無効にした場合、あるテスト結果を出しましたが、それを100000000ポイントに設定すると(つまり、絶対に到達できないので無効にする)、テスターは全く違う結果を出しました。


そんな虫とどう戦えばいいのか。なぜこのような問題が発生するのでしょうか?もしかして、私のやり方が悪いのか?

ファイル:
ky1b.jpg  590 kb
 
Andrey Koldorkin:

MT5が最適化中にこのような結果を出せるのはなぜか、詳しい方、教えてください。

これは孤立したケースではない。しかも、どの行をとっても、単発のテストを行えば、表とはまったく違う結果になる。

また、可視化した場合としない場合では、1回の検査で全く異なる検査結果が得られます。

さらに、何度もテストを行えば、その結果も時には大きく異なることがあります。

=====

先週から端末で始まっています。それ以前は、十分に機能していたようです。あるいは、何も間違っていることに気づいていないのかもしれません。

私も1年前、同じような悩みを抱えていました。そのテスターでは、無理なEA設定 でも結果を出していました。例えば、あるEAでTake Profitを無効にした場合、あるテスト結果を出しましたが、それを100000000ポイントに設定すると(つまり、絶対に到達できないので無効にする)、テスターは全く異なる結果を出しました。


そんな虫とどう戦えばいいのか。なぜこのような問題が発生するのでしょうか?もしかして、私のやり方が悪いのでしょうか?

EAの冒頭に2行を挿入する

#define  REPORT_TESTER // В тестере будут автоматически записываться отчеты
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

これにより、テスターはオプティマイザーの各パスと1回の実行に対する詳細なレポートを強制的に保存することになります。

オプティマイザーとそのバージョンの1回の実行の結果のランレポートを比較します。

 
MQL5-compilerは沈黙し、MQL4+は警告を発する。
m_pixels[y*m_width+x]=(r<<16|g<<8|b<<0|255<<24) &0xffffffff; // check operator precedence for possible error; use parentheses to clarify precedence

誰が正しいのか?

 
コンパイルエラー(MT5b1641)
void NewFunc( int ) {}

#define  MACROS(A) New##A

void OnStart()
{  
  NewFunc(0);      // OK
  MACROS(Func(0)); // Error: 'NewFunc(0)' - undeclared identifier
}
 

マクロを含めてください

__SCRIPT__- コンパイルされた mq5-file は Script である。

__INDICATOR__- コンパイルされた mq5 ファイルは Indicator です。

EXPERT__- コンパイルされた mq5 ファイルは Expert Advisor です。

__SERVICE__- コンパイルされた .mq5 ファイルはサービスです。


MQLInfoIntegerが 使用できない場合

#ifdef __EXPERT__

void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)  
  {
    Print("FirstTick!");
    
    FirstRun = false;
  }
  
  OldOnTick();
}

#endif // __EXPERT__

#ifdef __SERVICE__

void OnTick( const string &Symb )
{
  static bool FirstRun = true;
  
  if (FirstRun)  
  {
    Print("FirstTick!");
    
    FirstRun = false;
  }
  
  OldOnTick(Symb);
}

#endif // __SERVICE__

#define OnTick OldOnTick

// Дальше код советника/сервиса.

 
MQLを通じてPRエージェントを獲得するにはどうすればよいですか?Agentのスピードを測って、PRを取りたかったのですが、ここには ありません。
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
MQLを通じてPRエージェントを獲得するにはどうすればよいですか?Agentのスピードを測っているのですが、PRを取りたかったのですが、ここに PRはありません。

何が言いたいの?どうせエージェントは選べないんだから。PRなしでも、時間がかかりすぎるタスクは切り捨てることができます。

 
Stanislav Korotky:

何が言いたいの?どうせエージェントは選べないんだから。PRなしでも、時間がかかりすぎるタスクは切り捨てることが可能です。

ポイントは、PR-agentの実パフォーマンスの矛盾を示せることです。またはその逆で、レーティングの計算の妥当性を示すため。

 
MetaQuotes-DemoでMT4デモ口座が開設できない。
 

MT4テスターの "All ticks "モードでは、履歴にないバーでトレードを行う。