Fehler, Irrtümer, Fragen - Seite 622

 
Dima_S:
Sehr originell)

und ein paar weitere Ergänzungen.

Wenn Sie einen Indikator im Hauptdiagramm erstellen, wird das Timer-Ereignis erfolgreich verarbeitet.
Wenn Sie einen Indikator auf einem Chart-Objekt oder von einem EA erstellen, der auf diesem Objekt platziert ist, wird der Timer nicht aktiviert.

Anton erklärte mir in SD, dass die Eigenschaft der Timer-Verfügbarkeit aus dem Chart-Thread kopiert wird, in dem der Indikator platziert ist. In den Diagrammobjekten gibt es keine Zeitgeber. Sie sind nur in der Hauptkarte vorhanden.

Der Timer-Indikator wird also nur im Hauptdiagramm und nicht im Diagrammobjekt verfügbar sein.

Sie müssen ChartIndicatorAdd in jedem Fall ausführen. Damit der Timer in Betrieb geht.

 
Rosh:

Zeitgeberereignisse werden für den Graphen und von dort aus für die Programme, die darauf laufen, generiert (auf den Graphen geworfen). Das ist die Ideologie - Programmdurchführung:

Aus diesem Grund akzeptiert der vom Expert Advisor aufgerufene Indikator keine Timer-Ereignisse. Versuchen Sie, den Indikator mit der Funktion ChartIndicatorAdd auf das Diagramm anzuwenden, wird sich dadurch etwas ändern?

Ich denke, der Timer würde genauso gut funktionieren, wie wenn Sie einfach einen Indikator auf das Diagramm setzen würden. Wenn es nur eine Karte gäbe, wäre das kein Problem.

Wir müssen viele Diagramme mit verschiedenen Währungen in einem einzigen zusammenfassen.

Wir müssen das Öffnen vieler kleiner Fenster und das Laden mit "Indikatoren" (vorerst) automatisieren.

Vielen Dank für die klugen Antworten, liebe Leute.

 

Dima_S:

Wir müssen das Öffnen einer Reihe von kleinen Fenstern automatisieren und einen "Induktor" auf sie werfen (vorläufig).

Warum? Sie fangen per Zeitschaltuhr, also brauchen Sie nicht viele Fenster. Das einzige Fenster mit dem Indikator ist genug. In diesem Indikator, vorschreiben, die Behandlung von etwas mit einem beliebigen Symbol. Es geht immer noch um den Timer, nicht um die Ticks.
 
sergeev:
Warum? Sie fangen per Zeitschaltuhr, also brauchen Sie nicht viele Fenster. Ein Fenster mit einem Indikator reicht aus. In diesem Indikator können Sie die Behandlung von allem mit jedem Symbol vorschreiben. Es geht immer noch um den Timer, nicht um die Ticks.
Der Punkt ist, dass Ticks auch auf vielen Paaren gefangen werden - sie bilden zweite Zählungen und weiter werden sie durch Mapping an den EA zur weiteren Verarbeitung gesendet)
 
Dima_S:
Der Punkt ist, dass Ticks auch von vielen Paaren gefangen werden, aus denen zweite Zählungen gebildet werden und dann werden sie über Mapping an Expert Advisor für weitere Perversion der Verarbeitung gesendet)
Dann ist es einfacher, die Ticks von den Indizes in den Expert Advisor zu übertragen und zu speichern, bis die nächste Sekundenzählung von einem einzelnen Timer (im Expert Advisor) empfangen wird, dann ein zweites Paket zu bilden und den "Akkumulator" zu löschen.
 
Rosh:

Es werden Timer-Ereignisse für den Graphen und von dort aus für die Programme, die auf ihm laufen, erzeugt (auf ihn geworfen). Das ist die Ideologie - Programmdurchführung:

Daher akzeptiert der Indikator, der vom Expert Advisor aufgerufen wird, keine Timer-Ereignisse. Versuchen Sie, den Indikator mit der Funktion ChartIndicatorAdd auf einen Chart im Expert Advisor anzuwenden - wird sich etwas ändern?

Dima_S:

Ich denke, der Timer funktioniert genauso, wie wenn Sie den Indikator einfach auf das Diagramm werfen. Wenn ich nur eine Karte hätte, gäbe es kein Problem.

Ich sollte viele Charts mit verschiedenen Währungen in einem sammeln.

Wir müssen das Öffnen vieler kleiner Fenster und das Laden mit "Indikatoren" (vorerst) automatisieren.

Vielen Dank an alle für die kompetenten Antworten.

Taki, der Timer hat sich mit dieser Abfolge von Aufrufen des Expert Advisors nicht von selbst erledigt:

ChartOpen -> iCustom -> ChartIndicatorAdd

Es sind Diagramme erschienen und Indikatoren hinzugefügt worden. Der Timer funktionierte erst, nachdem ich die Eigenschaften jedes neuen Diagramms manuell aufgerufen und ohne Änderungen auf OK geklickt hatte.

Ist es ein Fehler? Ein Fehler?

 
MetaDriver:
Dann ist es einfacher, Ticks in Expert Advisor von den Induktoren zu erhalten und zu speichern, bis die nächste Sekunde zählt von einem einzigen Timer (in Expert Advisor), dann bilden Sie eine zweite Charge und löschen Sie die "Hoarder.
Es ist nicht einfacher, es ist komplizierter. Ich habe es bereits so gemacht)
 
Dima_S:

Taki, der Timer funktionierte nicht von selbst mit dieser Folge von Aufrufen des Expert Advisors:

ChartOpen -> iCustom -> ChartIndicatorAdd

Es sind Diagramme erschienen und Indikatoren hinzugefügt worden. Der Timer funktionierte erst, nachdem ich die Eigenschaften jedes neuen Diagramms manuell aufgerufen und ohne Änderungen auf OK geklickt hatte.

Ein Fehler? Ein Fehler?

OnTimer() in Inite aufrufen.

 
Dima_S:
Es ist nicht einfacher, sondern komplizierter. Ich habe es bereits so gemacht).

Dann müssen wir es härter machen. :)

Das ist sowieso der einzig richtige Weg.

Urteilen Sie selbst. Selbst wenn es Ihnen gelingt, alle Zeitgeber zu starten (was nicht der Fall ist), und selbst wenn es Ihnen gelingt, sie streng synchron zu betreiben (was nicht der Fall ist), werden Sie dennoch Informationen von ihnen erhalten, entweder nacheinander und in einer unbekannten Reihenfolge (wenn es sich um einen Kern handelt) oder nahe daran (wenn es mehrere Kerne gibt). Und dann muss man auch noch die Reihenfolge und all den anderen Mist im Auge behalten.

Ich schlage einen Kompromiss vor: Sie fangen Ticks durch Spione ab und senden sie sofort an den Head Expert Advisor mit einer Millisekunden-Markierung(GetTickCount()). Expert Advisor ordnet sie entsprechend ihrer Beschriftung und unterteilt sie in zweite Blöcke.

Es ist nicht ganz einfach, aber es wird genau sein.

 
Urain:
OnTimer() in der Init aufrufen.
Du wirst gleich richtig wütend werden... :))