Fehler, Irrtümer, Fragen - Seite 2673

 
Sergey Dzyublik:
Fehler MT5 (Build 2323),
Innerhalb einer Template-Funktion verhält sich ein übergebener Zeiger innerhalb einer expliziten Typkonvertierung wie eine Klasse und verursacht dementsprechend einen Kompilierzeitfehler:

Danke für den Beitrag, korrigiert

 
Aliaksandr Hryshyn:

Der Unterschied besteht darin, dass die Klammern vorhanden sind.

   ulong n_yes=3*1000;; ok  
   ulong n_no=(3*1000;); ne ok


 
Aliaksandr Hryshyn:

Der Unterschied besteht darin, dass die Klammern vorhanden sind.

Das ist Ihre Sache, aber Sie hätten sich vor dem Schreiben informieren können.

 
MT5-Bug (Build 2361) ein weiteres Problem mit den Prioritäten von überladenen Template-Funktionsaufrufen im Vergleich zum C++-Verhalten.
In MT5 Kompilierungsfehler "ambiguous call to overloaded function", in C++ ist es OK.
C++ online(https://onlinegdb.com/Sy8cqdFr8);

template<typename _Tp>
struct It_wrapper{
   _Tp p;
};

template<typename _Tp>
struct It_g : public It_wrapper<_Tp>{};


template<typename _It, typename _Tp>
int __test_print(const It_wrapper<_It> &it, int n, const _Tp &value){
   Print(it.p);
   return 0;
};

template<typename _It> 
int test_print(const It_wrapper<_It> &it, int n, const int value){
   return __test_print(it, n, value);
}    

template<typename _It, typename _ValueType>                                                                                                    
int test_print(const It_wrapper<_It> &it, int n, const _ValueType &value){                                                              
   return __test_print(it, n, value);                                                                                                     
}   
  
   
void OnStart(){
   It_g<int> it;
   It_g<string> it_s;
   
   it.p = 4;
   it_s.p = "test";
   
   const int n = 10;
   test_print(it, 5, n);          // Compile Error: 'test_print' - ambiguous call to overloaded function
   test_print(it_s, 5, n);        // Compile Error: 'test_print' - ambiguous call to overloaded function
};


int main(){
   OnStart();
   return 1;
};
 

Der Texteditor auf dem Marktplatz ist kaputt, wenn man versucht, ihn auf den vollen Bildschirm zu erweitern, bleibt nur der Speichern-Button hängen ....

Außerdem ist es möglich, ein Bild mit großem Gewicht hochzuladen. Das Bild wird zwar hochgeladen, aber in der Beschreibung nicht korrekt angezeigt.
 
Bug 1 Die Kommission position.Comision() ist im Test immer gleich 0 (im Tester selbst wird die Kommission in der Positionshistorie angezeigt), dies wirkt sich auf die Optimierung von Parametern für Expert Advisors aus, die Berechnungen mit der Kommission durchführen.

Fehler 2 simbol.Spred() liefert aktuelle Werte erst beim dritten Zugriff seit dem Programmstart

Fehler 3, wenn ich einen Testagenten verliere (ich arbeite nur im lokalen Netzwerk), kann er ihn stundenlang nicht vergessen und versucht, ihn zu finden, selbst wenn der Agent bereits im lokalen Netzwerk aufgetaucht ist - ich muss die Agenten-IP ändern, und erst wenn der Tester den Agenten innerhalb einer Stunde vergisst, gebe ich ihm die Agenten-IP zurück und der Tester arbeitet weiter. Das Ergebnis ist eine Unterbrechung der Prüfung für eine Zeitspanne von 30 Minuten bis zu einigen Stunden - wie es der Zufall so will.

Fehler 4 in der Beschreibung des genetischen Algorithmus, ist es geschrieben, wenn Sie die Prüfung stoppen oder wenn Sie die Prüfung manuell stoppen, wenn die Prüfparameter nicht geändert werden die Optimierung Cache gespeichert wird und wenn Sie die Prüfung wieder aufnehmen, die Optimierung von dem Punkt des Anhaltens fortgesetzt - kein Blödsinn in der Realität - Optimierung beginnt wieder von vorne, und die Optimierungsergebnisse werden in die Datei Ergebnisse der Optimierung der gestoppten Optimierung hinzugefügt. Infolgedessen gibt es nur mehr Optimierungsergebnisse in der Optimierungsergebnisdatei - kein praktischer Nutzen bei der Suche nach optimalen Parametern, die Gesamtoptimierungszeit steigt.

Fehler 5 im mql5-Compiler scheint mir, dass er einfach nicht optimiert ist - die Programme werden einfach langsamer, was die Geschwindigkeit der Parameteroptimierung beeinträchtigt. Ein Programm mit 20 Zeilen kann nicht so langsam sein.
 
Vladimir Pastushak:

Market hat den Texteditor kaputt gemacht, wenn ich versuche, ihn auf Vollbild zu erweitern, bleibt nur die Schaltfläche "Speichern" hängen ....

Außerdem ist es möglich, ein Bild mit großem Gewicht hochzuladen. Das Bild wird zwar hochgeladen, aber in der Beschreibung nicht korrekt angezeigt.

Hallo!

Vielen Dank für den Fehlerbericht!

Könnten Sie bitte das Problem mit dem Bild näher erläutern?

 

Ich bin auf ein merkwürdiges Problem gestoßen, bei einem Tick wird ein Auftrag geöffnet und der andere geschlossen, im Tester funktioniert alles einwandfrei, aber ich habe es auf das echte Konto übertragen und an einer Stelle begann das Tamburin, die Position wird geöffnet, aber die andere wird nicht geschlossen. Ich habe in diesem Zusammenhang eine Frage: Ist es möglich, zwei Aufträge gleichzeitig zu senden (Eröffnung und Schließung), wenn man auf dem realen Konto handelt?

Razgon_y=OrderSend(Symbol(),OP_BUY,Razgon_Lot,Ask,100,0,0,Razgon_Comment,Razgon_Magic,0,clrBlue); 
       if(Razgon_y<0) 
       { 
        Print("OrderSend завершилась с ошибкой #",GetLastError()); 
       } 
       else ( Print("Функция OrderSend успешно выполнена") );
       for(int Razgon_index=0; Razgon_index<=OrdersTotal(); Razgon_index++)
       {
        if(OrderSelect(Razgon_index,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderMagicNumber()==Razgon_Magic && OrderType()==OP_SELL && OrderProfit()>0)
         {
          Razgon_OC=OrderClose(OrderTicket(),OrderLots(),Ask,100,clrGreen);
          if(Razgon_OC==false) 
          { 
           Print("OrderClose завершилась с ошибкой #",GetLastError()); 
          } 
           else ( Print("Функция OrderClose успешно выполнена") );
          Razgon_AccountEquity=AccountEquity();
         }
        }
       }
      }
 
Maksim Slovakov:

Ich bin auf ein merkwürdiges Problem gestoßen, auf einen Tick öffnet er eine Order und schließt die andere zu einem bestimmten Zeitpunkt. Im Testgerät funktioniert alles einwandfrei, aber ich habe es auf das echte Konto übertragen und an einer Stelle begann das Tamburin, die Position öffnet sich, aber die andere wird nicht geschlossen. In diesem Zusammenhang habe ich eine Frage: Ist es möglich, zwei Aufträge gleichzeitig zu senden (Eröffnungs- und Schließungsaufträge), wenn man auf dem echten Konto handelt?

Ihr Zyklus ist für das Schließen von Positionen nicht korrekt. Führen Sie den umgekehrten Zyklus durch.

 

Bei der Arbeit mit dem Debugger an echten Daten (Build 2361) wurde ein kritischer Fehler im Terminal festgestellt:

2020.03.16 16:30:41.730 (RTS Splice,M1)    crash -->  00000115A15300A5 488D0B            lea        rcx, [rbx]

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300A8 E8850B0000        call       0x115a1530c32

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300AD 90                nop        

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300AE 89842488000000    mov        [rsp+0x88], eax

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B5 F4                hlt        

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B6 842488            test       [rax+rcx*4], ah

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B9 0000              add        [rax], al

2020.03.16 16:30:41.730 (RTS Splice,M1)

2020.03.16 16:30:41.730 (RTS Splice,M1) 00: 0x00000115A15300A5

2020.03.16 16:30:41.730 (RTS Splice,M1) 01: 0x00000115A7DFFD64

2020.03.16 16:30:41.730 (RTS Splice,M1) 02: 0x00000001776FA270

2020.03.16 16:30:41.730 (RTS Splice,M1) 03: 0x0000000000000001

2020.03.16 16:30:41.730 (RTS Splice,M1) 04: 0x00000001776FA23C

2020.03.16 16:30:41.730 (RTS Splice,M1)