Geschrieben 15. Februar 201115 Jr. comment_112831 Hi Leute, mal wieder ein Problemchen: gibt es in MT4 die Möglichkeit im EA zu erfahren, ob ein Trade ausgestoppt wurde?Möchte nämlich dann darauf reagieren.Stelle mir sowas wie ein Event oder eine Message wie in anderen Sprachen vor.Suche jetzt schon einige Zeit, aber hab leider noch nix gefunden. Danke schonmal! Melden
Geschrieben 15. Februar 201115 Jr. comment_112839 mal wieder ein Problemchen: gibt es in MT4 die Möglichkeit im EA zu erfahren, ob ein Trade ausgestoppt wurde?Stelle mir sowas wie ein Event oder eine Message wie in anderen Sprachen vor.Events gibt es bei MT4 (mal vom "Tick-Event" abgesehen) nicht. Dir bleibt also nur die eigenständige Überprüfung, indem du die Tradehistory durchgehst und/oder dir in einem Array die letztbekannten offenen Ticketnummern speicherst. Melden
Geschrieben 15. Februar 201115 Jr. comment_112861 Alternativ kann man natürlich auch im EA immer den aktuellen Kurs mit dem SL der offenen Trades vergleichen. Falls dieser dann gleich bzw. drunter/drüber ist, kann der EA ja eine Mail versenden, Sounds abspielen, Message Fenster öffnen oder was auch immer Du willst. Kurzum: man kann es problemlos bauen. Wenn Du es etwas näher definierst, bin ich gerne behilflich. Melden
Geschrieben 15. Februar 201115 Jr. comment_112865 Alternativ kann man natürlich auch im EA immer den aktuellen Kurs mit dem SL der offenen Trades vergleichen.Das könnte jedoch fehlschlagen, wenn der Trade (brokerseitig) bereits ausgestoppt wurde und sich erst danach ein Tick und damit der EA regt. Melden
Geschrieben 15. Februar 201115 Jr. comment_112870 Das könnte jedoch fehlschlagen, wenn der Trade (brokerseitig) bereits ausgestoppt wurde und xsich erst danach ein Tick und damit der EA regt.Was bedeuten würde, dass der Trade ausgestoppt wurde ohne das der Kurs jemals gekommen ist? War ja auch nur eine angedachte Alternative - das andere (Orderhistorie) geht natürlich auch. Kommt ja nun eh erstmal darauf an, wozu Bull das braucht. Wenn der Trade ausgestoppt wurde ist es ja eh vorbei - da macht ein Tick mehr oder weniger den Kohl nicht fett . Melden
Geschrieben 15. Februar 201115 Jr. comment_112871 Was bedeuten würde, dass der Trade ausgestoppt wurde ohne das der Kurs jemals gekommen ist?Ja. Was dir der Broker als Tick sendet, bleibt ihm überlassen. Oder man hat einen alternativen Data Feed. Wenn der Trade ausgestoppt wurde ist es ja eh vorbei - da macht ein Tick mehr oder weniger den Kohl nicht fett .Ein Tick spielt sicherlich keine Rolle, um eine Benachrichtigung zu senden. Allerdings steht im obigen Fall die Position nicht mehr als offen da (um über die Liste drüberzulaufen). Das hieße, man müsste sich die offenen Posis selber speichern, damit man überhaupt weiß, welche geprüft werden sollen. Melden
Geschrieben 15. Februar 201115 Jr. comment_112873 Am einfachsten denk ich, ist es, wenn du dir in einem Int-Array, jedesmal, wenn du eine Order aufgibst, das Orderticket merkst, es also an eine Stelle in das Array reinschreibst. Dann liest du zyklisch mit for(i=0; ialle offenen Orders aus und läßt dir deren Ordertickets ausgeben. Schließlich mußt du nur noch vergleichen, ob die Ordertickets, die du vom Server ausgelesen hast, alle in deinem Array sind. Ist in deinem Array ein Ticket, das nichtmehr am Server ist, dann weißt du, daß diese Position geschlossen wurde und du kannst dir eine Meldung ausgeben lassen. Ist ein bischen logischer Aufwand mit dem Vergleichen und dem Sortieren im Array, aber das Prinzip ist einfach... Melden
Geschrieben 15. Februar 201115 Jr. comment_112874 Allerdings steht im obigen Fall die Position nicht mehr als offen da (um über die Liste drüberzulaufen).Klingt einleuchtend. Nun ist es also an Bull zu sagen, was er genau will und dann können wir uns an die Umsetzung machen . Melden
Geschrieben 15. Februar 201115 Jr. comment_112876 Vorsicht: ich hab schon von Brokern gehört die um Mitternacht die OrderTickets irgendwie neu verteilen. Also wenn man sich das Ticket speichert kann das auch zu Problemen führen. Nur als Warnung. Edit: Man kann natürlich auch jedesmal die gesamte History durchgehen und schaun was als letztes geschlossen wurde, merkt sich die OrderCloseTime() der zuletzt geschlossenen Order, und das nächste mal sind alle Orders deren CloseTime darüber liegt "neu". Dann noch checken ob ausgestoppt oder TP oder einfach so geclosed. Melden
Geschrieben 15. Februar 201115 Jr. comment_112880 Klingt einleuchtend. Nun ist es also an Bull zu sagen, was er genau will und dann können wir uns an die Umsetzung machen .Hast du aber viel vor...Kerzenschatten EA, Excel Script und Bull EA.Wenn Whipsaw mit dem nächsten Rätsel kommt, ist aber auch schon wieder 3 Tage Goggle angesagt Melden
Geschrieben 15. Februar 201115 Jr. Autor comment_112887 Danke euch für eure wie gewohnt informativen Anregungen. Es ging mir darum, nach einem Fehltrade mal ein Päuschen einzulegen, also Zeit X verstreichen lassen, bevor er den nächsten Fehltrade aufmacht. Habe wie immer zu kompliziert gedacht und habe es zwischenzeitlich mit sowas wie " NextTradeTime = TimeCurrent() + (MinDelay * 60)" gelöst.Hat aber laut Optimizer nix gebracht, kostet Performance.Naja, war ein Versuch.Ändert aber nix an dieser Schwäche in MQL für zukünftige Probleme: wie stelle ich fest, wie der letzte Trade beendet wurde?Über Getlasterror zb. lassen sich ja alle möglichen Fehler flott ermitteln.An sowas hatte ich für Nichtfehler gedacht, scheint es aber nicht zu geben.Oder halt über einen Eventhandler, geht aber auch nicht. Aber, wenn ihr Profis sagt das nix gibt, dann habe ich ja heute gründlich gesucht und brauche nichtmehr weiter suchen.Somit hilft mir das schonmal ungemein, weil nix ist blöder, als wenn ich mir was zu Fuß zusammenstricke (zb jedesmal die Kurse vergleiche usw.) und später kommt jemand mit "hättest doch nur Funktion XY aufrufen brauchen". Danke euch nochmals. Melden
Geschrieben 16. Februar 201115 Jr. comment_112915 Hast du aber viel vor...Das ist der Vorteil am vollautomatisierten Handel - man kann zwischendurch auch mal was anderes tun, als immer auf den Chart zu starren oder Excel zu quälen ! Melden
Hi Leute,
mal wieder ein Problemchen: gibt es in MT4 die Möglichkeit im EA zu erfahren, ob ein Trade ausgestoppt wurde?
Möchte nämlich dann darauf reagieren.
Stelle mir sowas wie ein Event oder eine Message wie in anderen Sprachen vor.
Suche jetzt schon einige Zeit, aber hab leider noch nix gefunden.
Danke schonmal!