Fehler, Irrtümer, Fragen - Seite 2611

 
RickD:

Auch für Expert Advisors gibt es im Tester keine Ordner. Aber MQLInfoString(MQL_PROGRAM_NAME) gibt beim Testen eines Expert Advisors denselben Wert zurück.

Und ich benötige denselben Wert, um die zu testende Version mit der Version im Diagramm über benannte Kanäle zu verknüpfen.

Behoben durch
 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von Neulingen zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes" verschoben.
 

Ich führe den EA im Debug-Modus aus. Ich muss einen Haltepunkt genau in dem Moment setzen, in dem ich den EA manuell entstarte. Wie kann ich das tun?


Das Problem ist, dass sich das Terminal permanent aufhängt, wenn ich den EA entferne. Ich muss verstehen, wo das passiert.

 
fxsaber:

Ich lasse den EA im Debug-Modus laufen. Ich muss einen Haltepunkt genau in dem Moment setzen, in dem ich den EA manuell entstarte. Wie kann ich das tun?

Ich habe den folgenden Code geschrieben:

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 + " , остановка работы советника");
   
}

setze Haltepunkt auf String s = ""; - kehrte ohne Probleme zu ME zurück, Debugging-Fenster erschien, nun, alles ist wie immer

 

Erst wurden die Statistiken gekürzt, und jetzt haben sie sie ganz gestrichen?


 
Igor Makanu:

schrieb den folgenden Code:

Setze Haltepunkt auf String s = ""; - Rückkehr zu ME ohne Probleme, Debugging-Fenster erschienen, na ja, alles wie immer

Bei diesem Ansatz müssen wir nach jedem Operator nach einem Haltepunkt suchen. Das passt nicht.

 
TheXpert:

Erst wurden die Statistiken gekürzt, und jetzt haben sie sie ganz gestrichen?

es klappt

 
fxsaber:

Bei diesem Ansatz müssen Sie nach jedem Operator einen Stopp-Check setzen. Nicht geeignet.

Sie brauchen es nicht nach jeder Anweisung zu tun, verwenden Sie die halbe Teilungsprüfung - am Anfang, am Ende und in der Mitte des Codes, dann, wenn Sie die richtige Hälfte finden, wiederholen Sie es und teilen Sie den Code in zwei Teile, ich denke, es ist schnell

 
Igor Makanu:

nach jeder Anweisung ist nicht notwendig, setzen Sie eine halbe Division Check - am Anfang, am Ende und in der Mitte des Codes, dann finden die richtige Hälfte des Codes wiederholen Sie die Aufteilung des Codes in zwei Teile, meiner Meinung nach ist es schnell

Es ist ein großes Programm. Es dauert jedes Mal etwa 30 Sekunden, bis das Auflegen reproduziert werden kann.

 
fxsaber:

Ich lasse den EA im Debug-Modus laufen. Ich muss einen Haltepunkt genau in dem Moment setzen, in dem ich den EA manuell entstarte. Wie kann ich das tun?


Das Problem ist, dass sich das Terminal permanent aufhängt, wenn ich den EA entferne. Ich muss verstehen, wo das passiert.

Ist das Problem vollständig behoben oder dauert es eine Weile, bis der EA entladen ist? Wenn letzteres der Fall ist, suchen Sie nach einer Schleife.