Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43271
Benutzer: 7.223
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 6 Tagen
- Sundaytrad...
vor 6 Tagen
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 437
Gesamt: 437
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 19.07.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hippo25 Beitrag anzeigen
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
Hallo!

Ist nicht zwingend notwendig solltest du aber abfragen und in die if-Bedingung einbauen:

Code:
bool Select = OrderSelect(.....)

if (Select == True && OrderSymbol() == Symbol && ...)
Hoffe das ist verständlich.

---Leopold---
  #12 (permalink)  
Alt 19.07.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hippo25 Beitrag anzeigen
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
Das passt so, traderdoc hat nur die Deklaration gemeint, die stimmt bei dir aber. (int ordersohnestop=0; )
Ich denke er ist auf den Kommentar von MA-EA eingegangen, dort war die Deklaration falsch!

---Leopold---
  #13 (permalink)  
Alt 19.07.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard Vereinfachung des Codes

Hallo zur Vereinfachung und Übersichtlichkeit würde ich das ganze so schreiben:

Code:
for(zaehler=0;zaehler<anzahlorders;zaehler++)
     { 
      bool Select = OrderSelect(zaehler, SELECT_BY_POS, MODE_TRADES);

      if (Select == True && OrderSymbol()== Symbol() && OrderMagicNumber()==MagicNumber) 
        { 
         offeneorders++; 
         if (OrderStopLoss() == 0) ordersohnestop++; 
        }  
     }

---Leopold---
  #14 (permalink)  
Alt 19.07.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Kenn mich mit den Schleifen nicht so aus.

Aber fängt er nicht sowieso bei 0 an zu zählen?
Eine Schleife an sich zählt gar nicht, diese wird solange ausgeführt bis eine Bedingung Diese abbricht.

Ich hoffe ich hab das richtig ausgedrückt.


---Leopold---
  #15 (permalink)  
Alt 19.07.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Sorry, ja ich meinte die falsche Deklaration von @MA-EA.

Es reicht aber völlig aus, zu schreiben:

if (OrderSelect(...) ) {
...
}

Falls false, dann wird die gesamte if-Abfrage ignoriert, incl. der if-Abfragen innerhalb der o.g. Abfrage.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #16 (permalink)  
Alt 19.07.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Stimmt, aber ich finde am Anfang ist es mit der eigenen deklaration leichter zu verstehn. Zumindest hab ich mir da immer leichter getan.

---Leopold---
  #17 (permalink)  
Alt 19.07.18
Mitglied
 
Registriert seit: Jun 2018
Beiträge: 63
Hippo25 befindet sich auf einem aufstrebenden Ast
Standard Komplette lösung

Ich werde immer die komplette Lösung des Problem hier am Ende anfügen.
Stichworte Filter Selekt select auswahl Order Auftrage Trades Filtern
PHP-Code:
//+------------------------------------------------------------------+
//|                                                 Offenetrades.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict


int MagicNumber;
int zaehler;


void OnTick()
  {
//---
   
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++)
     { 
      
bool Select OrderSelect(zaehlerSELECT_BY_POSMODE_TRADES);

      if (
Select == True && OrderSymbol()== Symbol() && OrderMagicNumber()==MagicNumber
        { 
         
offeneorders++; 
         if (
OrderStopLoss() == 0ordersohnestop++; 
        }  
     }
        
  
Comment (
              
"Offene Trades: ",offeneorders,"\n"
               "Offen ohne SL: "
,ordersohnestop,"\n"
              
               
               
);   
  }
//+------------------------------------------------------------------+ 
Danke an alle.

gruss
Hippo
Thema geschlossen

Lesezeichen


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 06:01 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------