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)
-   -   Anzahl der orders ohne Stopploss und mit Magicnr (http://www.expert-advisor.com/forum/showthread.php?t=6151)

Hippo25 18.07.18 16:16

Anzahl der orders ohne Stopploss und mit Magicnr
 
Hallo
Ich möchte die Anzahl der Orders ohne Stopploss ermitteln.

PHP-Code:

int offeneorders=0//Speichert die Anzahl der Orders zur späteren Verwendung

int anzahlorders=OrdersTotal();

   for(
zaehler=0;zaehler<anzahlorders;zaehler++) // for schleife
     
{
      
OrderSelect(zaehlerSELECT_BY_POSMODE_TRADES); // MODE_TRADES = offene und aufgegebene Orders
       // check offene Positionen, Symbol & MagicNumber
       
if (OrderSymbol()== Symbol())
        {
          if (
OrderMagicNumber()==MagicNumber
            {
             
offeneorders++;
            }       
        } 

     } 

Ausser das es nicht funktioniert wie kann ich es so ändern das es nur die Order zählt die ohne stopploss sind

Gruss
Hippo

MA-EA 18.07.18 17:11

if(OrderStopLoss == 0)Orders Ohne SL++;

So in der Art könnte das vielleicht gehn. :confused: :rolleyes:


Edit:Setzt Du nicht gleich nen SL beim Öffnen?

Hippo25 18.07.18 17:57

Ich erhalte immer folgende Fehlermeldung



'for' - expressions are not allowed on a global scope 62

Habt ihr eine idee

grus Hippo

traderdoc 18.07.18 19:53

Das for ... muss in eienr Funktion eingebettet sein.

traderdoc

Raul0 18.07.18 23:15

Mal unabhängig von Deinem For Fehler.

PHP-Code:


int offeneorders
=0//Speichert die Anzahl der Orders zur späteren Verwendung
int ordersohnestop=0//Speichert die Anzahl der Orders ohne ein Stoploss

int anzahlorders=OrdersTotal();

   for(
zaehler=0;zaehler<anzahlorders;zaehler++) // for schleife
     
{
      
OrderSelect(zaehlerSELECT_BY_POSMODE_TRADES); // MODE_TRADES = offene und aufgegebene Orders
       // check offene Positionen, Symbol & MagicNumber
       
if (OrderSymbol()== Symbol())
        {
          if (
OrderMagicNumber()==MagicNumber
            {
               
offeneorders++;

               if ( 
OrderStopLoss() == 
               {
                  
ordersohnestop++;
               }
  
            }
        } 
     } 


MA-EA 19.07.18 07:29

for (i = OrdersTotal()-1; i>=0; i--){ //Schleife um Orders zu suchen

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

if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderStopLoss()==0 ) int ordersohnestop++ ;

}}


Bin aber wie gesagt Einsteiger... :confused: :rolleyes:

Aber warum willst Du die überhaupt zählen?

Hippo25 19.07.18 09:05

Ich habe es mal ausprobiert
Habe aber folgende Meldung

return value of 'OrderSelect' should be checked Offenetrades.mq4

Filtert es richtig oder nicht ?

grus Hippo

traderdoc 19.07.18 09:27

Das ordersohnestop++ ; ist an der falschen Stelle deklariert.
So würde immer nur 0 resultieren.

Vor der for-Schleife müsste stehen:
int ordersohnestop = 0;
int i;

traderdoc

MA-EA 19.07.18 09:35

Kenn mich mit den Schleifen nicht so aus. :rolleyes:

Aber fängt er nicht sowieso bei 0 an zu zählen? :confused:

Die Return Value Meldung ist eigentlich egal. :cool:

Hippo25 19.07.18 10:39

Also
Nochmal den ganzen code
PHP-Code:

int offeneorders=0//Speichert die Anzahl der Orders zur späteren Verwendung
   
int ordersohnestop=0//Speichert die Anzahl der Orders ohne ein Stoploss

   
int anzahlorders=OrdersTotal();

   for(
zaehler=0;zaehler<anzahlorders;zaehler++) // for schleife
     
{
      
OrderSelect(zaehlerSELECT_BY_POSMODE_TRADES); // MODE_TRADES = offene und aufgegebene Orders
       // check offene Positionen, Symbol & MagicNumber
       
if (OrderSymbol()== Symbol())
        {
          if (
OrderMagicNumber()==MagicNumber
            {
               
offeneorders++;

               if ( 
OrderStopLoss() == 
               {
                  
ordersohnestop++;
               }
  
            }
        } 
     }  
        
  
Comment (
              
"Offene Trades: ",offeneorders,"\n"
               "Offen ohne SL: "
,ordersohnestop,"\n"
              
               
               
);   
  }
//+------------------------------------------------------------------+ 

Wie ihr seht - int ordersohnestop = 0; vor der for schleife.
Wo müsste ordersohnestop++ hin ?


gruss
Hippo


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