Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Datei per #include einbinden (http://www.expert-advisor.com/forum/showthread.php?t=5137)

knopf009 27.08.16 14:12

Datei per #include einbinden
 
Hallo Trader,

ich möchte eine Datei einbinden, deren Namen dynamisch mit Variable erstellt wird bzw. die MagicNr enthält. Wie kann ich das machen?

Denn wenn ich die Doku richtig verstanden habe, wird ein bestehender, fester Name verlangt und Vars nicht akzeptiert...

VG Andreas

Trader6666 27.08.16 19:45

Zitat:

Zitat von knopf009 (Beitrag 35546)
Hallo Trader,

ich möchte eine Datei einbinden, deren Namen dynamisch mit Variable erstellt wird bzw. die MagicNr enthält. Wie kann ich das machen?

Denn wenn ich die Doku richtig verstanden habe, wird ein bestehender, fester Name verlangt und Vars nicht akzeptiert...

VG Andreas



Hi Andreas,


also bei mir hats geklappt mit ner Variablen, probiers einfach mal mit
Code:

extern int MagicNumber = 1111;

wenn du deinen EA aufrufst, kannst du die MagicNumber beliebig festlegen und kannst so mehrere Werte mit dem gleichen EA handeln. Das is doch dein Anliegen oder?!Hatte das vor einiger Zeit probiert und hat auch geklappt, etwas tricky wirds nur wenn du dann die Posi´s via EA managen möchtest , da brauchst dann ne Variable , damit du auch die richtige Order erwischst.

knopf009 27.08.16 19:54

vielen Dank für deine Antwort.

Aber wie leider so oft habe ich mich etwas missverständlich ausgedrückt.

Mein Problem ist folgendes:

meinen EA lasse ich über verschiedene Symbole mit jeweils verschieden
Ein/Ausstiegsparametern laufen, die ich aktuell als externe Vars einbinde.

Wenn ich nun den EA neu initalisiere, sind diese ja natürlich bei allen Symbolen weg.

Nun muss überall wieder alle Werte eintragen, was sehr umständlich ist.

Deshalb möchte ich die spezifischen Werte per Datei einbinden.
Aber so wie ich es in der Doku gelesen (und auch ausprobiert) habe, kann man keine dynamischen Dateibezeichnungen bei #include verwenden.

Deshalb meine Frage, wer hier eine Lösung kennt...

traderdoc 27.08.16 22:48

Zitat:

Zitat von knopf009 (Beitrag 35550)
vielen Dank für deine Antwort.

Aber wie leider so oft habe ich mich etwas missverständlich ausgedrückt.

Mein Problem ist folgendes:

meinen EA lasse ich über verschiedene Symbole mit jeweils verschieden
Ein/Ausstiegsparametern laufen, die ich aktuell als externe Vars einbinde.

Wenn ich nun den EA neu initalisiere, sind diese ja natürlich bei allen Symbolen weg.

Nun muss überall wieder alle Werte eintragen, was sehr umständlich ist.

Deshalb möchte ich die spezifischen Werte per Datei einbinden.
Aber so wie ich es in der Doku gelesen (und auch ausprobiert) habe, kann man keine dynamischen Dateibezeichnungen bei #include verwenden.

Deshalb meine Frage, wer hier eine Lösung kennt...

Da haut was nicht hin. Die Werte der externen Variablen bleiben doch erhalten, auch nach eine erneuten Initialisierung.

traderdoc

knopf009 28.08.16 10:23

Hi Traderdoc,

vielen Dank für deine Antwort.

Da du auf meine Frage nicht eingegangen bist, nehme ich an, die Einbindung von Dateien per #include kann nicht dynamisch erfolgen.

Besten Dank für eure Bemühungen.

VG Andreas

traderdoc 28.08.16 12:07

So, wie Du bisher Deine Herausforderung dargestellt hast, braucht man dazu weder den Preprozessor-Befehl #include noch sonst eine dynamische Variante der Variablenverwaltung.
Auf jedem Chart läuft eine separate Instanz Deines EAs. Und jede einzelne Instanz hat Ihren spezifischen Variablensatz, speicherbar in eine Set-Datei und damit jederzeit wieder ladbar.
Nur noch einmal, wenn ein EA neu initialisiert wird, dann gehen keine Variablen verloren, wenn sie über extern deklariert und initialisiert wurden.

Ich verstehe demnach nicht, wie diese Werte der externen Varialblen plötzlich weg sein können!

Evtl. solltest Du nochmals die Problematik eineindeutig schildern, denn nur wenn wir die Aufgabenstellung verstehen, kann man helfen.

traderdoc

knopf009 28.08.16 12:15

Ok, das leuchtet ein.

Also: nehmen wir an, ich habe 2 externe Vars:

extern int magicNr = 5000;
extern int sl;

Wenn ich jetzt verschiedene Sachen neu programmiere, dann steht nach einer erneuten Kompilierung magicnr nach wie vor bei 5000, sl aber auf 0.
(zumindest hat er es bei mir manchmal so gemacht)

Deswegen hört sich das für mich super mit der Set-Datei an...
Wo finde ich die und wie wird sie eingebunden bzw. geladen?

traderdoc 28.08.16 12:40

Tja!, wenn sl extern deklariert, aber nicht initialisiert wird, dann steht diese Variable wieder auf 0, wenn der EA neu initialisiert wird. Nur, warum wird dieser Variablen kein Wert zugewiesen? Selbst wenn er sich im Programm ändern sollte, würde dann nach der Neuinitailisierung wenigsten dieser Wert lt. externer Variable wieder rekonstruiert werden.

Ansonsten nach Aufrufen der Eigenschaften des EA per Tatse F7 den Wert für sl vergeben und unten das Set der Variablen abspeichern bzw. wieder laden.

traderdoc

knopf009 28.08.16 13:23

vielen Dank für deine Antwort.

Manche Vars möchte ich mit keinem Wert vorbelegen, da dies u.U. zu unerwünschten Handlungen bei dem Symbol kommen kann.

Akt. läuft der EA auf ca. 80 Symbolen und wenn ich dann am WE eine neue Version aufspiele, habe ich ganz schön mit eintippen zu tun.

Deshalb möchte ich meine Symbol-spezifischen Werte zum EA gesondert speichern und beim initalisieren (oder man. Aufruf) neu laden lassen.

Kannst du mir sagen, wo ich in der Doku dazu nachlesen kann?

knopf009 28.08.16 13:25

...bzw. wie kann ich das SET per mql im EA aufrufen und laden?


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:52 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum