Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   die älteste Order schliessen (http://www.expert-advisor.com/forum/showthread.php?t=6976)

Hippo25 25.04.21 09:51

die älteste Order schliessen
 
Hallo an alle

ich hab damal wieder ein Problem.
Ich möchte bei jedem neue Handelstag die älteste Order schliessen.

Der code macht es auch oft, aber halt nicht immer. Und ich habe keine Ahnung warum.

hier der Code.
PHP-Code:

//Ausführen jeden Anfang am HandelsTag
if (Bars Barsalt) { 
laufendenr 0;
// feststellen welche die ällteste order ist
aeltestTimeCurrent();
 while ( 
laufendenr<orderanzahl){
   
       if (
OrderSelect(laufendenr,SELECT_BY_POS,MODE_TRADES)==true) {
         
kaufkursOrderOpenPrice(); 
         
kaufdatum OrderOpenTime();
         
kaufdatum2 OrderOpenTime();
         
Chart OrderSymbol();
         
Pos OrderType();
         
Lotskauf OrderLots();
         
TSPaktuellask OrderStopLoss(); 
         
Ticketask OrderTicket();
         if (
aeltest >kaufdatum2 ) {aeltest=kaufdatum2ticket2 OrderTicket();}
           }        
laufendenr laufendenr +1;
}
 
// älteste Order wird geschlosen
Test1 Test1+1;
if (
Pos ==&& neu == ){Ordergeschlossen OrderClose(ticket2,Lots,Ask,3,Red);neu 1;Test2=Test2+1;}
if (
Pos ==&& neu == ){Ordergeschlossen OrderClose(ticket2,Lots,Bid,3,Red);neu 1;Test2=Test2+1;}

}
Barsalt Bars;neu 0

Die testvariabelen habe ich zur kontrolle gemacht.
was mache ich mal wieder falsch??
im voraus mal danke

hippo

traderdoc 25.04.21 23:37

Code:

if (Bars > Barsalt) {
  int time = 10000000000, tn = 0, type = -1;
  bool res = false;
  double lots = 0;

  for (int i = 0; i < OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
        if (OrderOpenTime() < time) {
            time = OrderOpenTime();
            tn = OrderTicket();
            type = OrderType();
            lots = OrderLots();
        }
      }
  }
  if (type == 0) res = OrderClose(tn, lots, Bid, 3, Red);
  if (type == 1) res = OrderClose(tn, lots, Ask, 3, Red);
  Barsalt = Bars;
}

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:58 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum