Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4294
Beiträge: 39577
Benutzer: 6.607
Aktive Benutzer: 218
Links: 80
Wir begrüßen unseren neuesten Benutzer: Carstn
Mit 1.311 Benutzern waren die meisten Benutzer gleichzeitig online (vor 4 Tagen um 01:18).
Neue Benutzer:
vor 2 Stunden
- Carstn
vor 6 Tagen
- dellinger
vor einer Woche
- SABA
vor einer Woche
- artfeld
vor einer Woche
- sonnejian

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 15.06.19
Neues Mitglied
 
Registriert seit: Aug 2017
Beiträge: 7
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard Selektiertes Ordersymbol() feststellen, Schleife

Hallo,
ich versuche in einer Schleife (mql4, über alle offenen Orders) das gerade selektierte Ordersymbol (DAX, EURUSD etc.) auszulesen um individuell darauf reagieren zu können.

Mit der Dokumentation bei mql5.com habe ich noch so meine Probleme, vielleicht könnte mir hier jemand einen Tipp geben, wie ich das fehlerfrei hin bekomme.
Jetzt, am Wochenende, kann ich leider nicht ausprobieren weil ich keine Order öffnen kann um dann das Symbol mit dem EA auszulesen.


So sieht die Schleife aus:
Code:
  for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {    
          // hier sollte zuerst das Ordersymbol abgefragt werden, geht das?:
            if (StringFind(OrderSymbol(), "EURUSD",0) >0 {
          }
      }
Danke für Eure Ideen!

Gruß
Werner
Mit Zitat antworten
  #2 (permalink)  
Alt 15.06.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.222
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Code:
for (int i = OrdersTotal()-1; i >= 0; i--) {
   if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {    
      if (OrderSymbol() == Symbol()) {
      
      }
   }
}
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 15.06.19
Neues Mitglied
 
Registriert seit: Aug 2017
Beiträge: 7
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard Das war es nicht ganz, was ich meinte

Hallo traderdoc,
danke, für die Antwort. Das war es leider nicht ganz, was ich meinte. Da hab ich mich etwas ungeschickt ausgedrückt: Das jeweils selektierte Symbol der Schleife (aller geöffneten Orders) hat mit dem Symbol des Charts nicht automatisch etwas gemeinsam. Trotzdem muss der EA darauf reagieren und z. B. einen SL setzen oder einen Teilverkauf machen o. ä.

Code:
  for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {    
          // hier sollte zuerst das Ordersymbol abgefragt werden, geht das?:
            if (StringFind(OrderSymbol(), "EURUSD",0) >0 { mach das...};
            if (StringFind(OrderSymbol(), "[DAX30]",0) >0 { mach was anderes...};
            if (StringFind(OrderSymbol(), "[WTI]",0) >0 { mach jetzt das...};
          
      }
Die Anzahl der If's ist noch nicht klar, wahrscheinlich werde ich später switch verwenden.

Mir geht es hauptsächlich darum, wie ich das selektierte Symbol in der Schleife präzise auslese um individuell darauf reagieren zu können.

Das Dumme ist, dass ich am Wochenende nicht live testen kann und die ganze nächste Woche komme ich nicht dazu. Deswegen wollte ich das noch am Wochenende erledigt haben.


OrderSymbol() spricht das selektierte Symbol im Pool an, oder? Und Symbol() das Symbol des Charts, in den der EA eingebunden ist.
------
Diese Vorgehensweise hat letzte Woche bei mir zu wenigstens 1x zu einem fehlerhaften Verhalten geführt. Deswegen frage ich jetzt nach, ob es eine bessere Methode gibt.

Code:
if (OrderSymbol() == "[DAX]") {...}
if (OrderSymbol() == "EURUSD") {...}
if (OrderSymbol() == "WTI") {...}
Gibts vielleicht noch eine andere Idee, die ich testen könnte?

Vielen Dank!

Gruß
Werner
Mit Zitat antworten
  #4 (permalink)  
Alt 15.06.19
Neues Mitglied
 
Registriert seit: Aug 2017
Beiträge: 7
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard Das war es nicht ganz, was ich meinte

Hallo traderdoc,
danke, für die Antwort. Das war es leider nicht ganz, was ich meinte. Da hab ich mich etwas ungeschickt ausgedrückt: Das jeweils selektierte Symbol der Schleife (aller geöffneten Orders) hat mit dem Symbol des Charts nicht automatisch etwas gemeinsam. Trotzdem muss der EA darauf reagieren und z. B. einen SL setzen oder einen Teilverkauf machen o. ä.

Code:
  for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {    
          // hier sollte zuerst das Ordersymbol abgefragt werden, geht das?:
            if (StringFind(OrderSymbol(), "EURUSD",0) >0 { mach das...};
            if (StringFind(OrderSymbol(), "[DAX30]",0) >0 { mach was anderes...};
            if (StringFind(OrderSymbol(), "[WTI]",0) >0 { mach jetzt das...};
          
      }
Die Anzahl der If's ist noch nicht klar, wahrscheinlich werde ich später switch verwenden.

Mir geht es hauptsächlich darum, wie ich das selektierte Symbol in der Schleife präzise auslese um individuell darauf reagieren zu können.

Das Dumme ist, dass ich am Wochenende nicht live testen kann und die ganze nächste Woche komme ich nicht dazu. Deswegen wollte ich das noch am Wochenende erledigt haben.


OrderSymbol() spricht das selektierte Symbol im Pool an, oder? Und Symbol() das Symbol des Charts, in den der EA eingebunden ist.
------
Diese Vorgehensweise hat letzte Woche bei mir zu wenigstens 1x zu einem fehlerhaften Verhalten geführt. Deswegen frage ich jetzt nach, ob es eine bessere Methode gibt.

Code:
if (OrderSymbol() == "[DAX]") {...}
if (OrderSymbol() == "EURUSD") {...}
if (OrderSymbol() == "WTI") {...}
Gibts vielleicht noch eine andere Idee, die ich testen könnte?

Vielen Dank!

Gruß
Werner
Mit Zitat antworten
  #5 (permalink)  
Alt 16.06.19
Neues Mitglied
 
Registriert seit: Aug 2017
Beiträge: 7
fintrad0 befindet sich auf einem aufstrebenden Ast
Standard Vielen Dank!

Vielen Dank für die Antwort!
Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:18 Uhr.


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