Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 16.11.22
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ich würde die Schleife rückwärts laufen lassen, d.h. die letzte geschlossene Order wird zuerst abgefragt.

Code:
int i = 0;
bool newClose = false; 
static datetime lastCloseTime  = 0;     
      
for (i = OrdersHistoryTotal()-1; i >= 0; i--) {
   if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { 
         if (OrderCloseTime() > lastCloseTime) {
            newClose = true; 
            lastCloseTime = OrderCloseTime();
            break;
         } else break;
      }
   }
}
Diese Schleife wird sofort abbrechen, wenn eine geschlossene Order gefunden wird, deren Close-Time größer ist als die der Variablen lastCloseTime. Auch wird sie abgebrochen, wenn keine Order später als lastCloseTime gefunden wurde, um nicht unnütz alle historischen Orders abzufragen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.