Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 155
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 eine der schwebenden Orders ausgelöst wird, platziere ich eine weitere schwebende Order in die entgegengesetzte Richtung und verdopple das Volumen, z. B. wenn ich Buy platziere, dann platziere ich Sellstop 25 Pips niedriger als Buy, und wenn ich Sell platziere, dann platziere ich Buystop 25 Pips höher. Wenn einer der ausstehenden Aufträge ausgelöst wird, platzieren wir einen weiteren ausstehenden Auftrag in der entgegengesetzten Richtung des ausgelösten Auftrags zum Preis des ersten offenen Auftrags, und wenn dieser ebenfalls ausgelöst wird, platzieren wir erneut einen ausstehenden Auftrag in der entgegengesetzten Richtung des ausgelösten Auftrags innerhalb von 25 Punkten, usw. So sollten alle Kaufaufträge zu einem Preis und alle Verkaufsaufträge ebenfalls zu einem Preis erfolgen. Wenn jemand versteht, was ich hier geschrieben habe, bitte helfen Sie mit dem Code))
Kommt dies von einem Indikator oder von einem EA? Es gibt einen Unterschied. Im Allgemeinen müssen Sie, um das Zeichnen des Pfeils zu vermeiden, den vorhergehenden angrenzenden Balken im Indikator überprüfen. Wenn dieser einen Wert ungleich Null oder nicht leer hat, bedeutet dies, dass der Pfeil auf dem angrenzenden Balken bereits existiert und es nicht notwendig ist, den Wert in den aktuellen Balkenpuffer einzugeben. Wenn bei einem EA der vorangegangene benachbarte Balken bereits ein kreuzendes Faktum in derselben Richtung wie der aktuelle Balken enthält und der Pfeil dieses Faktum bereits markiert, kann das kreuzende Faktum auf dem aktuellen Balken nicht registriert werden (falls es existiert) und der Pfeil muss auch nicht angezeigt werden.
Ich kann Ihnen nichts weiter über Ihren Code sagen. Wenn Telepathen in der Nähe sind, werden sie wahrscheinlich in der Lage sein, deinen Code besser zu verstehen ;)
Dies geht aus dem Indikator hervor. Schnittpunkt von 2 Zetteln, gibt Richtung an. Ich verstehe nicht ganz, die Richtung wird nur beim Überqueren und nicht bei jedem Takt angegeben. Von hier aus ist es unmöglich, nach dem vorherigen Balken zu urteilen.... Sagen Sie mal, wir bauen doch ein Array, oder? Wie kann man die vorherige Zelle überprüfen? Zwei Puffer ein CrossUp[i]=Low[i] - Range*0.75;, ein anderer sagen Cr[i]=Low[i] + Range*0.75; (will nur nicht wieder in Ordner und Code kommen)
Wenn eine der schwebenden Orders ausgelöst wird, platziere ich eine weitere schwebende Order in die entgegengesetzte Richtung und verdopple das Volumen, z. B. wenn ich Buy platziere, dann platziere ich Sellstop 25 Pips niedriger als Buy, und wenn ich Sell platziere, dann platziere ich Buystop 25 Pips höher. Wenn einer der schwebenden Aufträge ausgelöst wird, platzieren wir einen weiteren schwebenden Auftrag in der entgegengesetzten Richtung des ausgelösten Auftrags zum Preis des ersten offenen Auftrags, und wenn dieser ebenfalls ausgelöst wird, platzieren wir erneut einen schwebenden Auftrag in der entgegengesetzten Richtung des ausgelösten Auftrags innerhalb von 25 Punkten usw. So sollten alle Kaufaufträge zu einem Preis und alle Verkaufsaufträge ebenfalls zu einem Preis erfolgen. Wenn jemand versteht, was ich hier geschrieben habe, bitte helfen Sie mir mit dem Code))
Du hast eine Menge Unsinn geschrieben... Zumindest dies:
Sind Sie sicher, dass die Reihenfolge richtig gewählt ist? Sind Sie sicher, dass dies der richtige Preis ist? Sind Sie sicher, dass die Bestellung ein Ticket == 1 hat? Bei der Auswahl nach Ticket ist der Pool irrelevant, so dass MODE_TRADES hier überflüssig ist. Nach erfolgreicher Auswahl per Ticket sollten wir auch die Abschlusszeit der ausgewählten Bestellung überprüfen. Wenn sie == 0 ist, befindet sich der Auftrag im Markt und wurde aus der Liste der Marktaufträge ausgewählt. Wenn die Schlusszeit > 0 ist, wurde der Auftrag entweder geschlossen oder ist ein gelöschter schwebender Auftrag und wurde aus der Liste der geschlossenen Aufträge ausgewählt.
Ich möchte nicht weiter in den Code schauen. Vielleicht sollten Sie sich zunächst mit den Grundlagen vertraut machen. Lesen Sie die Anleitung und die Dokumentation - sie sind hier an prominenter Stelle zu finden.
Ich möchte nicht weiter in den Code schauen...
die mir aufgefallen sind)) Warum 4 identische Küken? und die Probe ist nicht das, was im Kommentar steht
Das Gleiche gilt für Selstop. Sie benötigen OP_BUYSTOP und OP_SELLSTOP
die mir aufgefallen sind)) Warum 4 identische Küken? und die Probe ist nicht das, was im Kommentar steht
ähnlich mit selestop. Sie benötigen OP_BUYSTOP und OP_SELLSTOP
Dies geht aus dem Indikator hervor. Schnittpunkt von 2 Folien, gibt Richtung vor. Ich verstehe das nicht ganz, denn es gibt nur bei der Überquerung und nicht bei jedem Takt die Richtung an. Von hier aus ist es unmöglich, aus dem vorherigen Bar.... Sagen Sie mal, wir bauen doch ein Array, oder? Wie kann man die vorherige Zelle überprüfen? Es gibt zwei Puffer: einen CrossUp[i]=Low[i] - Range*0.75; und einen anderen, sagen wir, Cr[i]=Low[i] + Range*0.75; (ich will nicht wieder Ordner und Code durchsuchen).
Code prüfen:
String mit Ergebnis:
1, OrderType=4 - "4" ist OP_SELLLIMIT, richtig?
2. orderClosePrice()=0.9237 OrderOpenPrice()=0.9419 - Woher kommt der Wert von OrderClosePrice(), der nicht gleich OrderOpenPrice() ist?
Es gibt einen BUY_STOP-Auftrag, der vor der Ausführung gelöscht wurde:
Code prüfen:
String mit Ergebnis:
1, OrderType=4 - "4" ist OP_SELLLIMIT, richtig?
2. orderClosePrice()=0.9237 OrderOpenPrice()=0.9419 - woher kommt der Wert von OrderClosePrice(), der nicht gleich OrderOpenPrice() ist?
und Sie im Tester im Visualisierungsmodus, ja auf alle Ticks, im Schritt-Modus (F12 auf Pause) finden Sie den Moment der Entfernung und sehen den aktuellen Preis, vielleicht ist das, wo der Hund begraben ist?
BINGO! Das wusste ich nicht, aber es ist alles so, wie Sie geschrieben haben, d.h. der Schlusskurs ist in diesem Fall der Wert des Kurses zum Zeitpunkt der Löschung des Auftrags. Ich danke Ihnen!
Oft würde ich eine Variable wie diese innerhalb von Funktionen deklarieren:
Weiter drinnen rufe ich sie bereits unter einer bestimmten Bedingung auf, um zu sehen, ob es einen Fehler gibt. Nun, das ist nicht nur bei mir so, sondern auch an vielen anderen Stellen des Codes, auf die ich gestoßen bin. Es ist sozusagen eine typische Situation. Ich habe mir heute überlegt, dass es nicht logisch ist, in jeder Funktion, in der man Fehler kontrollieren will, jedes Mal die gleiche Variable zu deklarieren. Ich habe darüber nachgedacht und bin zu dem Schluss gekommen, dass es einfacher ist, einmal global zu deklarieren und es im Init zu initialisieren. Das geht so:
Und außerdem, wenn Sie die err-Variable in Benutzerfunktionen aufrufen müssen, weil Sie wissen, dass sie bereits einen Wert hat. Wenn also diese Variable err in jeder Funktion am Ende aller Berechnungen aufgerufen wird, die für die Ausgabe des Fehlercodes verantwortlich ist, und GetLastError() aufruft, dann ist doch alles korrekt, oder?
Aber wenn Sie diese Variable nicht am Ende einer Funktion (nach der Ausführungskette des Codes) aufrufen, wird sie nicht zurückgesetzt, und es könnte zu einer falschen Ausführung kommen, falls es in der vorherigen Ausführungskette einen Fehler gab, aber nicht in der aktuellen, aber der Fehlercode wird zuletzt zurückgegeben... Und um sie zurückzusetzen, müssen Sie diese Funktion GetLastError() aufrufen. D.h. hier hängt alles davon ab, ob es aufgerufen wurde oder nicht. Wenn Sie nicht sicher sind, dass es überall sein wird, ist es einfacher, es jedes Mal neu zu versichern und zurückzusetzen, oder?