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)
-   -   Include Dateien schreiben (http://www.expert-advisor.com/forum/showthread.php?t=6491)

AVT 28.08.19 14:58

Include Dateien schreiben
 
Hab ich noch nicht gemacht, denke aber das würde den Hauptcode entlasten und lesbarer machen (anstelle vieler immer wieder genutzter Funktionen). Wenn ich mir die Datei Include/MovingAverages.mqh durchlese, dann ist das doch nichts anderes als das, was in einem Indikator in OnCalculate auch "von Hand" gerechnet werden könnte.

Ich würde also das, was bisher in meinen Funktionen steht, einfach ein eine Inlcude Datei schreiben. Ist das so korrekt oder gibt es Sachen, auf die ich achten muß? Danke. AVT

Ca$hDigger 28.08.19 21:28

Zitat:

Zitat von AVT (Beitrag 42779)
Ich würde also das, was bisher in meinen Funktionen steht, einfach ein eine Inlcude Datei schreiben

Nicht nur "was in den Funktionen steht" sondern unbedingt die ganze Funktion.

Include ist nichts weiter als ein Stellvertreter für den Code der sich in der inlude Datei befindet.
Beim Kompilieren wird dann durch den Präprozessor automatisch der Code aus der inlude Datei exakt an die Stelle eingefügt an dem das Include steht.

AVT 29.08.19 12:36

:) Super, danke Ca$hDigger, das erleichtert die Sache ungemein.

Zitat:

Zitat von Ca$hDigger (Beitrag 42780)
Nicht nur "was in den Funktionen steht" sondern unbedingt die ganze Funktion.

Ja, das war klar, die MovingAverages.mqh enthält ja auch kompletten Funktionen, die später mit den übergebenen Werten aufgerufen werden.

Zitat:

Zitat von Ca$hDigger (Beitrag 42780)
Include ist nichts weiter als ein Stellvertreter für den Code der sich in der inlude Datei befindet. Beim Kompilieren wird dann durch den Präprozessor automatisch der Code aus der inlude Datei exakt an die Stelle eingefügt an dem das Include steht.

Also wenn ich das richtig verstehe könnte ich auch auch den gesamten Header (#defines, #resources) und alle internen globalen Variablen da rein packen z.B. das als InternalGlobes.mqh?

Noch ne Frage bitte:
Ich habe die ganzen Painting Funktionen und alle Messages "umgeschichtet". Die Painting z.B. PaintHLine(...) hat eine Error-Message drin, falls das Object nicht erstellt werden kann.
- Muß ich an den Anfang der Painting.mqh noch ein #include <Messages.mqh> setzten (die Objects.mqh schließt z.B. StdLibErr.mqh ein)
- oder wäre das doppelt gemoppelt und es reicht, wenn die Messages.mqh vor der Painting.mqh eingeschlossen wird (was in der Vorgehensweise dem alten, un-ausgelagertem Code entsprechen würde).
Danke. AVT

daybyter 30.08.19 02:33

Ich hab mir so ein kleines Framework mit Klassen geschrieben, die ich oft brauche. Vielleicht wäre das auch was für Dich.

AVT 30.08.19 11:33

Zitat:

Zitat von daybyter (Beitrag 42784)
Ich hab mir so ein kleines Framework mit Klassen geschrieben, die ich oft brauche. Vielleicht wäre das auch was für Dich.

Oh ja, wäre super wenn ich das mal lesen könnte, vielleicht kann ich daraus lernen :) AVT

Leopold 30.08.19 11:39

Würde mich auch interessieren. Damit hab ich mich noch gar nicht auseinandergesetzt.

daybyter 30.08.19 14:49

Guggemal:

https://github.com/daybyter/ARF?files=1

AVT 30.08.19 15:41

Zitat:

Zitat von daybyter (Beitrag 42788)

:eek: Uiii, danke danke!! Da habe ich fürs ganze Wochenende Lesestoff (alles Zeile für Zeile durchgehen und sehen wie das funktioniert). AVT :D

daybyter 30.08.19 16:41

Liste der Anhänge anzeigen (Anzahl: 1)
Die ganzen Sources sind leider nicht vollständig, weil ich immer nur an den Teilen arbeite, die ich selbst gerade benötige. Und schlecht dokumentiert sind sie noch dazu.

Entschuldigung dafür!

Vielleicht ist es einfacher, wenn Du Dir eines der Demo Programm ansiehst, was ich damit geschrieben hab. Siehe Anhang hier.

Eines meiner Hauptanliegen war automatische Trailing Stops zu haben. D.h. Du setzt einen Stop auf z.B. -100 und wenn der Kurs steigt, bleibt der Stopp immer 100 Punkte unter dem Kurs. Geht er wieder runter, wirst Du ausgestoppt. Das reicht oft schon aus, um in den Gewinn zu kommen. Ausserdem wollte ich automatische Teilverkäufe haben. Man kann also sagen, dass bei 10 Punkten Profit 33% verkauft werden, oder so. Ich glaub aber, dass ist in diesem Demoprogramm noch gar nicht drin.

Vermutlich sind auch noch so einige Fehler in den Sources. Aber vielleicht gefällt Dir ja die Idee...

Ciao,
Andreas

AVT 30.08.19 19:19

Zitat:

Zitat von daybyter (Beitrag 42790)
Die ganzen Sources sind leider nicht vollständig, weil ich immer nur an den Teilen arbeite, die ich selbst gerade benötige. Und schlecht dokumentiert sind sie noch dazu.
Entschuldigung dafür!

Macht nix, ich werde da schon irgendwie durchkommen :)

Zitat:

Zitat von daybyter (Beitrag 42790)
...
Vermutlich sind auch noch so einige Fehler in den Sources. Aber vielleicht gefällt Dir ja die Idee...

Ich setze grade so was ähnliches aus fertigen Einzelprogrammen zusammen aber das wird jetzt beim 3. Teil so unübersichtlich, daß ich erst mal irgendwie optimieren muß. AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:29 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