Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habe einen Experten, mit dem ich versuche, die Ereignisse zu verarbeiten.
Ich erhalte Ereignisse, die nicht mit Aktionen übereinstimmen.
Entspricht genau einem Klick auf das Diagramm und einem Klick auf eine Schaltfläche
Ein umstrittenes Ereignis id=9(CHARTEVENT_CUSTOM), das erzeugt wird, wenn z.B. das Diagramm verschoben wird und es etwa 10 ähnliche Ereignisse gibt.
Das EreignisCHARTEVENT_OBJECT_ENDEDIT wurde nicht geprüft.
Alles andere ist unklar. Entweder stimmt die Beschreibung nicht mit der Ereignisnummer überein oder das Ereignis zum Erstellen eines Objekts wird beim manuellen Erstellen des Objekts falsch generiert.
Alles in allem: Bitte helfen Sie.
Es wäre besser, wenn Sie so vorgehen würden:
Wahrscheinlich mache ich etwas falsch, aber ich werde versuchen, genauer zu beschreiben, warum ich ein Missverständnis habe.
Sie ordnen zunächst numerische Korrespondenzen zu bereits zugeordneten numerischen Konstanten CHARTEVENT_XXXXXXXXXXX...
Wo kann ich sehen, welchen numerischen Wert die CHARTEVENT_XXXXXXXXXXX-Konstanten haben?
Ich konnte sie nicht finden, also habe ich experimentiert und herausgefunden, dassCHARTEVENT_KEYDOWN = 0 und CHARTEVENT_CLICK = 4 ist, was der Reihenfolge der Beschreibung dieser Konstanten in der Hilfe entspricht.
Ich habe den anderen Ereignissen entsprechend Nummern zugewiesen, so dass es ein Array event[10] gibt.
Leider verstehe ich Ihre Frage nicht. Was genau läuft schief?
Basierend auf meiner Nummerierung der Ereignisse und der Verwendung des Expert Advisors aus meinem vorherigen Beitrag:
Ich zeichne zum Beispiel eine Trendlinie -> EreignisCHARTEVENT_OBJECT_CHANGE,
verschieben Sie diese Zeile -> das EreignisCHARTEVENT_OBJECT_CHANGE,
Eigenschaften über das Menü ändern -> 2 EreignisseCHARTEVENT_CHART_CHANGE und CHARTEVENT_CUSTOM,
Entfernen Sie es durch Drücken von Entf -> Ereignis nur CHARTEVENT_KEYDOWN, (wenn die Ereignisnummerierung falsch ist, sollte es immer noch 2 Ereignisse geben, Entfernen und Tastendruck).
All dies basiert auf meiner Nummerierung.
Nächste...
Ich verwende einen Expert Advisor:
Zeichnen einer Trendlinie -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 Trendlinie 40716
diese Linie verschieben -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 Trendlinie 40716
Ich ändere die Eigenschaften über Menü -> ChartEvent :id=OBJECT_CHANGE, l=0 d=0.000000 s=H1 Trendline 40716 und ChartEvent :id=CHART_CHANGE, l=0 d=0.000000 s=
Die Situation hat sich nicht geklärt.
Für den Fall der Fälle:
MT5 64x - Build 458.
System ist W7 64x Home Extended.
Vielen Dank für Ihr Entgegenkommen ))
Wahrscheinlich mache ich etwas falsch, aber ich werde versuchen, genauer zu beschreiben, warum ich ein Missverständnis habe.
Wo kann ich den numerischen Wert der CHARTEVENT_XXXXXXXXX-Konstanten finden?
Ich konnte sie nicht finden, also habe ich experimentiert und herausgefunden, dassCHARTEVENT_KEYDOWN = 0 und CHARTEVENT_CLICK = 4 ist, was der Reihenfolge der Beschreibung dieser Konstanten in der Hilfe entspricht.
Ich habe die übrigen Ereignisse entsprechend nummeriert, und so ist das Array event[10] entstanden.
Dies darf auf keinen Fall geschehen!
Numerische Werte werden vom Entwickler zugewiesen und können jederzeit geändert werden.
Es können nur Zeichenkonstanten verwendet werden
--------------
uncleVic gab Ihnen ein Beispiel für die korrekte Verwendung (oder mein Hilfesnippet)
--------------
Was machen Sie da? Warum brauchen Sie eine numerische Darstellung?
Dies darf unter keinen Umständen geschehen!
Numerische Werte werden vom Entwickler zugewiesen und können jederzeit geändert werden.
Es können nur Zeichenkonstanten verwendet werden
GUT. Ich stimme zu, dass Sie das nicht tun dürfen.
Vergessen Sie meine praktische Arbeit).
Weiter geht's...
uncleVic hat Ihnen ein Beispiel für die richtige Verwendung gegeben (oder meine Hilfe)
Wie ich oben geschrieben habe, erhält man mit dem Beispielvon uncleVic auch Ereignisse, die nicht mit der Aktion übereinstimmen.
kPVT:
Zeichnen einer Trendlinie -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 Trendlinie 40716 Anstelle vonCHARTEVENT_OBJECT_CREATE.
.....
Was machen Sie da? Warum brauchen Sie eine numerische Darstellung?
Das ist eine lange Erklärung, und sie ist auch nicht wichtig. Vergessen wir meine Nummerierung.
Die Hauptsache ist, dass ich versuche, den Ereignissen einen Sinn zu geben, aber selbst mit dem Beispielvon uncleVic verstehe ich die Inkonsistenz zwischen den erzeugten Ereignissen und den durchgeführten Aktionen nicht.
GUT. Ich stimme zu, dass man das nicht tun kann.
Vergessen Sie mein Ringen mit den Händen).
Weiter geht's...
Wie ich oben geschrieben habe, erhält man mit dem Beispielvon uncleVic auch Ereignisse, die nicht mit der Aktion übereinstimmen.
kPVT:
Fügen Sie es der Initialisierung hinzu:
Es wird alles gut:
Alex, vielen Dank, du hast das Problem gelöst.
Zur Initialisierung hinzufügen:
....
Zum Expertenblock hinzugefügt
Alles ist an seinem Platz.
In der Hilfe steht nirgends geschrieben, dass diese beiden Ereignisse "initialisiert" werden müssen, damit alle anderen Ereignisse korrekt ablaufen.
Ich habe sie auskommentiert und alles funktioniert.
Es stellt sich heraus, dass, wenn Expert Advisor/Indikator nicht über OnInit-Block, es mit den Ereignissen durcheinander bringt.
Vielleicht ist es die Idee, aber mql5-Programmierer sollten es wissen, nur für den Fall.
Ich habe einen Expert Advisor in Wizard generiert, aber Tester gibt Fehler Core 1 Tester gestoppt, weil OnInit kritischen Fehler, hat jemand begegnet? Wie ist es gelöst? Nach allem, Wizard, würde ich etwas dort durcheinander gebracht haben...
Hängen Sie den resultierenden Quellcode an. Und Testparameter.
Es hat sich nicht reproduziert.
Ich habe um weitere Testparameter gebeten. Das habe ich:
Sowohl Version als auch Bitrate von MT5.