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
Yedelkin:
Erläuterung. Wenn ein Expert Advisor keine Ticks für ein Symbol verarbeitet, mit dem er an einen Chart angehängt ist, führt die kontinuierliche Erzeugung vonNewTick-Ereignissen für dieses Symbol zu einem Überlauf der Warteschlange der von diesem EA verarbeiteten Ereignisse.
Wie meinen Sie das?
Es gibt kein OnTick() im Expert Advisor, aber NewTick-Ereignisse werden in die Warteschlange gestellt?
Woher wissen Sie, was die Warteschlange analysiert hat? )
Ich konnte keine Möglichkeit finden, den Tick-Stream(NewTick-Ereignis) für das Symbol mit dem an den Chart angehängten Expert Advisor zu deaktivieren, falls erforderlich.
Ich habe das Gefühl, dass ich von Sonntag bis Freitag ohne jegliche Pause gearbeitet habe... :))
Wie meinen Sie das?
Woher wussten Sie...?
Ich habe es auf zwei Arten gelernt. Zunächst habe ich mich mit der Kombination EventChartCustom - OnChartEvent am Beispiel eines einfachen Expert Advisors vertraut gemacht, der Indikatorsignale von fremden Symbolen sammelt. Gleichzeitig arbeitete der Expert Advisor nicht mit den Ticks seines eigenen Symbols, die Funktion Ontick() im Code des Expert Advisors wurde auskommentiert. Beim Ausführen des EA im Testprogramm habe ich festgestellt, dass die Laufzeit unterschiedlich ist, je nachdem, welches Symbol an den EA angehängt ist. Siehe z. B. das folgende Beispiel. Mit den gleichen Optimierungsparametern sind die Laufzeiten deutlich unterschiedlich.
Expert Advisor hat kein OnTick(), während NewTick-Ereignisse in die Warteschlange gestellt werden?
Um die Antwort auf diese Frage (die zweite Methode) zu überprüfen, habe ich den Code des Expert Advisors wie folgt geändert
d.h. ich habe eine Linie mit gelbem Hintergrund eingefügt, um den Erhalt neuer Ticks durch das Symbol zu erkennen. Die Ergebnisse zeigen, dass die Ticks für das Symbol, mit dem der Expert Advisor verbunden ist, regelmäßig empfangen werden:Nun, da das Handbuch sagt : "NewTick event is generated wenn ein neuer Tick von einem Symbol empfangen wird, an dessen Diagramm der Expert Advisor angeschlossen ist"Die Tatsache, dass neue Ticks empfangen werden, sollte dazu führen, dass das EreignisNewTick erzeugt wird.
Ihrer Frage nach zu urteilen, denken Sie, dass keine NewTick-Ereignisse erzeugt werden, wenn OnTick() deaktiviert ist? Ich habe jedoch im Handbuch keine derartigen Informationen gefunden.
Es fühlt sich an, als hätten Sie von Sonntag bis Freitag ohne Pause gearbeitet... :))
d.h. ich habe eine gelb hinterlegte Zeile eingefügt, um zu erkennen, ob neue Ticks durch ein Symbol eingehen. Anhand der Ergebnisse können Sie erkennen, dass die Ticks von
zu dem Symbol, an das der Expert Advisor gebunden ist, regelmäßig empfangen werden:
haben Sie überprüft, welches Ereignis OnChartEvent aufgerufen wird, bevor Sie die benutzerdefinierte aufrufen?
-------------
wenn
Sie geben einen einfachen EA ein und lassen ihn im Tester laufen, er wird nicht aktiviert.
Haben Sie andere Funktionen, die OnChartEvent aufrufen?
haben Sie andere Funktionen, die OnChartEvent aufrufen.
Ja, natürlich. Da der Expert Advisor Indikator-Signale von Drittanbieter-Symbolen mit Hilfe der EventChartCustom - OnChartEvent-Bindung sammelt, hat jeder dieser Indikatoren seine eigene Instanz der Funktion EventChartCustom(). Der erste Parameter jeder Instanz der Funktion EventChartCustom() enthält einen Chart-Identifikator, an den unser EA angehängt ist; der zweite Parameter ist Null.
Wenn er in einen Expert Advisor eingefügt wird, wird er nicht aktiviert.
Dies ist nur ein Teil des Codes, - vom Expert Advisor, der Indikatorsignale von anderen Symbolen sammelt. Wenn keine Indikatoren vorhanden sind, wird dieser Teil des Codes (die Funktion OnChartEvent) die benutzerdefinierten Ereignisse nicht verarbeiten, da sie fehlen.
haben Sie überprüft, welches Ereignis OnChartEvent aufgerufen wird, bevor Sie das benutzerdefinierte Ereignis aufrufen?
Nein, ein bisschen falsch. Ich wollte sehen, ob die Ticks von dem Symbol empfangen werden, an das der Expert Advisor angehängt ist, wenn die Funktion OnChartEvent() die benutzerdefinierten Ereignisse verarbeitet, die von den Indikatoren aus anderen Symbolen stammen. Es ist zu erkennen, dass EURGBP-Ticks empfangen werden. Aus der Referenz schließe ich, dassdas Ereignis NewTick erzeugt wird, wenn neue Ticks für das Symbol eintreffen.
Es ist nicht möglich, herauszufinden, welche der von Ihnen verwendeten Funktionen zu unterschiedlichen Ergebnissen bei der Zeitmessung geführt haben. Ohne vollständigen Code ist das nur Kaffeesatzleserei.
NewTick steht in keinem direkten Zusammenhang mit OnChartEvent. Deshalb ist der von Ihnen vorgeschlagene Mechanismus zur Verfolgung von Warteschlangen eher künstlich. Ich bin mir nicht sicher, ob das richtig ist.
In diesem Fall würde ich nicht behaupten, dass es NewTick ist, das die Testverzögerungen verursacht. Und ich glaube, dass die Mechanismen Ihrer Bindungen daran schuld sind, nicht das Ereignis selbst.
Es ist nicht möglich, herauszufinden, welche der von Ihnen verwendeten Funktionen zu unterschiedlichen Ergebnissen bei der Zeitmessung geführt haben. Ohne vollständigen Code ist das nur Kaffeesatzleserei.
NewTick steht in keinem direkten Zusammenhang mit OnChartEvent. Deshalb ist der von Ihnen vorgeschlagene Mechanismus zur Verfolgung von Warteschlangen eher künstlich. Ich bin mir nicht sicher, ob das richtig ist.
In diesem Fall würde ich nicht behaupten, dass es NewTick ist, das die Testverzögerungen verursacht. Und ich denke, es sind Ihre Bindungsmechanismen, die daran schuld sind, nicht das Ereignis selbst.
Die Sache war von Anfang an nicht das, was ich meinte. In meiner ersten Nachricht habe ich gesagt, dass ich keine Möglichkeit gefunden habe, Tick-Ereignisse für ein Symbol zu deaktivieren, an dessen Chart ein Expert Advisor angehängt ist. Sie haben auf diesen Satz reagiert, aber Sie haben keine Möglichkeit vorgesehen, den Fluss der Häkchen für das gewünschte Symbol bei Bedarf zu deaktivieren. Ich schließe daraus, dass nicht nur ich, sondern auch Sie einen solchen Weg nicht kennen. Mein Vorschlag bleibt also bestehen: Führen Sie eine Toggle-Funktion ein, mit der Sie die Ereignisgenerierung programmatisch deaktivieren können. NewTickfür das Symbol, an dessen Chart ein Expert Advisor angehängt ist.
Zu den Kommentaren über das "Raten nach Gefühl" und die "Künstlichkeit der Mechanismen zur Verfolgung von Warteschlangen": Ich habe nicht angeboten, in den Code zu schauen und die Frage "Warum ist das so? Wie Sie aus meinem Vorschlag ersehen können, habe ich die Antwort bereits für mich gefunden. Betrachten wir das Problem jedoch von einem abstrakteren Standpunkt aus, ohne unsere Aufmerksamkeit auf den Code eines bestimmten Expert Advisors zu richten.
NewTick ist in keiner Weise direkt mit OnChartEvent verbunden.
Okay, nehmen wir mal an, dass es so ist. NewTick ist alsoindirekt mit OnChartEvent verbunden, aber es besteht ein Zusammenhang. Ich habe es bereits in der Erklärung gesagt, aber ich werde es noch einmal wiederholen. Sie wissen besser als ich, dass es eine "gemeinsame Warteschlange von Ereignissen" gibt, in der sich alle auftretenden Ereignisse stapeln, sowohl vordefinierte als auch benutzerdefinierte. Diese Ereignisse werden nacheinander in der Reihenfolge ihres Eingangs bearbeitet. Da die Warteschlange eine begrenzte Größe hat, werden, wenn sie voll ist, alte Ereignisse entfernt, ohne verarbeitet zu werden. Ist das richtig?
Es stellt sich also heraus, dass, wenn der Expert Advisor keine NewTick-Ereignisse verarbeitet, diese Ereignisse aber trotzdem generiert werden, meine allgemeine Warteschlange mit unnötigen NewTick-Ereignissen einfach verstopft wird und die Gefahr besteht, dass veraltete Benutzerereignisse, die vom Expert Advisor verarbeitet werden müssen, nicht verarbeitet werden. Ich hoffe, Sie stimmen dieser Schlussfolgerung zu. Aus diesem Grund habe ich den oben genannten Vorschlag gemacht.
Natürlich kenne ich nicht alle Feinheiten, wie die Ereigniswarteschlange und das NewTick-Ereignis funktionieren. Daher kann es sein, dass ich in einigen Schlussfolgerungen falsch liege, und ich werde alle Erklärungen mit Interesse prüfen.
In diesem Fall würde ich nicht behaupten, dass es NewTick ist, das Testverzögerungen verursacht. Und ich denke, dass die Mechanismen Ihrer Bindungen daran schuld sind, nicht das Ereignis selbst.
Als Referenz. Der Expert Advisor bindet die Instanzen ein und desselben Indikators mit denselben Parametern und mit demselben "Bindungsmechanismus" an die benachbarten Symbole, an ein und dasselbe Zeitintervall. Die Bindung ist dieselbe: EventChartCustom - OnChartEvent.
Habe ich richtig verstanden, dass Sie der Aussage zustimmen, dass "wenn es kein OnTick() in einem Expert Advisor gibt, die NewTick-Ereignisse überhaupt nicht in die Warteschlange gestellt werden"?
Warum raten und Hypothesen aufstellen?
Ihre Forderung,"eine Schalterfunktion einzuführen, mit der Sie die Erzeugung von Ereignissen programmatisch deaktivieren können NewTickfür das Symbol, an das der Expert Advisor im Diagramm angehängt ist. " ist klar.
Schreiben Sie an servicedesk.
alles andere ist ein Kampf gegen Windmühlen.
Warum raten und Hypothesen aufstellen?
alles andere ist ein Kampf gegen Windmühlen.
Was du nicht sagst :) Einige sind es gewohnt, blind zu arbeiten, während andere versuchen, mehr über das zu bekämpfende Phänomen zu erfahren. Hypothesen entstehen, wenn diese oder jene Information fehlt. Vielen Dank, dass Sie sich an der Diskussion beteiligt haben.
Ich habe an den SD geschrieben. Ich wusste nicht, dass man dort Vorschläge einreichen kann.