Für was, einen EA oder manuellem Handel, MT4 oder MT5?
- Du könntest aus dem Symbol eine Hash-Nummer erzeugen, Achtung bei Kollisionen und bei der Länge (muss int sein also -2 147 483 648 ... 2 147 483 647): https://www.mql5.com/en/code/277
- Das ginge eventuell auch: https://www.mql5.com/en/code/9808
- Index der Liste aus der Marktübersicht (Marketwatch) mit SymbolsTotal()), SymbolName SymbolsTotal()
- Mach eine Liste mit Deinen Symbolen und verwende den Index,
- Mach einen Zeichenkette Deiner Symbole ("EURUSD;EURCHF;..) und nimm den Index des Anfangsbuchstabens (StringFind(..) ).
Aaaber Fragen zu mt4 gehören in den Thread ganz unten! Alles andere ist für MT5.
Ich werde ihn später verschieben!

- Stimmen: 5
- 2010.07.21
- Thomas
- www.mql5.com
Ich benutze folgende Logik. Ein Integer hat 32 bit: 11111111111111111111111111111111 = 32 bit = 0xFFFFFFFF = uint 4294967295 1000000000 = 10 bit = 0x0200 = uint 512
Jede Strategie hat bei mir eine eindeutige ID, die bei 1 anfängt. Sie wird in den ersten 10 bit der MagicNumber gespeichert. Damit habe ich Platz für 512 verschiedene Strategien, das scheint für die nächsten Jahre "ausreichend" zu sein.
Die restlichen 22 Bit benutze ich für eine eindeutige Instanz-ID, die zur Laufzeit generiert wird. Diese ID ist unabhängig vom Symbol und ermöglicht mir 4.194.303 gleichzeitige Instanzen derselben Strategie, ein Limit, das ich wohl kaum erreichen werde.
Will ich eine neue ID generieren, schaue ich in der History nach der zuletzt verwendeten ID und zähle diese um eins hoch. Das bedeutet, daß sich die IDs nach 4 Millionen Instanzen wiederholen werden. Damit kann ich leben.
Mit dieser Methode kann ich über die MagicNumber einerseits schnell eine einzelne Instanz selektieren/ansprechen. Andererseits kann ich aber genauso schnell eine ganze Gruppe von Instanzen selektieren/ansprechen. Das ist von Vorteil, wenn ich z.B. von einer Strategie maximal 3 gleichzeitig auf beliebigen Symbolen laufen lassen möchte (Carl nennt das "Klumpenrisiko" :-)). Auch ist es hiermit möglich, mehrere Instanzen einer Strategie auf demselben Symbol laufen zu lassen, z.B. mit unterschiedlichen Parametern oder auf unterschiedlichen Timeframes.
Die Aufteilung 10 bit für Strategie und 22 bit für Instanz läßt sich nach Belieben verschieben. Man kann sogar noch weiter gehen und in 32 bit noch ganz andere Laufzeitdaten speichern (Grid-Level, hidden StopLoss-Level, etc). Sowas ist hilfreich, wenn man eine Strategie auf einer Maschine (Laptop im Cafe) startet und diese dann durch einen Expert auf einer anderen Maschine (dedicated Server oder VPS) übernehmen und managen lassen möchte.
Falls Interesse besteht, kann ich gern etwas Code posten.
Hallo,
ich mache es ganz einfach, in dem Bereich init folgendes:
//DEFINITIONEN
if( Symbol() == "EURNZD" ) { Magic = 100; evt. gleich noch die Einstellungen dazu .. }
if( Symbol() == "GBPCHF" ) { Magic = 101; evt. gleich noch die Einstellungen dazu .. }
if( Symbol() == "GBPCAD" ) { Magic = 102; evt. gleich noch die Einstellungen dazu .. }
...
So wird die Magic für jedes Symbol mit den Einstellungen geladen.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hi,
Bevor ich jedes mal mein EA starten will, muss ich leider vorher bei allen Währungen die Magic Nummer manuell eingeben :-(
Weiß jemand vielleicht bitte wie ich diese automatisch generieren kann?
Danke sehr im Voraus :-)
Gruss