Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 608
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
Das erste ProblemLots/Prikup - Dplus muss normalisiert werden. Wenn die Variablen vom Typ Double sind, werden Sie sich wundern, wenn 4/2 nicht die erwartete 2, sondern 1,999999999999 ergibt - Sie haben sich wahrscheinlich noch nicht mit diesem Problem beschäftigt.
Wenn also((OrderMagicNumber() == Magic)&&(OrderLots() <= Lots/Prikup - Dplus)) falsch ist, und ich kann mit hoher Wahrscheinlichkeit sagen, dass es falsch ist, dann kommen Sie auch bei cnt_OO größer als 1 garantiert zu einem Block nach Etikett 1. Also funktioniert bei Ihnen alles ohne Fehler Das Problem liegt in der Datenverarbeitungslogik.
Das zweite Problem besteht darin, dass Sie garantiert nur den letzten Auftrag in der Liste verarbeiten, warum also eine for-Schleife verwenden?
Wenn Sie dies nur für den Prüfer tun und dann den letzten Auftrag aus der Liste auswählen, erhalten Sie wirklich den gewünschten Auftrag, aber nicht immer. Auf dem realen Markt, insbesondere wenn mehrere Expert Advisors laufen, erhalten Sie garantiert etwas anderes als Sie erwarten, und die Schleife wird garantiert nach dem ersten Durchlauf mit dem Break-Befehl abgebrochen.
Das erste ProblemLots/Prikup - Dplus muss normalisiert werden. Wenn die Variablen vom Typ Double sind, werden Sie sich wundern, wenn 4/2 nicht die erwartete 2, sondern 1,999999999999 ergibt - Sie haben sich wahrscheinlich noch nicht mit diesem Problem beschäftigt.
Wenn also((OrderMagicNumber() == Magic)&&(OrderLots() <= Lots/Prikup - Dplus)) falsch ist, und ich kann mit hoher Wahrscheinlichkeit sagen, dass es falsch ist, dann kommen Sie auch bei cnt_OO größer als 1 garantiert zu einem Block nach Etikett 1. Also funktioniert bei Ihnen alles ohne Fehler Das Problem liegt in der Datenverarbeitungslogik.
Das zweite Problem besteht darin, dass Sie garantiert nur den letzten Auftrag in der Liste verarbeiten, warum also eine for-Schleife verwenden?
Wenn Sie dies nur für den Prüfer tun und dann den letzten Auftrag aus der Liste auswählen, erhalten Sie wirklich den gewünschten Auftrag, aber nicht immer. Auf dem realen Markt, insbesondere wenn mehrere Expert Advisors laufen, erhalten Sie garantiert genau die falsche Reihenfolge und die Schleife bricht nach dem ersten Durchlauf ab.
Das erste ProblemLots/Prikup - Dplus muss normalisiert werden. Wenn die Variablen vom Typ Double sind, werden Sie sich wundern, wenn 4/2 nicht die erwartete 2, sondern 1,99999999999999 ergibt - vielleicht sind Sie mit diesem Problem noch nicht konfrontiert worden
Wenn also((OrderMagicNumber() == Magic)&&(OrderLots() <= Lots/Prikup - Dplus)) falsch ist, und ich kann mit hoher Wahrscheinlichkeit sagen, dass es falsch ist, dann kommen Sie auch bei cnt_OO größer als 1 garantiert zu einem Block nach Etikett 1. Also funktioniert bei Ihnen alles ohne Fehler Das Problem liegt in der Datenverarbeitungslogik.
Das zweite Problem besteht darin, dass Sie garantiert nur den letzten Auftrag in der Liste verarbeiten, warum also eine for-Schleife verwenden?
Wenn Sie dies nur für den Prüfer tun und dann den letzten Auftrag aus der Liste auswählen, erhalten Sie wirklich den gewünschten Auftrag, aber nicht immer. Auf dem realen Markt, insbesondere wenn mehrere Expert Advisors laufen, erhalten Sie garantiert genau die falsche Reihenfolge, und die Schleife bricht nach dem ersten Durchlauf mit dem Break-Befehl ab.
Was die Normalisierung betrifft - danke, ich hatte nicht bemerkt, dass sie fehlt. Mein Auge hat sich einfach in meinem Kopf verloren.
Zur for-Schleife: Es gibt verschiedene Aufträge im Archiv mit verschiedenen Magiern und von verschiedenen Paaren. Ich gehe sie von hinten nach vorne durch, bis ich das gefunden habe, was ich brauche. Dies geschieht, wenn der EA noch nicht in Betrieb ist und keine neuen Aufträge, die ich benötige, in der Liste erscheinen. Die Schleife wird nicht beim ersten Durchlauf unterbrochen, sondern erst, wenn die gewünschte Reihenfolge gefunden ist.
Wir müssen die Funktionen Onlinit und OnDeinit richtig verstehen. Ihre Notwendigkeit ist offensichtlich.
Bei dieser Implementierung funktioniert die Schleife nicht. Ich habe Ihren Code in verschiedenen Varianten immer in einem Durchgang ausgeführt.
Und jetzt sehe ich, wo du dich geirrt hast!
Ich habe alles so oft wie möglich kommentiert! Versuchen Sie es!
Bei dieser Implementierung funktioniert die Schleife nicht. Ich habe Ihren Code in verschiedenen Varianten immer in einem Durchgang ausgeführt.
Und jetzt ist klar, wo Sie einen Fehler gemacht haben!
Ich habe alles so oft wie möglich kommentiert! Versuchen Sie es!
Danke, ich habe es verstanden. Hier ist ein Workaround für den Fehler der fehlenden Normalisierung. Nach genauerer Prüfung des Wiederherstellungsalgorithmus erwies sich die Bedingung&&(OrderLots() <= Lots/Prikup - Dplus) als unnötig.
Ich danke Ihnen allen für Ihre guten Ratschläge
Hier ist das Ergebnis des Tests. In der Realität ist es ungefähr dasselbe, sogar besser. Seien Sie vorgewarnt - dies ist kein Martingal. Es ist noch schlimmer, als Sie denken :=). Abzug 1,3% Gewinn 507$
Wenn es funktioniert und es Ihnen nichts ausmacht, das Ergebnis mit anderen zu teilen - schreiben Sie eine Lösung für das Problem
Es hat nicht funktioniert (ich habe die php openssl-Bibliothek verwendet). Das Problem wurde auf eine andere Weise gelöst.
Hat nicht funktioniert (ich habe die php openssl-Bibliothek verwendet). Das Problem wurde auf eine andere Weise gelöst.
Sie haben also in MT verschlüsselt und in .php entschlüsselt? Welchen Weg haben Sie gewählt?
Sie haben also in MT verschlüsselt und in .php entschlüsselt? Welche Methode haben Sie verwendet?
Nein, ich sagte doch, es hat nicht funktioniert. Ich habe es aufgegeben. Für meine Aufgabe reichte ein Haschisch. Ich habe einen Hash gesendet und empfangen und einen weiteren Hash als Bestätigung zurückgeschickt.
Ich konnte sie also nicht in PHP entschlüsseln. Es wäre schön, wenn sich jemand ernsthaft mit dieser Frage befassen könnte. Vielleicht ein Entwickler oder so.
Nein, ich habe geschrieben, dass es nicht funktioniert hat. Ich habe es aufgegeben. Ein Haschisch war für meine Aufgabe ausreichend. Ich habe einen Hash gesendet und erhalten und einen weiteren Hash als Bestätigung zurück.
Ich konnte sie also nicht in PHP entschlüsseln. Es wäre schön, wenn sich jemand ernsthaft mit dieser Frage befassen könnte. Vielleicht ein Entwickler oder so.
Schreiben Sie Ihre eigene Verschlüsselungsfunktion in puch und portieren Sie sie nach mq. Auf diese Weise können sie es nicht entschlüsseln, und es funktioniert so oder so zu 100 %.
Wenn es funktioniert und es Ihnen nichts ausmacht, das Ergebnis zu teilen, posten Sie die Lösung
google "PKCS#7-Padding-Format"