Antwort

Ändern eines Kauf-/Verkaufsstopps

6 Antworten

huangwh88

Customer, bbp_participant, community, 113 replies.

Profil besuchen

vor 7 Jahren #116411

Hallo, 

 

Nehmen wir an, ich habe einen Kaufstopp beim höchsten Stand der letzten 10 Perioden. Wenn der Auftrag nach der letzten Periode nicht ausgelöst wird, wie ändere ich dann den Kaufstopp, um die Änderung im 10-Perioden-Rückblickfenster zu berücksichtigen?

0

tomas262

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 7 Jahren #141822

Hallo,

 

Um einen Stop-Auftrag zu ändern, müssen Sie ihn mit der Funktion "Position schließen" stornieren und dann einen neuen Auftrag eröffnen.

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Profil besuchen

vor 7 Jahren #141834

Hallo,

 

Um einen Stop-Auftrag zu ändern, müssen Sie ihn mit der Funktion "Position schließen" stornieren und dann einen neuen Auftrag eröffnen.

Hallo Tomas,

 

Jedes Mal, wenn der Kaufstopp von highest(10) nicht ausgelöst wird, möchte ich den Einstiegskurs so anpassen, dass das höchste Hoch aktualisiert wird. Ich habe dies versucht:

 

IF: 

ausstehender Auftrag existiert(1000) ist wahr

 

DANN:

 

Position schließen, magische Zahl 1000

Eingabe an der Haltestelle, höchste(10), magische Zahl 1000

 

Es liegt ein Fehler vor, weil es 2 Aufträge mit der magischen Zahl 1000 gibt. Die Regel, die den ursprünglichen Kaufstopp erstellt hat, verwendet ebenfalls die magische Zahl 1000. Brauche ich jedes Mal eine andere magische Zahl, wenn ich einen Kaufstopp ändere, obwohl die Aufträge eigentlich dieselben sind?

0

tomas262

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 7 Jahren #141849

Hallo,

 

ok, wir müssen eine Funktion verwenden, um den Preis zu ändern und zu bestellen. Ich werde ein Beispiel dafür erstellen und anhängen

0

tomas262

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 7 Jahren #141870

Sie können diese Funktion in die Datei EA Wizard CustomFunctions.mq4 einfügen, die sich im Assistentencode befindet. 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false;
   
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         gefunden = true;

         Verbose("Moving PO for order with Magic Number: ", orderMagicNumber,", ticket: ", OrderTicket(), ", new PO: ", newPO);
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0);
      }
   }

   if(!found) {
      Verbose("Moving PO - Bestellung mit Magic Number: ", orderMagicNumber, " wurde nicht gefunden");
   }

}

Dann kann der Auftragspreis wie im beigefügten Beispiel geändert werden

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Profil besuchen

vor 7 Jahren #141966

Sie können diese Funktion in die Datei EA Wizard CustomFunctions.mq4 einfügen, die sich im Assistentencode befindet. 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false;
   
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         gefunden = true;

         Verbose("Moving PO for order with Magic Number: ", orderMagicNumber,", ticket: ", OrderTicket(), ", new PO: ", newPO);
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0);
      }
   }

   if(!found) {
      Verbose("Moving PO - Bestellung mit Magic Number: ", orderMagicNumber, " wurde nicht gefunden");
   }

}

Dann kann der Auftragspreis wie im beigefügten Beispiel geändert werden

 

Hallo Tomas, ich danke dir für deine wunderbare Hilfe.

 

Ich möchte eine WENN-Bedingung einfügen, die erfüllt sein muss, bevor der schwebende Auftrag gemäß dem obigen Code verschoben werden kann. Wenn diese Bedingung nicht erfüllt ist, wird der schwebende Auftrag gelöscht. Gibt es eine Möglichkeit, diese Auftragslöschung einzufügen, ohne eine weitere IF/THEN-Regel zu erstellen?

0

tomas262

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 7 Jahren #141990

Hallo,

 

Ja, Sie können zusätzliche Bedingungen in die Registerkarte "Ändern" einfügen und eine weitere Registerkarte zum Löschen des schwebenden Auftrags erstellen (mit der Funktion "Position schließen", um ihn zu löschen).

0

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)