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: 4256
Beiträge: 39367
Benutzer: 6.577
Aktive Benutzer: 257
Links: 80
Wir begrüßen unseren neuesten Benutzer: festus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 8 Stunden
- festus
vor 2 Tagen
- lovetradin...
vor 2 Tagen
- schwarz
vor 2 Tagen
- viethommy
vor 2 Tagen
- earasa

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 123
Gesamt: 123
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.208
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 vor 4 Wochen
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 06:12 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.
-----------------------------------------------------------------------------------------------------------------------------