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: 4358
Beiträge: 39953
Benutzer: 6.705
Aktive Benutzer: 205
Links: 80
Wir begrüßen unseren neuesten Benutzer: narnia57
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (vor 6 Tagen um 22:38).
Neue Benutzer:
vor 3 Tagen
- narnia57
vor 5 Tagen
- Ondragon
vor 6 Tagen
- sar_trader
vor einer Woche
- Solari
vor einer Woche
- simplepips

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

Empfehlungen

Thema geschlossen
 
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
  #2 (permalink)  
Alt 15.06.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.270
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.
  #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
  #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
  #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!
Thema geschlossen

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 +1. Es ist jetzt 04:43 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2020 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.
-----------------------------------------------------------------------------------------------------------------------------