Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 94
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
artmedia70
Um auf meine Widder zurückzukommen, was das Schließen einer Position beim Überschreiten einer Indikatorlinie betrifft. Ich denke, der Fehler liegt in dieser Funktion
if(Volumen[0]>1) return;
Ich habe in der Anleitung gelesen, dass wir statt Ticks zu zählen, eine Position bei Erscheinen von Bars öffnen (schließen) können. Ist das möglich? Wenn ja, können Sie mir einen Tipp geben, wie ich es für meine Situation programmieren kann.
artmedia70
Um auf meine Widder zurückzukommen, was das Schließen einer Position beim Überschreiten einer Indikatorlinie betrifft. Ich denke, der Fehler liegt in dieser Funktion
if(Volumen[0]>1) return;
Ich habe in der Anleitung gelesen, dass wir statt Ticks zu zählen, eine Position bei Erscheinen von Bars öffnen (schließen) können. Ist das möglich? Wenn ja, können Sie uns einen Tipp geben, wie ich es für meine Situation programmieren kann.
Vielleicht wird es nützlich sein:
Die Funktion gibt true zurück, wenn ein neuer Balken auf M15 erscheint
Bitte um Rat!!!
Ich schreibe ausstehende Aufträge zu einer bestimmten Zeit
{
Offene Zeit definieren
}
if ((condition)==true)//
{
OrderSend ( OP_BUYSTOPP, parameters);// eröffnet eine schwebende BuyStop Order
OrderSend ( OP_SELLSTOP, parameters);// eröffnet eine schwebende SellStop Order
}
Ich glaube, ich habe die Zeit richtig geschrieben; sie wird erkannt, aber aus irgendeinem Grund öffnet sie entweder Sell Stop oder Buy Stop und öffnet nicht zwei Aufträge auf einmal. Ich versuche, zwei schwebende Aufträge unterschiedlichen Typs (Bistop und Sellstop) gleichzeitig und nacheinander zu eröffnen. Die Frage scheint primitiv zu sein, bitte helfen Sie für Dummies).
Um den Code hier korrekt einzufügen, klicken Sie zuerst auf SRC und kopieren Sie dann den Code dorthin.
Wenn ich Sie richtig verstanden habe, muss ich zu einem bestimmten Zeitpunkt einen OP_BUYSTOP und einen OP_SELLSTOP öffnen? Ist es akzeptabel, dass zu diesem Zeitpunkt noch andere Aufträge offen sind? Zum Beispiel gibt es offene Aufträge, aber wir müssen die alten löschen, bevor wir die neuen eröffnen?
Dieser Fehler bezieht sich auf grafische Objekte, nicht auf Aufträge
.
Guten Abend, Victor! Seltsam, der schwebende Auftrag ist kein Objekt! Vielleicht haben Sie ein Objekt, das bereits hätte gelöscht werden sollen, aber nicht gelöscht wurde!
Guten Tag, Boris! Der Expert Advisor erstellt keine Objekte. Dieser Fehler kommt von der Funktion, die einen schwebenden Auftrag platziert. Hier ist die Version der Funktion (für den Prüfer):
bool OpenPendingBuy(double lot, double price) { int g_ticket = -1; double OOP = price + i_distanceFromLastPos * pt; if (OOP > Ask) { fCheck_ValidPendingOOP(Symbol(), OP_BUYSTOP, OOP); g_ticket = OrderSend(Symbol(), OP_BUYSTOP, lot, ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE); } if (g_ticket > 0) { return (true); } else pr ("OpenPendingBuy(): Ордер послать не удалось " + GetLastError()); return (false); }
Wenn kein Auftrag erteilt wurde, bedeutet dies, dass eine Sperre ausgelöst wurde:
Dies ist der Block, der einen Fehler meldet.
Hat jemand die Logik verstanden?
Da es keine Antwort auf die Frage gibt, ist hier eine Funktion, die das Ticket des letzten Bestellsatzes zurückgibt:
Danke!!.. genau das, was ich brauche
Ganz genau! Der Fehler betrifft Objekte, aber ich habe keine Objekte in diesem EA...
Guten Tag, Boris! Der Expert Advisor erstellt keine Objekte. Dieser Fehler kommt von der Funktion, die einen schwebenden Auftrag platziert. Hier ist die Version der Funktion (für den Prüfer):
Wenn der Auftrag nicht erteilt wurde, bedeutet dies, dass eine Sperre ausgelöst wurde:
Dies ist der Block, der den Fehler meldet.
Hat jemand die Logik verstanden?
Überprüfen Sie also Ihre Fehlerprüfung? Da muss irgendetwas nicht in Ordnung sein!
Heh)) Was gibt es an Boris zu meckern? Es ist alles durchschaubar...
pr ist eine Druckfunktion. Und der Fehler ist bereits eine Standardkonstante. Logischerweise ist das überhaupt nicht hinnehmbar. Wenn Sie noch einen Verdacht bezüglich der pr-Funktion haben, hier ist er:
Ist die Partie normalisiert? Gut und überprüfen Sie den Preis.
Sind i_magic, pt, i_distanceFromLastPos global?
i_magic, pt, i_distanceFromLastPos sind global?
Ja. Variablen mit i_ sind Eingabevariablen (vom Wort intut, das vom Benutzer geändert werden kann...), und pt ist auch eine globale Variable, die überall sichtbar ist...
Ist die Partie normalisiert? Gut und überprüfen Sie den Preis.
Nein, das Los wurde nicht normalisiert. Im Testgerät ist es nie aufgetreten... Und was hat das Los mit dem Objekt zu tun (Fehler 4200)?
Gelegentlich, aber nicht ständig, erhalte ich einen 4200-Fehler, wenn ich einen schwebenden Auftrag erteile. Laut der Dokumentation bedeutet dieser Fehler, dass das Objekt bereits existiert:
Es stellt sich heraus, dass ein Auftrag dieser Art bereits auf dem Markt ist, wenn der schwebende Auftrag gesendet wird?