Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 05.08.17
next user next user ist offline
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von icepick1661 Beitrag anzeigen
Anders beschrieben (also das, was ich am Ende eigentlich will):
Jeden Abend soll die jeweils eine bestehende SELLSTOP und BUYSTOP gelöscht werden. Beim Handelsbeginn sollen beide wieder geöffnet werden, abhängig davon, wo der Eröffnungskurs liegt.
Falls dein Code durchgehend läuft, so könntest du einfach die OrderNummer der zu löschenden Order speichern.
Wenn hier Handelsbeginn ein Neustart heißt, könntest du die Ordernummern vielleicht auch einfach in einer Datei speichern,
wobei bei dieser Kleinigkeit auch einfach in einer Schleife abgefragt werden kann.
Zitat:
Zitat von icepick1661 Beitrag anzeigen
Gelöscht wird aber in der Reihenfolge des Anlegens der STOPs. Wenn ich sicherstellen kann, dass zuletzt die eigentlich gewünschte STOP-Order gelöscht wird, dann, TraderDoc, ist dein Code der richtige.
Falsch. Traderdocs Code "sucht" die zuletzt gelöschte Order in der ganzen Orderhistorie und prüft nicht nur die allerletzte Stelle.
Somit macht der Code genau das, was er soll. Er ermittelt den Preis der letzten gelöschten Order entsprechenden Typs.

Also nochmal kurz mit Kommentar
Code:
double lastopenprice;

// Schleife geht die GANZE Orderhistorie durch...
for(int iPos_H=OrdersHistoryTotal()-1; iPos_H>=0; iPos_H--)
{
   if(OrderSelect(iPos_H, SELECT_BY_POS, MODE_HISTORY))
   {
      // Die Schleife arbeitet sich von der letzten Stelle in der
      // Historie zur ersten durch.
      // Der folgende Code speichert den OrderPrice der ZULETZT
      // gelöschten Buystop-Order und bricht die Schleife ab.
      if(OrderType() == OP_BUYSTOP)
         {lastopenprice = OrderOpenPrice(); break;}
   }
}
Zitat:
Zitat von icepick1661 Beitrag anzeigen
P.S. für next user: Habe im Körper iPos_H++ in iPos_H-- geändert, nützte aber nichts...
Das ist sinnlos. In der Schleife selbst definierst du ja, das nach jedem Durchgang iPos_H verringert wird. Im Körper
brauchst du es garnicht zu machen. So wie du es jetzt gemacht hast, verringerst du iPos_H jedesmal um 2.