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: 4973
Beiträge: 43249
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 3 Stunden
- Thomas75
vor 17 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 11.05.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard Liste mit allen Ausprägungen von SYMBOL

Hallo,

ich arbeite gerade an einem EA.

Die Methodensignatur von OrderSend() erfordert ja u.a. die Übergabe eines Wertes für SYMBOL.

Ich wusste zuerst nicht, was mit SYMBOL gemeint ist. Eine Suche hat dann ergeben, dass SYMBOL anscheinend ein Text-String ist, welcher angibt welches Wertpapier gerade gehandelt wird.

Bei mir sollen aktuell CFD gehandelt werden. Allerdings ist "CFD" vielleicht nicht das Symbol das ich brauche (gibt ja vielleicht mehrere unterschiedliche CFD) und überdies kann es ja sein, dass ich irgendwann mal was anderes handeln will.

In einem Beispiel-EA den ich gefunden habe, wurde das so gelöst, dass anstelle eines konkreten Werts für Symbol einfach nur "Symbol()" übergeben wurde. Symbol() gibt offenbar das Symbol zurück, das zuletzt gehandelt wurde.

Eine testweise Anwendung des u.g. Codes hat bei mir USDCHF als Wert für Symbol ausgegeben (also nicht den von mir erwünschte Symbol für CFD, d.h. in dem Fall hätte die Anwendung von Symbol() zu einem unerwünschten Resultat geführt):

Code:
void OnStart()
  {
   test5();
 
}


void test5()
  {

   Print(Symbol());

}

Somit ist die Lösung, Symbol() als Wert in die Methodensignatur von
OrderSend() zu übergeben, vielleicht nicht unbedingt immer die beste oder die einzige mögliche Lösung. Z.B. könnte es passieren, dass, wie im vorliegenden Fall, ein falscher Wert übergeben wird. Überdies wird so vereitelt, dass Z.B. Symbol als Input-Variable verwendet werden kann.

--

Ich würde daher lieber nicht mit Symbol() arbeiten, sondern direkt den Text-String eingeben, der mein zu handelndes Wertpapier codiert. Womöglich auch unter Verwendung einer Input-Variablen.

Um das zu bewerkstelligen habe ich, auch in der MQL-Reference, nach einer Liste mit allen möglichen Werten für SYMBOL gesucht. Bisher habe ich eine solche Liste aber nicht gefunden.

Womöglich habe ich nur falsch gesucht?

Wo könnte ich eine solche Liste finden? Oder wo ist ggf. mein Denkfehler?

Ich bedanke mich für jeden konstruktiven Beitrag!

Grüße ,
LQK
  #2 (permalink)  
Alt 11.05.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

"Symbol() gibt offenbar das Symbol zurück, das zuletzt gehandelt wurde."

Nein, Symbol() gibt den String des Handelsinstrumentes zurück, auf dessen Chart sich das Programm befindet.

Eine Liste an Handelsinstrumenten, die man per Code aufrufen könnte ist mir nicht bekannt.

Jedoch kann man die Anzahl der verfügbaren Handelsinstrumente mit
SymbolsTotal(bool selected) abfragen und die Handelsinstrumente dann als solche mit SymbolName(int pos, bool selected).

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 12.05.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
"Symbol() gibt offenbar das Symbol zurück, das zuletzt gehandelt wurde."

Nein, Symbol() gibt den String des Handelsinstrumentes zurück, auf dessen Chart sich das Programm befindet.

Eine Liste an Handelsinstrumenten, die man per Code aufrufen könnte ist mir nicht bekannt.
Besten Dank, damit ist meine Frage voraussichtlich beantwortet. Das erklärt auch, warum bei mir USDCHF zurückgegeben wurde.

Die Dokumentation von MQL ist bei Symbol() nämlich recht allgemein gehalten, da steht einfach nur:

A text string with the name of the current financial instrument.

Quelle:
https://docs.mql4.com/chart_operations/symbolwindow


Zitat:
Jedoch kann man die Anzahl der verfügbaren Handelsinstrumente mit
SymbolsTotal(bool selected) abfragen und die Handelsinstrumente dann als solche mit SymbolName(int pos, bool selected).

traderdoc
Danke auch für diese Info. Das werde ich mir mal ansehen, wenn ich wieder daran arbeite.
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 15:12 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.
-----------------------------------------------------------------------------------------------------------------------------