Wie kann ich den höchsten Preis erhalten, nachdem die Bestellung geöffnet wurde? - Seite 3

 

Warum geben Sie dann die Ticketnummer zurück? Lesen Sie den Code, den Sie kopieren und einfügen, verstehen Sie ihn, lernen Sie....

Ich habe ihn für Folgendes verwendet

if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
{ Order für Kauf= OrderOpenPrice();}

dann wenn ( (( Kaufauftrag+ Verkaufsauftrag)/2))<MarketInfo("EURUSD",MODE_BID) )

schließe die Position

 
Hand:


if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)


eine kleine Änderung mit Ihrer Erlaubnis

if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_TICKET)==true)
 

Lieber qjol

vielen Dank für deine echte Hilfe. Aber ich bin mir immer noch nicht sicher, ob es funktioniert oder nicht (ich denke, meine Funktionen sind ein wenig schwierig). mal sehen

erste Funktion :

Funktion zum Ermitteln und Behalten des letzter auftrag offener preis nur für den kauf

double LastOpenForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. 
int magi.number= 0 ; double orderforbuy;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ orderforbuy = OrderOpenprice ();
lastTicket = OrderTicket (); }
return (orderforbuy);}

if(OrderSelect(LastOpenForBuy(), SELECT_BY_TICKET)==true)
{ order for buy= OrderOpenPrice();}

// then something like// // if ( (( order for buy+ order for sell)/2))<MarketInfo("EURUSD",MODE_BID) )

//close the position

     Was ich brauche, ist: 1- Funktion zum Ermitteln und Behalten des letzter offener Auftragspreis nur für den Kauf 
2- Funktion, um den letzten offenen Preis für den Verkauf zu erhalten und zu behalten
3- Funktion, um den Schlusskurs der letzten Order zu ermitteln und zu speichern , egal ob Kauf oder Verkauf
4- Funktion zur Ermittlung und Beibehaltung des vorherigen Schlusskurses vor dem letzten geschlossenen Auftrag, egal ob Kauf oder Verkauf.
 

OK, versuchen Sie das...

Es macht 1 & 2 ...

LastOpenPrice(OP_BUY) für den offenen Preis des letzten Kaufs.

LastOpenPrice(OP_SELL) für den offenen Preis des letzten Verkaufs.

double LastOpenPrice(int  OrderType)
   { 
 
   double OpenPrice;                         

   for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber() == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol() == Symbol()  // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType() == OrderType )
         {
         OpenPrice = OrderOpenprice();
         break;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}
 

Und dies . . . .

für 3 . . .

double LastClosePrice()
   { 
 
   double ClosePrice;                         

   for ( int pos = OrdersHistoryTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY)            // Only my CLOSED  orders 
      && OrderMagicNumber() == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol() == Symbol()  // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType() < OP_BUYLIMIT )
         {
         ClosePrice = OrderCloseprice();
         break;
         }
   return (ClosePrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}
 
Ich bin nicht sicher, ob ich verstehe, was Sie mit Nr. 4 meinen .
 

raptor

ich denke, dass du etwas verpasst, wenn er mehr als 1 Auftrag für dasselbe Paar (und dieselbe Magie) hat, daher denke ich, dass es so besser ist

double LastOpenPrice(int OrderType)
   { 
 
   double OpenPrice;                         
   datetime lastOpen; // First line added

   for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber() == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol() == Symbol()  // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType() == OrderType
      && OrderOpenTime() > lastOpen) // Second line added
         {
         OpenPrice = OrderOpenprice();
         break;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

Deine Meinung

 
Wenn Sie abwärts zählen, wird der erste Auftrag, der mit der magischen Zahl und dem Symbol übereinstimmt, der letzte sein, der für den betreffenden EA und das Symbol erteilt wird, oder?
 
Nicht sicher
 
qjol:

raptor

ich denke, dass du etwas übersiehst, wenn er mehr als 1 Auftrag für dasselbe Paar (und dieselbe Magie) hat, daher denke ich, dass es so besser ist

Ihre Meinung


Leute,

Vielen Dank,

Lass mich dir sagen, warum ich LastOpenPrice(OP_BUY) und LastOpenPrice(OP_SELL) verwenden möchte, weil ich sie in einigen Bedingungen verwenden möchte, wie

if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // aus diesem Grund muss ich den letzten Auftrag für den Kauf und den letzten Auftrag für den Verkauf offen halten, also brauche ich einen separaten letzten Auftrag für den Kauf und den anderen für den Verkauf.

-----

für double LastClosePrice() // kann ich if ( OrderType() == OP_BUY || OP_SELL) statt *** OrderType() < OP_BUYLIMIT*** verwenden, um den letzten Abschluss zu erhalten, egal ob Kauf oder Verkauf.

----

für Funktion Nummer 4:

4- Funktion, um den vorherigen Schlusskurs vor der letzten geschlossenen Order, egal ob Kauf oder Verkauf, zu erhalten und zu behalten. // Ich möchte die geschlossene Order vor der letzten geschlossenen Order , ob Kauf oder Verkauf, erhalten .

Danke

Grund der Beschwerde: