Fehler, Irrtümer, Fragen - Seite 2462

 
astronom55:
Hallo. Die mobile Version des MT5 verbindet sich nicht mit meinem Alpari-Broker. Was ist das Problem? Wird dieses Problem irgendwann behoben werden?

Hier.

 
Sergey Dzyublik:

Dasselbe wird inStringToShortArray geschrieben:

Dies hindert ihn jedoch nicht daran, NULL-Zeichen in Strings angemessen zu behandeln.

ShortArrayToString( array, start, count ) funktioniertnicht richtig: Terminal 0 ist keine 0, sondern nur die am Ende. In diesem Fall kann das Ende oder Nicht-Ende anhand der ArraySize( array ) bestimmt werden. Zumindest wenn count explizit gesetzt wird, darf die resultierende Zeichenkette nicht kürzer sein als min( count, ArraySize( array ))

Und StringToShortArray( text, array, start, count ) funktioniert richtig: die Klemme 0 ist die am Ende. Und das Ende wird anhand von StringLen( text ) bestimmt

 
Artyom Trishkin:

Hier.

  • Sie haben keinspezifisches Material zur Verfügung gestellt, mit dem Ihr Problem gelöst werden kann. -Alle Android-Benutzer haben dieses Problem
  • Ihre Frage ist so weit gefasst, dass sie ohne Klärung nicht eindeutig beantwortet werden kann - Fragen Sie, was Sie nicht verstehen.
  • Sie sind einfach nur ein fauler Mensch, derdie Dokumentation nicht liest. Die meisten Ihrer Probleme rühren einfach von der Unkenntnis der grundlegenden Konzepte der MQL-Sprache her - ich denke, das steht nicht in der Dokumentation.
  • Sie sind von Google verbannt oder wissen einfach nicht, wie mandie Suche benutzt - die Suche war ergebnislos.

1


Dies ist nur ein Teil des Feedbacks auf die mobile Version von MT5.

2

Dies ist das Alpari-Forum

Wissen Sie denn gar nichts darüber?

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
MetaQuotes Language 4 (MQL4) - встроенный язык программирования торговых стратегий, разработанный компанией MetaQuotes Software Corp. на основе своего многолетнего опыта в создании торгово-информационных платформ. Этот язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и...
 

beim Ausführen des Skripts


#include <Files\FileTxt.mqh>
void OnStart(){

  CFileTxt file;
  int handle = file.Open( "test.bat", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //
  if( handle == INVALID_HANDLE ){
    int error = GetLastError();
    Print("Ошибка создания файла, код ошибки ",  error );
    return;
  }
}


Fehler





Was ist der Grund dafür?


Wenn Sie den Dateinamen ändern


int handle = file.Open( "test", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //

kein Fehler

 
Aleksey Sergan:

beim Ausführen des Skripts

Fehler

Was ist der Grund dafür?

Wenn Sie den Dateinamen ändern

kein Fehler

Der Dateiname ist das Problem.
Verbotener Betrieb von "ausführbaren" Dateien (exe, msi, bat, ...).

 
Sergey Dzyublik:

Der Dateiname ist das Problem.
Die Erstellung von "ausführbaren" Dateien (exe, msi, bat, ...) ist untersagt.

Ja, das stimmt. Ich konnte in der Hilfe nichts darüber finden.

 

Es mag irrelevant sein, aber genau genommen steht in der Fehlermeldung bei der Kompilierung

void A::operator=(const A&) hier (wo der Pfeil ist) ist unnötig (zumal es standardmäßig auf die gleiche Weise erzeugt wird)

 
Dies ist das 4. Mal an einem Tag, dass ich ein Problem mit 100% CPU-Aufhängungen von ME (Build 2037) habe.

Anfangs erscheint eine 100%ige Kernlast, aber ME funktioniert einwandfrei - Sie können sogar Code-Debugging in MT durchführen.
Wenn Sie jedoch versuchen, zu einer anderen Registerkarte mit Quellcode zu wechseln, bleibt ME komplett hängen (Sie müssen den Prozess beenden), und das neue Registerkartenfenster wird immer noch nicht geöffnet (es bleibt im halb geöffneten Zustand hängen).
Wenn ich nicht zu einer neuen Registerkarte wechsle, sondern nur ME schließe, wird der Prozess nicht geschlossen, sondern wird zu einem Kindprozess von MT und lädt weiterhin 100% des Kernels.

Das Problem tritt auf einer einfachen Seite auf, gerade während der Code-Entwicklung (kleines Projekt, 8 Dateien <3K Zeilen insgesamt), ME Code Intellisense stürzt ab, vermutlich.
 
Hurra, es ist uns gelungen, den Code zu finden, der den ME-Analysator "abstürzen" lässt.
ME stürzt beim Start ab. Es ist nicht möglich, das ME auszuführen, ohne den Code vorher in einem anderen Editor zu bearbeiten.

Falls erforderlich, wird der Quellcode den Entwicklern innerhalb von 5-7 Tagen zur Verfügung gestellt.
Das Problem lag in der Schnur:
if(
Irgendetwas muss mit der Zählung der nicht geschlossenen Klammern falsch sein.
 
Wieder hat eine Stunde der Fehlersuche im Projektcode zu den "Besonderheiten" von MT5 (Build 2049) geführt.

Im Terminal kann ein Teil der Protokolle des Expert Advisors einfach nicht angezeigt werden, ohne dass der Benutzer darüber informiert wird.
Die Protokolle befinden sich in der Protokolldatei - dort ist alles in Ordnung.

#define  PRINT(x) Print(#x, ":", string(x))

void OnStart(){  
   string test_name;
   string test_result;  
   
   test_name = "394_TEST_____";
   for(int i = 0; i < 394; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
   
   
   test_name = "395_TEST_____";
   for(int i = 0; i < 395; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);

   
   test_name = "396_TEST_____";
   for(int i = 0; i < 396; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
}

Irgendwie zeigt die Warteschlange einen Datensatz mit der Nummer 395 an, alle Datensätze vor und nach dieser Nummer werden im МТ-Protokoll angezeigt.
Daher schlägt der Test #395 immer fehl.