Fehler, Irrtümer, Fragen - Seite 2023

 
Kirill Belousov:

meinen Sie, dass die Funktion auf Überschreibung durch den Typ des eingehenden Arguments geprüft werden sollte, ohne const bei der Deklaration zu berücksichtigen?

oder sollte die const-Variante zur ArrayMinimum-Systemfunktionsvorlage hinzugefügt werden?

https://www.mql5.com/ru/docs/array/arrayminimum

int  ArrayMinimum( 
   const void&   array[],             // массив для поиска 
   int           start=0,             // с какого индекса начинаем поиск 
   int           count=WHOLE_ARRAY    // количество проверяемых 
   );
Und die Warnung ist unzureichend.
Документация по MQL5: Операции с массивами / ArrayMinimum
Документация по MQL5: Операции с массивами / ArrayMinimum
  • www.mql5.com
//| Закрашивание основной части свечи                                | //
 
fxsaber:

https://www.mql5.com/ru/docs/array/arrayminimum

Und die Warnung ist unzureichend.
Die Warnung ist klar, von wo aus - blundered und erlaubt einen Text-Array in Operationen für numerische Werte bestimmt
 
Kirill Belousov:
Es ist klar, warum - wir haben geblinzelt und ein Textfeld vor Operationen zugelassen, die für numerische Werte gedacht sind

Ich habe nicht geblinzelt, da ich ein entsprechendes ArrayMinimum geschrieben habe. Aber es ist erlaubt und wird nicht aus eigenem Antrieb genannt. Das ist der Grund für dieses Argument.

void OnStart()
{
  string Str[];
  
  int i = ArrayMinimum(Str); // Warning: possible loss of data due to type conversion
  ArraySort(Str); // Warning: expression has no effect
  ArrayFill(Str, 0, 1, 0); // Error: 'Str' - type mismatch
}

Wo es rote gibt, muss es auch gelbe Compiler-Meldungen geben. Red schafft es trotzdem, anders zu sein.

 
fxsaber:

Ich habe nicht geblinzelt, da ich ein entsprechendes ArrayMinimum geschrieben habe. Aber es ist erlaubt und wird nicht aus eigenem Antrieb aufgerufen. Das ist der Grund für dieses Argument.

Wo es rote gibt, muss es auch gelbe Compiler-Meldungen geben. Red schafft es trotzdem, anders zu sein.

"verpfuscht" ist nicht Ihr Ding :)

Ich sehe es so: Die Entwickler haben Funktionsnamen für Operationen mit beliebigen Arrays mit Systemfunktionen festgelegt, aber sie haben bisher nur die Arbeit mit numerischen Arrays implementiert.

Aber sie haben nicht in allen Fällen "stubs" gesetzt, und es stellt sich heraus, dass der Benutzer Nachrichten "off-topic" erhält.

Dies sollte korrigiert werden - ich stimme zu 100 % zu.

 

Hat jemand Erfahrung mit dieser Situation (MT4):

EA funktioniert auf vielen Charts (installiert auf Basis einer Vorlage). Ich habe alles in einem Profil gespeichert. Links, um auf VPS rund um die Uhr zu laufen.

Plötzlich wird bei einigen Diagrammen beim Öffnen des Einstellungsfensters festgestellt, dass alle String-Variablen leere Werte enthalten. (einschließlich gefälschter - nur zur Angabe von Einstellungsabschnitten wie "---TOUT FILTER---")

Es gab verschiedene Terminals und EAs von verschiedenen Autoren von Market.

Ich selbst habe die Terminals nicht neu gestartet. Ich habe die Einstellungen nicht absichtlich geändert.

 


Hallo, können Sie mir bitte mit meinem EA helfen? Ich beginne zu testen und erhalte die Fehlermeldung 'array out of range in EA.mq4' (149,49). Ich denke, der Fehler liegt in dieser Zeile for (int li_8 = li_4; li_8 > 0; li_8--) aia_0[li_8] = aia_0[li_8 - 1]; Wenn dieser Teil des Codes in EA entfernt wird, läuft der Tester, aber EA eröffnet keinen Handel. Bitte teilen Sie mir mit, wie ich diesen Code ändern kann, damit er funktioniert.

 
Ivan Lysenkov:


Hallo, können Sie mir bitte mit meinem EA helfen? Ich beginne zu testen und erhalte die Fehlermeldung 'array out of range in EA.mq4' (149,49). Ich denke, der Fehler liegt in dieser Zeile for (int li_8 = li_4; li_8 > 0; li_8--) aia_0[li_8] = aia_0[li_8 - 1]; Wenn dieser Teil des Codes in EA entfernt wird, läuft der Tester, aber EA öffnet den Handel nicht. Bitte teilen Sie mir mit, wie ich diesen Code ändern kann, damit er funktioniert.

Arbeiten Sie mit der Dekompilierung? Und Sie? Es besteht ein striktes Verbot der Arbeit an und der Diskussion von gestohlenem Code auf dieser Ressource.

 
Kirill Belousov:

Hat jemand Erfahrung mit dieser Situation (MT4):

EA funktioniert auf vielen Charts (installiert auf Basis einer Vorlage). Ich habe alles in einem Profil gespeichert. Links, um auf VPS rund um die Uhr zu laufen.

Plötzlich wird bei einigen Diagrammen beim Öffnen des Einstellungsfensters festgestellt, dass alle String-Variablen leere Werte enthalten. (einschließlich gefälschter - nur zur Angabe von Einstellungsabschnitten wie "---TOUT FILTER---")

Es gab verschiedene Terminals und EAs von verschiedenen Autoren von Market.

Ich selbst habe die Terminals nicht neu gestartet. Ich habe die Einstellungen nicht absichtlich geändert.

Ich hätte die Vorlage speichern sollen, als ich auf sie stieß.

 
fxsaber:

Sie hätten die Vorlage behalten sollen, als sie damit konfrontiert wurden.

Das verstehe ich nicht.

Ich habe den EA einfach auf den Chart gelegt. Ich nehme die erforderlichen Einstellungen vor und speichere sie als Vorlage.

Was ich damit meine, ist, dass alle Karten identische Einstellungen hatten. Einige von ihnen haben die String-Variablen in den Einstellungen später auf Null gesetzt.

Ich habe es zufällig entdeckt - die Kommentare zu den Geschäften werden nicht mehr angezeigt


Ich habe mich bereits im April bei SD beworben. Aber sie waren nicht in der Lage, die Situation zu reproduzieren, wie ich heute auf meine Anfrage hin erfahren habe.

Ich habe inzwischen kein Vertrauen mehr in die Zuverlässigkeit von String-Parametern in extern.

Unmittelbar nach der Anwendung der Vorlage können Sie Folgendes tun:


Nachdem die Störung ausgelöst wurde, geht es folgendermaßen weiter


Hier ist ein Vergleich in Programm von Charts mit glitched EA und der Chart ohne Glitch (beide wurden von der gleichen Vorlage geöffnet)


 
Kirill Belousov:

Das verstehe ich nicht.

Es war interessant, die gespeicherte Vorlage nach der Störung zu sehen. Ich glaube, Sie haben es auf dem letzten Screenshot gezeigt.

Schreiben Sie einen EA, der die Eingabeparameter aller laufenden EAs liest und signalisiert, wenn sich die Eingabeparameter geändert haben. Dann können Sie es nachverfolgen.