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)
-   -   Automatische Neu-Initialisierung anstoßen (http://www.expert-advisor.com/forum/showthread.php?t=3807)

KS23 15.08.14 13:28

Automatische Neu-Initialisierung anstoßen
 
Hallo liebe EA-Gemeinde!

Ich bin mir nicht ganz sicher, ob die Frage, die ich stellen möchte völlig trivial ist, aber ich stelle sie trotzdem mal... doch erstmal die Grundvoraussetzungen:

Ich habe einen EA geschrieben, der handelt so vor sich hin. Es sind immer maximal zwei Order gleichzeitig geöffnet. Da ich noch ein ziemlicher Neuling bin, ist mein EA relativ einfach und überschaubar. Aus diesem Grund bin ich auch der Meinung, dass man ihn nicht allzu lange aus den Augen lassen sollte. Mit Hilfe der MT4-App kann ich aber auch von unterwegs immer gucken, was mein EA macht und wenn es mir zu kritisch wird, oder die laufende Order aus dem Ruder läuft, kann ich mit dem Handy eingreifen und diese ggf. schließen.

Das Problem an der Sache ist jetzt folgendes: Mein EA (zuhause auf dem PC) öffnet eine Order mit einer eineindeutigen Ticketnummer; wenn ich jetzt aber von außerhalb diese Order wieder schließe, dann kriegt der EA das ja gar nicht mit. Für ihn läuft die Order ja noch, da er sie nicht selber geschlossen hat. Sprich, sobald ich von außerhalb EINMAL eingegriffen habe, tut mein EA nichts mehr bis ich abends nach hause komme.

Meine Vorstellung wäre es jetzt, dass das Programm merkt, dass von außerhalb eingegriffen wurde (das könnte ich mir ja noch vorstellen, wenn das Ticket ungültig wird) und dann einfach einen kompletten Neustart macht, alle Default-Parameter neu einliest, sich neu initialisiert und einfach bei NULL wieder anfängt.
Wie kann ich das programmieren? Wahrscheinlich gibt es einfach einen schon vorhandenen Funktionsaufruf zum Initialisieren?!?

Wenn dem so ist, dann tut es mir leid, dass ich so dumm gefragt habe... wenn nicht, dann freue ich mich sehr über jede Antwort, die kommt :)

Viele Grüße,
Kai

fxdaytrader 15.08.14 13:32

Regelmässig alle offenen orders zählen sollte ausreichend sein (filtern nach Symbol und/oder MagicNumber). Beispiele in diversen eas von mir oder über google (bspw. count open trades mql4) ...

KS23 15.08.14 13:41

:D:D Ok, stimmt... das ist ja einfach... hab ja schon fast befürchtet, dass ich einfach zu verschlungen denke ;)

Vielen Dank für die superschnelle Antwort!

Und wenn während der Laufzeit irgendwann keine offenen Trades mehr da sind, dann rufe ich einfach int start() wieder auf?! Sehe ich das richtig?

Und wie kann ich die Parameter neu einlesen? Die haben sich ja im Laufe der Zeit unter Umständen geändert.

fxdaytrader 15.08.14 13:43

int start wird bei jedem Tick aufgerufen.
Welche Parameter willst Du denn ändern?
Wenn KonditionXYZ Dann ändere ParmeterX ...

KS23 15.08.14 13:54

Wenn ich einen EA im MT4 auf einen Chart ziehe, dann kommt doch ein Fenster, in dem ich im Reiter "Input" meine Startwerte ändern kann... bei mir stehen hier auch so Zähler-Variablen drin, die ich global brauche... z.B. wieviele Trades gesamt, wieviele davon Verlust/Gewinn, wieviel Gewinn gesamt und lauter so Zeug.

Und wenn ich einen EA ganz neu starte, dann startet er ja mit genau DIESEN Werten... und im Terminal Expert steht dann beispielsweise
"13:51:26 EAName EURUSD,M5: initialized"

Und genau sowas hätte ich gerne, wenn von außen eingegriffen wird... so dass ich ganz sicher sein kann, dass er wirklich auch bei Null wieder anfängt.

fxdaytrader 15.08.14 13:56

Wenn Dein Ea kontinuierlich offene trades zählt, evtl. auch den Gewinn/Verlust/Pips schon geschlossener trades, dann muß da nichts resettet werden.

Wie auch immer, ich hoffe Du lässt den EA nur auf einem demokonto laufen. Wenn es um Echtgeld geht sollte der EA sicher sein, d.h. es sollte das Risiko daß dieser EA "Mist baut" auf 0 reduziert werden. Dazu gehört dann eben auch eine Abfrage aktuell offener trades, filter die verhindern daß mehrere trades zur selben Zeit unbeabsichtigt geöffnet werden, daß geprüft wird ob der SL auch gesetzt wurde, etc. pp. (das fehlt alles in den meisten EAs) ...

KS23 15.08.14 14:21

Ja, stimmt eigentlich... dann werde ich das mal noch reinbasteln und dann mal gucken (und testen) wie sich das bemerkbar macht.

Vielen Dank für deine Hilfe und auch für die Tipps zum Schluss!!!

Eine Frage würde ich dir gerne noch stellen (auch wenn sie gar nicht in diesen Thread rein gehört :mad: ... Sprich, ich das eigentlich gar nicht darf :eek: )

Kann ich die Anzahl Stellen nach dem Komma im MT4 festlegen oder kommt diese Festlegung vom jeweiligen Broker??
Ich habe nämlich mein EA programmiert und getestet mit 5 Stellen nach dem Komma und jetzt hab ich einen anderen Broker und jetzt sind da nur noch 4 Stellen nach dem Komma... das macht sich in der Funktionalität schon bemerkbar!
Woran liegt das, dass es mal so und mal so ist?

fxdaytrader 15.08.14 14:30

Zitat:

Zitat von KS23 (Beitrag 27180)
Woran liegt das, dass es mal so und mal so ist?

am broker. Aber auch soetwas kann ein ea erkennen und damit umgehen (google suchbegriff wäre bspw.: broker digit pip point adjust mql4) ...

fxdaytrader 15.08.14 14:42

Du könntest Deinen EA hier auch hochladen (mql4-Datei), evtl. schaut dann jemand mal drüber ...

Crashbulle 15.08.14 16:29

Das liegt am Broker.

Dieser liefert / arbeitet mit 4-Digits (Pip) oder 5-Digits (1/10 Pip = 1 Pipette, auch 1 Punkt genannnt).

Wenn du ihn auf 5-Digit geschrieben hast, kannst du ihn mit der Einschränkung auf 4-Digit verwenden, das du alle Kurswerte wie feste Entry oder Stop, TP,SL und TL durch 10 teilst.

Die meisten EA's arbeiten mit einer eingebauten Routine, welche beim 5-Digit diese automatisch auf 4-Digit kastriert. Hierbei gibst du dann für alle Broker nur noch die gleichen Pip-Werte ein unter fortfall der 5. Stelle.


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