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

 
RickD:

Expert Advisor用のフォルダもテスターにはありません。しかし、MQLInfoString(MQL_PROGRAM_NAME)はExpert Advisorをテスト する際に同じ値を返します。

そして、名前付きチャンネルを使って、テスト中のバージョンとチャート上のバージョンを関連付けるために、同じ値が必要です。

によって修正されました。
 
 

EAをデバッグモードで動かして います。手動でEAをアンチャートした瞬間にブレークポイントを作る必要があります。どうすればいいのか?


問題は、EAを削除するとTerminalが永久にハングアップしてしまうことです。どの場所で起きているのか把握する必要がある。

 
fxsaber:

EAをデバッグモードで動かして います。手動でEAをアンチャートした瞬間にブレークポイントを作る必要があります。どうすればいいのか?

次のようなコードを書きました。

int OnInit()
  {
     if(IsStopped()) DeInitEA(1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(IsStopped()) DeInitEA(2);

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(IsStopped()) DeInitEA(3);
  }
//+------------------------------------------------------------------+

void DeInitEA(const int callfunc)
{
   string s = "";
   switch (callfunc)
   {
      case 1: s = "OnInit"; break;
      case 2: s = "OnDeinit"; break;
      case 3: s = "OnTick"; break;
   }
   Print(s + " , остановка работы советника");
   
}

文字列 s = ""; にブレークポイントを設定 - 問題なく ME に戻り、デバッグウィンドウが表示され、まあ、すべてが通常通りです。

 

最初は統計データをカットして、今度は完全に殺してしまったのか?


 
Igor Makanu:

は、次のようなコードを書きました。

文字列 s = ""; にブレークポイントを設定 - 問題なく ME に戻り、デバッグウィンドウが表示され、まあ、いつも通りです。

この方法では、各オペレータの後にブレークポイントチェックを入れる必要があります。合わないんです。

 
TheXpert:

最初は統計データをカットして、今度は完全に殺してしまったのか?

作動中

 
fxsaber:

この方法では、各オペレータの後にストップチェックを入れなければなりません。適さない。

各ステートメントの後に行う必要はありません。コードの最初、最後、途中で半分ずつ分割チェックを行い、正しい半分が見つかったら、もう一度繰り返してコードを2つに分割すると、速いと思います。

 
Igor Makanu:

各ステートメントが必要でない後、半分の分割チェックを置く - 先頭、末尾、コードの途中で、その後、コードの右半分を見つけることは再び2つの部分にコードの分割を繰り返し、私はそれが高速だと思う

大きなプログラムです。ハングアップの再現には1回30秒程度かかります。

 
fxsaber:

EAをデバッグモードで動かして います。手動でEAをアンチャートした瞬間にブレークポイントを作る必要があります。どうすればいいのか?


問題は、EAを削除するとTerminalが永久にハングアップしてしまうことです。どこで起こるのかを理解する必要がある。

完全に直ったのか、それともEAがアンロードされるのに時間がかかるのか?後者の場合は、ループを探します。