Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 618
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Können Sie mir sagen, warum dies der Fall sein könnte? :
Fun_1() und Fun_2() sind ähnlich.
Können Sie mir bitte sagen, was die Ursache dafür sein könnte? :
Fun_1() und Fun_2() sind ähnlich.
akademisch - die Funktionen sind nicht rein und verändern den globalen Zustand.
kurz - beide Funktionen lesen und schreiben eine globale Variable oder Datei.
akademisch - die Funktionen sind nicht rein und verändern den globalen Zustand.
kurz gesagt - beide Funktionen lesen und schreiben eine globale Variable oder Datei.
Ja, jeder von ihnen schreibt eine Datei. Und?
und arbeiten nicht zusammen :-)
PS: Es ist unmöglich, die Quelle der unterirdischen Klopfzeichen ohne Quellen genauer zu bestimmen. Irgendwo liegt ein Fehler vor - korrigieren Sie ihn
Platz sparen und Wahrnehmung verbessern - in einer Funktion. Es funktioniert immer noch nicht.
für die Zukunft - wenn Sie das Ergebnis einer Funktion benötigen (zumindest die funktionierende/nicht funktionierende), machen Sie sie nicht ungültig. Bei oberflächlicher Betrachtung ist es schwer festzustellen, dass es ein Kriterium für "ausgelöst" gibt - es ist nichtig, egal wie man wirft, alles ist gut.
über die Rechte des Debuggers:
Sie haben eine Reihe von globalen Variablen Count_XXX, Range_XXX, die Sie konvertieren (plus dSSxx[] Arrays), verwenden Sie zu entscheiden, ob zu protokollieren oder nicht und dann übergeben Sie irgendwo, entweder durch Verweis oder durch Wert...
Offensichtlich ist etwas mit der Neuberechnung nicht in Ordnung - Count_dSS erhält 0, wenn Sie es erneut aufrufen. Drucken kann helfen, es herauszufinden, oder Haltepunkte und beobachten.
für die Zukunft - wenn Sie das Ergebnis einer Funktion benötigen (ob sie nun funktioniert hat oder nicht), machen Sie sie nicht ungültig. Auf den ersten Blick ist es schwer zu bestimmen, was das Kriterium für "ausgelöst" ist - es ist nichtig, egal wie man es wirft, alles ist gut.
über die Rechte des Debuggers:
Sie haben eine Reihe von globalen Variablen Count_XXX, Range_XXX, die Sie konvertieren (plus Arrays dSSxx[]), basierend auf ihnen Sie entscheiden, ob zu protokollieren oder nicht und dann irgendwo entweder durch Verweis oder durch Wert übergeben...
Offensichtlich ist etwas mit der Neuberechnung nicht in Ordnung - Count_dSS erhält 0, wenn Sie es erneut aufrufen. Drucken kann helfen, es herauszufinden, oder Haltepunkte und beobachten.
Eine vereinfachte Version:
// Es gibt zwei dynamische Arrays A[][2] und B[][2]
// Wir suchen nach Übereinstimmungen mit dem ersten Dimensionsindex "0".
// Array A Array B
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Wir wollen bekommen:
// Array dSSd[][4] Array dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
Welchen Rückruf haben Sie im Sinn?
Eine vereinfachte Version:
Ich beziehe mich auf eine Funktion, die der ersten ähnlich ist (die im Detail unterschiedlich sein kann). Sie haben die gleiche Frage gestellt - warum funktionieren diese Funktionen getrennt, aber eine nach der anderen (unabhängig von der Reihenfolge) nicht. Genauer gesagt, nur die erste Funktion funktioniert und zeichnet etwas auf.
nun - den globalen Zustand ficken, d.h. der erste Aufruf der ersten dieser Funktionen hat entweder die globalen Variablen oder den Inhalt der Arrays verändert. Warum? Sie sollten es besser wissen, warum sollte es sich beim Schreiben in eine Datei ändern :-) Ehrlich - Durchbruch
Mir zum Beispiel fällt es schwer und ich zögere. Besorgen Sie sich einen Debugger oder stellen Sie schon jetzt Drucker an allen verdächtigen Stellen auf. Sie verstehen die Logik der Namensgebung und haben eine Vorstellung davon, wie sie funktionieren sollte (was nicht mit der Realität übereinstimmt :-) )
PS/ aus der Erklärung, was in der Eingabe und was draußen ist, sehe ich, dass anstelle von zwei Arrays dSSx[][4] genug ist und ein dSS[][3] :-)
Ich beziehe mich auf eine Funktion, die der ersten ähnlich ist (die im Detail unterschiedlich sein kann). Sie haben die gleiche Frage gestellt - warum funktionieren diese Funktionen getrennt, aber eine nach der anderen (unabhängig von der Reihenfolge) nicht. Genauer gesagt, nur die erste Funktion funktioniert und zeichnet etwas auf.
Also - der globale Zustand ist gefickt, d.h. der erste Aufruf der ersten dieser Funktionen hat entweder globale Variablen oder Inhalte von Arrays verändert. Vielleicht wissen Sie besser, warum sie es beim Schreiben in die Datei ändern sollten :-). Ehrlich - Durchbruch
Mir zum Beispiel fällt es schwer und ich zögere. Besorgen Sie sich einen Debugger oder stellen Sie schon jetzt Drucker an allen verdächtigen Stellen auf. Sie verstehen die Logik der Namensgebung und haben eine Vorstellung davon, wie sie funktionieren sollte (was nicht mit der Realität übereinstimmt :-) )
PS/ aus der Erklärung, was in der Eingabe und was draußen ist, sehe ich, dass anstelle von zwei Arrays dSSx[][4] genug ist und ein dSS[][3] :-)