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)
-   -   pending Orders löschen (http://www.expert-advisor.com/forum/showthread.php?t=6417)

Max2018 15.05.19 09:19

pending Orders löschen
 
Hallo,

ich habe 2 Pending Orders 1xBuy und 1x Sell.
Diese Anweisung schließt nur die Pending Sell Order, nicht aber die Pending Buy Order - Warum ? :confused: Ich möchte beide schließen..... Ich stehe auf dem Schlauch.....:confused:

Code:

for(int i=0;i<OrdersTotal();i++)
        {
       
        if(OrderType()==OP_BUYLIMIT)
            if(OrderDelete(OrderTicket(),ColorBuy)) ;       
        if(OrderType()==OP_BUYSTOP)
            if(OrderDelete(OrderTicket(),ColorBuy)) ;
        if(OrderType()==OP_SELLSTOP)
            if(OrderDelete(OrderTicket(),ColorSell)) ;
        if(OrderType()==OP_SELLLIMIT)
            if(OrderDelete(OrderTicket(),ColorSell)) ;
      }


AVT 15.05.19 09:46

Zitat:

Zitat von Max2018 (Beitrag 42440)
Code:

for(int i=0;i<OrdersTotal();i++)

z.B. OrdersTotal ist 5, dann macht er i=0 i=1 i=2 i=3 i=4, also nur bis 4 weil er ja machen soll solange i kleiner ist als OrdersTotal ist. AVT

Max2018 15.05.19 14:09

Ja aber auch wenn ich

Code:

for(int i=0;i-1<OrdersTotal();i++)
        {
       
        if(OrderType()==OP_BUYLIMIT)
            if(OrderDelete(OrderTicket(),ColorBuy)) ;       
        if(OrderType()==OP_BUYSTOP)
            if(OrderDelete(OrderTicket(),ColorBuy)) ;
        if(OrderType()==OP_SELLSTOP)
            if(OrderDelete(OrderTicket(),ColorSell)) ;
        if(OrderType()==OP_SELLLIMIT)
            if(OrderDelete(OrderTicket(),ColorSell)) ;

eintrage, dann löscht er die Pending Buy Order nicht :confused:

Ich habe ja auch nur ZWEI Orders - 1x BuyLimit und 1xSellStop

Max2018 15.05.19 14:13

Was wäre denn nu richtig ? :confused:

AVT 15.05.19 15:48

Code:

  color ColorBuy=clrGreen;
  color ColorSell=clrRed;

  for(int i=OrdersTotal()-1; i>=0; i--)
  {
      Print(" i=",IntegerToString(i));

      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {

        int ord_type=OrderType();
        Print(" ord_type=",IntegerToString(ord_type));

        if(OrderType()==OP_BUYLIMIT)
        {
            Print("Type i=(",IntegerToString(i),") ist OP_BUYLIMIT");
            if(OrderDelete(OrderTicket(),ColorBuy))
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") wurde gelöscht");
            else
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") NICHT gelöscht");
        }
        if(OrderType()==OP_BUYSTOP)
        {
            Print("Type i=(",IntegerToString(i),") ist OP_BUYSTOP");
            if(OrderDelete(OrderTicket(),ColorBuy))
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") wurde gelöscht");
            else
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") NICHT gelöscht");
        }
        if(OrderType()==OP_SELLSTOP)
        {
            Print("Type i=(",IntegerToString(i),") ist OP_SELLSTOP");
            if(OrderDelete(OrderTicket(),ColorSell))
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") wurde gelöscht");
            else
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") NICHT gelöscht");
        }
        if(OrderType()==OP_SELLLIMIT)
        {
            Print("Type i=(",IntegerToString(i),") ist OP_SELLLIMIT");
            if(OrderDelete(OrderTicket(),ColorSell))
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") wurde gelöscht");
            else
              Print(" OrderTicket (",IntegerToString(OrderTicket()),
                    ") NICHT gelöscht");
        }
      } // OrderSelect
  } // OrdersTotal

  // === sind wir jetzt clean?
  if( OrdersTotal()==0 ) Print(" keine Order mehr offen");
  else                  Print(" ups, noch was OFFEN");


Max2018 15.05.19 20:27

Suuuuuuper - du bist genial

danke :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:03 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