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

 
( OrderType() < OP_BUYLIMIT ) ist dasselbe wie ( OrderType () == OP_BUY ||OrderType() == OP_SELL )
 
Hand:


Leute,

vielen Dank,

Lassen Sie mich Ihnen 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.

Sie können das tun ... es wird funktionieren ... versuchen Sie es.
 
Oder meinen Sie vielleicht die letzte BUY-Bestellung, die jetzt abgeschlossen ist?
 

Ist die Erklärung für die Funktion Nr. 4 klar?

Funktion Nummer 4:

// Ich möchte den geschlossenen Auftrag vor dem letzten geschlossenen Auftrag erhalten , egal ob Kauf oder Verkauf.

4- Funktion, um den vorherigen Schlusskurs vor dem letzten geschlossenen Auftrag zu erhalten und zu behalten, egal ob Kauf oder Verkauf. danke

 

Leute,

Es funktioniert wirklich nicht

// Used to keep global variables

extern int MagicNumberLong = 6658641;                     //Identifies long positions
extern int MagicNumberShort = 4167090;                    //Identifies short positions
  
 






double LastOpenPrice(int ordertype)
   { 

   double OpenPrice;                         
   datetime lastOpen;
   for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber() == MagicNumberLong || MagicNumberShort // 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 )
         {
         OpenPrice = OrderOpenPrice();
         break;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

if (  ((iOpen("EURUSD",PERIOD_H1,0)-0.0030)>=MarketInfo("EURUSD",MODE_BID))   ) 
  {   BUY("EURUSD",B_EURUSD_LS_0,B_EURUSD_TP_0,B_EURUSD_SL_0,B_EURUSD_TS_0,"if (  ( ((iOpen(EURUSD,PERIOD_H1,0)-0.00...") ;}
if (  ( (LastOpenPrice(OP_BUY)-0.0030)>MarketInfo("EURUSD",MODE_BID) )  ) 
   {  SELL("EURUSD",S_EURUSD_LS_1,S_EURUSD_TP_1,S_EURUSD_SL_1,S_EURUSD_TS_1,"if (  ( (LastOpenPrice(OP_BUY)-0.0030)>=MarketInfo(" EURUSD",MODE_BID) )  )") ;}
if (  ( ((iOpen("EURUSD",PERIOD_H1,0)+0.0030)<=MarketInfo("EURUSD",MODE_BID)) )  ) 
  {   SELL("EURUSD",S_EURUSD_LS_0,S_EURUSD_TP_0,S_EURUSD_SL_0,S_EURUSD_TS_0,"if (  ((iOpen(EURUSD,PERIOD_H1,0)+0.00...") ;}
if (  ( (LastOpenPrice(OP_SELL)+0.0030)<MarketInfo("EURUSD",MODE_BID) )  ) 
   {  BUY("EURUSD",B_EURUSD_LS_1,B_EURUSD_TP_1,B_EURUSD_SL_1,B_EURUSD_TS_1,"if (  ( (LastOpenPrice(OP_SELL)+0.0030)<MarketInfo(" EURUSD",MODE_BID) )") ;}

Wie Sie in den Bildern sehen können

Ich habe angefangen, den EA vom 01/03/2011 bis 11/04/2011 zu testen

in der ersten Stunde für 01/03/2011

die Position wurde geöffnet , aber keine von oben genannten Bedingungen zur Verfügung. das ließ mich wirklich verrückt

 
Hand:

Ist die Erklärung für die Funktion Nr. 4 klar?

Funktion Nummer 4:

// Ich möchte den geschlossenen Auftrag vor dem letzten geschlossenen Auftrag erhalten , egal ob Kauf oder Verkauf.

4- Funktion, um den vorherigen Schlusskurs vor dem letzten geschlossenen Auftrag zu erhalten und zu behalten, egal ob Kauf oder Verkauf. danke

Schlusskurs? Schlusskurs des Balkens vor dem Balken, in dem die letzte Order geschlossen wurde ? oder der Orderschlusskurs des Kaufs oder Verkaufs, der vor der letzten geschlossenen Order geschlossen wurde ?
 

die zweite Option:

den Schlusskurs der Kauf- oder Verkaufsorder, die vor der letzten geschlossen wurde?

 
Hand:

die zweite Option:

den Schlusskurs der Kauf- oder Verkaufsorder, die vor der letzten geschlossen wurde?

Versuchen Sie dies...

Um den letzten Schlusskurs des letzten Kauf- oder Verkaufsauftrags zu erhalten, der mit dem Symbol und der magischen Zahl übereinstimmt, gehen Sie wie folgt vor LastClosePrice(1)

Um den Preis davor zu erhalten, tun Sie dies... LetzterSchlussKurs(2 )

double LastClosePrice(int Order)
   { 
 
   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 )
         {
         Order--;
         if (Order == 0)                                            //  determines if we have found the Order we are interested in
            {
            ClosePrice = OrderCloseprice();
            break;
            }
         }
   return (ClosePrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

HINWEIS: Dieser Code funktioniert NICHT mit Ihren magischen Zahlen, wie in Ihrem Code oben gezeigt...

extern int MagicNumberLong = 6658641;                     //Identifies long positions
extern int MagicNumberShort = 4167090; 


WHY ? ? ? ?
 

Leute.

Gibt es jemand kann teamviewer Programm verwendet, dann werden wir zugreifen togethor und überprüfen, was ist das eigentliche Problem.

 
Hand:

Leute,

Es funktioniert wirklich nicht

Wie Sie in den Bildern sehen können

Ich habe angefangen, den EA vom 01/03/2011 bis 11/04/2011 zu testen

in der ersten Stunde für 01/03/2011

die Position wurde geöffnet , aber keine von oben genannten Bedingungen zur Verfügung. das ließ mich wirklich verrückt

Es ist nicht verrückt. Es ist "vernünftig" für eine Bestellung geöffnet werden, weil:

double LastOpenPrice(int ordertype)
   { 

   double OpenPrice;                         
   datetime lastOpen;
   for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber() == MagicNumberLong || MagicNumberShort // my magic number       
      && OrderSymbol() == Symbol()    // and my pair.             
      && OrderType() == ordertype 
      && OrderOpenTime() > lastOpen )
         {
         OpenPrice = OrderOpenPrice();
         break;
         }
   return (OpenPrice); //  <-------  this returns the Order Open Price OR ZERO.

Wenn die obige Funktion NULL zurückgibt, dann kann ein Szenario wie das folgende eintreten

 if (  ( (LastOpenPrice(OP_SELL)+0.0030)<MarketInfo("EURUSD",MODE_BID) )  ) <--------------- 0+0.0030=0.0030<Bid: TRUE
   {  BUY("EURUSD",B_EURUSD_LS_1,B_EURUSD_TP_1,B_EURUSD_SL_1,B_EURUSD_TS_1,"if (

Ich schlage vor, dass Sie eine "Master"-Logik über diese Funktion stellen. Wenn die Funktion LastOpenPrice(...) null.... zurückgibt, was ist dann Ihr Plan?

Grund der Beschwerde: