[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 464

 
sss2019:
Können Sie mir sagen, welche Funktion die Hälfte des Auftrags schließen soll, OrderClose() oder OrderCloseBy()?

Wenn ein offener Auftrag vorliegt und nur ein Teil davon geschlossen werden muss, reicht es aus, OrderClose() zu verwenden, wobei das zu schließende Volumen angegeben wird.
 
sss2019:
Können Sie mir sagen, welche Funktion die Hälfte des Auftrags schließen soll, OrderClose() oder OrderCloseBy()?

Abschluss der Hälfte des Auftragsvolumens:

   int Ticket = ...
   OrderSelect(Ticket, SELECT_BY_TICKET);
   OrderClose(Ticket, NormalizeDouble(OrderLots()/2), Ask /*или Bid*/, Slippage);
 
MaxZ:

Schließen Sie die Hälfte des Auftragsvolumens ab:


OrderSelect() vor OrderClose() ist nicht erforderlich.
 
PapaYozh:

OrderSelect() vor OrderClose() ist nicht erforderlich.
ist erforderlich, weil es OrderLots verwendet
 
ilunga:
ist erforderlich, da es OrderLots verwendet


In diesem Fall:

- Zunächst müssen wir das von OrderSelect() zurückgegebene Ergebnis überprüfen;

- Zweitens müssen wir das Volumen, das bei der Teilung entsteht, im Auge behalten, da es sich sonst nicht schließen kann.

 

PapaYozh, MaxZ Das Lot ist 0,1, bei der Berechnung von 30 ( ClosingPercent = 30) sollte der Prozentsatz 0,03 sein, aber beim Schließen mit diesem Lot tritt Fehler 131 auf.

           ClosingLot = OrderLots() / 100 * ClosingPercent;
           ClosingLot = NormalizeDouble(ClosingLot,3);
           OrderClose(OrderTicket(),ClosingLot,Ask,Slippage,Green);
 
sss2019:

PapaYozh, MaxZ Das Lot ist 0.1, in der Berechnung von 30 ( ClosingPercent = 30) sollte der Prozentsatz 0.03 sein, aber der Fehler 131 tritt beim Schließen mit diesem Lot auf.


Warum normalisieren Sie die Lautstärke auf 3 Ziffern?
 
sss2019:

PapaYozh, MaxZ Es handelt sich um 0,1 Lot, bei der Berechnung von 30 ( ClosingPercent = 30) Prozent sollte 0,03 sein, aber Fehler 131 tritt auf, wenn man mit diesem Lot schließt

1) Warum auf 3 Ziffern normalisieren?

2) Wahrscheinlich beträgt die Mindestparzelle 0,1 und eine kleinere Parzelle ist im Prinzip nicht verfügbar.

 
PapaYozh:

Warum normalisieren Sie die Lautstärke auf 3 Ziffern?

Nun, wenn die Menge 0,10 beträgt, kann man nicht 30 % schließen. Aber ich habe versucht, mit 1 Los auf 2 Stellen zu normalisieren, und immer noch den gleichen Fehler.
 
sss2019:

Wenn das Los also 0,10 beträgt, kann man nicht schon 30 % schließen. Aber ich habe versucht, mit Los 1 auf 2 Stellen zu normalisieren, und immer noch den gleichen Fehler.

die Ziffern werden nicht als Ganzes gezählt, sondern nach dem Dezimalpunkt.

d.h. die Normalisierung der Zahl 10.044425 auf 2 Ziffern ergibt die Zahl 10.04


Ja, und wo ist Ihre Auftragsauswahl vor der Nutzung von OrderLots?