Ich habe den Beitrag aktualisiert.
Versuchen Sie zunächst, die Integer-Darstellungen zu verwenden, und führen Sie den Test erneut durch. Schauen Sie, ob das Ihr Problem löst, dann werden wir weiter darüber sprechen. Edit: Ich denke, das hat etwas mit der Tatsache zu tun, dass ordertype bei 0 beginnt und orderselect die zuletzt ausgewählte Bestellung beibehält.
Versuchen Sie zunächst, die Integer-Darstellungen zu verwenden, und führen Sie den Test erneut durch. Schauen Sie, ob das Ihr Problem löst, dann werden wir weiter darüber sprechen.
Edit: Ich denke, das hat etwas damit zu tun, dass ordertype bei 0 beginnt und orderselect den zuletzt ausgewählten Auftrag beibehält.
Könnte sein . . .
Versuchen Sie orderType als etwas zu deklarieren , das es nicht sein kann . . . z.B .
int orderType = 10;
. . . dann sehen Sie, was passiert, wenn Sie keine Meldungen erhalten, dann funktioniert Ihre Auftragsauswahl nicht.
Könnte sein . . .
Versuchen Sie, orderType als etwas zu deklarieren , das es nicht sein kann . . . z.B .
. . . und sehen Sie, was passiert, wenn Sie keine Meldungen erhalten, dann funktioniert Ihre Bestellungsauswahl nicht.
Es funktioniert genau so, wenn ich zuerst deklariere: int orderType = 10;
Ich habe auch versucht, OrderType() immer zu verwenden, anstatt eine Variable zu deklarieren, aber es gibt das gleiche Problem.
Ich habe auch versucht, OrderSelect(...) kurz vor dem Ändern der Bestellung aufzurufen, aber keine Änderung.
Testen Sie dies im Backtesting oder mit einem Demo-Konto?
Ich teste live. Ich setze den EA auf einen Chart und schaue, was er macht, und ich verwende das Kontrollkästchen "Nach Bestätigung fragen".
Fügen Sie einige Print()-Anweisungen ein, damit Sie sehen können, was schief läuft, z. B.
if(/*OrderMagicNumber()==Magic &&*/ OrderSymbol()==Symbol()) { Print("orderType = ",orderType); if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) {
. . . dann sehen Sie sich die Registerkarte Experten an.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Ich versuche, einen EA zu programmieren, und an irgendeiner Stelle in meinem Code muss ich den Stoploss von offenen und schwebenden Aufträgen aktualisieren. Ich zeige eine Warnung mit den Informationen über die Bestellung.
Wenn ich ihn ausführe, erhalte ich eine Meldung wie: "Count: 2 Stoploss 1.44705 für Kaufauftrag: 46450421 orderType: 1".
orderType: 1 bedeutet, dass die Order 46450421 eine OP_SELL-Order ist, was sie auch ist, aber warum löst sie den Test "if ((orderType == OP_BUY || orderType == OP_BUYSTOP))" anstelle von "if ((orderType == OP_SELL || orderType == OP_SELLSTOP))" aus?
Bitte um Hilfe :-)
Daniel