Fehler, Irrtümer, Fragen - Seite 2451
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
Wenn es sich um Devisen handelt, verändern die Ticks den Preis (normalerweise) nicht sehr. Aber auf anderen Märkten kann ein Auftrag mit einem ticky Ansatz ernsthaft entgleiten. Ich bin immer noch dafür, es zwischen den Zecken zu versuchen - ich sehe keinen Schaden, der potenzielle Nutzen ist da.
Wir müssen versuchen...
Ergebnis:
Hysterese in Aktion... durch ein Beispiel, wie ein impliziter Kopieroperator in Strukturen funktioniert.
Wahrscheinlich musste man, um so etwas zu entdecken, auf der Suche nach einem Fehler im eigenen Code einen inneren Zustand der Dummheit erreichen, nach dem Motto "hier kann nichts funktionieren, aber ich werde es trotzdem überprüfen".
Ich schätze, um so etwas zu entdecken, mussten Sie auf der Suche nach einem Fehler in Ihrem Code einen inneren Zustand bzw. eine Dummheit erreichen, die besagt: "Hier kann nichts schief gehen, aber ich prüfe es trotzdem".
Der Code analysierte den Byte-Stream für ein bestimmtes Protokoll.
Ausgepackte und ausgepackte Daten (Daten für die nächste Verkapselungsebene) stimmten nicht überein.
Der Code analysierte den Byte-Stream für ein bestimmtes Protokoll.
Ausgepackte und ausgepackte Daten (Daten für die nächste Verkapselungsebene) stimmten nicht überein.
Hysterese in Aktion... Ein Beispiel dafür, wie ein impliziter Kopieroperator in Strukturen funktioniert.
Wie lautet die Frage?
In MQL, ein bedingter Eintrag
// a = b;
ist gleich
ArrayCopy( a, b );
Ergebnis:
ArrayPrint( a ); }
2 2 3
Wie lautet die Frage?
Meiner Meinung nach sollte der Zuweisungs-Kopier-Operator nicht nur die Array-Elemente selbst, sondern auch deren Anzahl kopieren, so dass die Menge des reservierten Speichers gültig bleibt.
Und jetzt ist es praktisch das Folgende:
Quellcode:
Der Kopieroperator sollte nicht nur die Elemente des Arrays selbst, sondern auch deren Anzahl kopieren, wobei der reservierte Speicherplatz erhalten bleibt.
Warum dann
in (1) der Fehler und in (2) ist alles in Ordnung!? Was ist der Unterschied?
Der Unterschied besteht darin, dass Arrays nicht nach der Regel a = b kopiert werden, sondern nach der Regel ArrayCopy( a, b )
Nicht nach der Regel a = b, denn es gibt sie nicht, und wenn es sie gäbe, gäbe es den Fehler (1) nicht.
Die Zählung jedes Ticks ist ressourcenintensiv, insbesondere beim Strategietester. Wäre es nicht korrekter, nur das Ereignis "Handel" neu zu berechnen, d. h. wenn sich etwas in der Liste der offenen Positionen tatsächlich ändert? Mit OnTradeTransaction() ist es einfacher, Benutzereingriffe in den EA zu kontrollieren. (Es gibt einige Präzedenzfälle :)
In diesem Roboter habe ich die Möglichkeit getestet, das Raster nach dem Schema: Verlust + Gewinn > X zu schließen, und dann beide zu schließen (normalerweise auf verschiedenen Symbolen). Aber es kommt zu einem Fehler, denn obwohl sie abgeschlossen sind, ist sich der Prüfer dessen nicht bewusst und fährt mit der nächsten Iteration fort, wobei er fälschlicherweise die vorhandenen mit den bereits abgeschlossenen "paart". Daher musste ich nach jedem Abschluss eine Neuberechnung vornehmen.
Ich habe Neuberechnung mit Zählerrückstellung und auf alle offenen zuerst, nicht +1 / -1
Ich stimme zu, dass es riskant war , zunächst OnTradeTransaction() zu verwenden. Tatsächlich werde ich mich wahrscheinlich weigern, es in Fällen zu verwenden, in denen meine Anfragen nicht asynchron sind - sie verursachen nur Probleme.
Es ist überhaupt nicht riskant. Die einzige Frage ist die Organisation der Abfolge von Aktionen und Ereignissen. Der Rat von Fool ist richtig: Schließen Sie das Paar und lassen Sie die Schleife bis zum nächsten Tick. Beim nächsten Tick sind die Preise nicht unbedingt schlechter als sie sind. Vielleicht ist es besser, sie etwas später zu schließen, aber es wird keine Verwirrung darüber geben, was mit was geschlossen wurde.
Die zweite Variante: Ordnen Sie die Schleife nicht nach PositionsTotal, sondern nach dem zuvor erstellten Array. Und wenn ein Paar geschlossen wird, sollten diese Tickets aus dem Array entfernt werden. Dadurch können die geschlossenen Positionen nicht wieder geschlossen werden. Im Allgemeinen ein Höhenflug und eine Logik des Handelns.