Mt4 Ende der Unterstützung. - Seite 24

 
Реter Konow:

Ich habe bereits geantwortet, dass die Bars unabhängig vom Eingang eines Angebots geöffnet werden. Wenn es keine Notierung gibt, ist der Preis des neuen Balkens der Schlusskurs des vorherigen Balkens. Die Tatsache, dass ein neuer Balken entsteht, wird unabhängig vom Eintreffen von Kursen durch die Zähler selbst festgelegt, die nach einem Zeitplan laufen.

Der spezifische Zeitrahmen spielt keine Rolle, da es sich nur um einen Zähler handelt, der seinen Wert erreicht und das Ereignis des neuen Balkens dieses Zeitrahmens setzt. Dies ist einfach eine Methode zur Synchronisierung mit dem Erscheinen neuer Balken in verschiedenen Zeitrahmen. SYNCHRONISIERUNG.

Auch das Instrument spielt keine Rolle. Wenn die Kurse von einem Server stammen, bedeutet dies, dass sie zum gleichen Zeitpunkt wie die neuen Balken erscheinen. Daher ist es egal, welches Instrument, solange diese Instrumente von einem Punkt der Welt stammen.


Ich werde das, was ich gesagt habe, beenden und andere Dinge tun. Ein kleines bisschen was Gutes).

Sie irren sich.

Mit Verlaub.

P.S. Die Bildung eines neuen Balkens beginnt mit dem Eintreffen eines neuen Ticks, d.h. dem Preis für die Eröffnung eines neuen Balkens. In Ihrem Algorithmus gibt es eine Zeitberechnung, die nichts mit dem Eintreffen eines neuen Ticks zu tun hat, daher die Unstimmigkeit. Tatsächlich gibt Ihr Algorithmus nicht die Tatsache der Eröffnung eines neuen Balkens an, sondern den Beginn der Zeit, nach der Sie das Eintreffen des ersten Kurses in einem Balken erwarten können.
 
Artyom Trishkin:

Sie sind es, die in Ihrem Algorithmus glauben, dass die Bar geöffnet ist. In der Tat ist es - physisch - noch nicht im Terminal vorhanden. Dies steht in völligem Widerspruch zu den Gegebenheiten auf dem Server.

Auch der konkrete Zeitrahmen ist wichtig.

Jeder, der schon einmal mit einem Expert Advisor für mehrere Währungen zu tun hatte, weiß das.

Es ist schade, dass Sie nicht zu der Schlussfolgerung kommen wollen, zu der wir Sie führen - visuell und mit einem greifbaren Beispiel.

Bei einem neuen Balken spielt es keine Rolle, um welches Symbol es sich handelt. Neue Balken mit verschiedenen Symbolen erscheinen synchron (für jeden Zeitrahmen).

Für jeden Zeitrahmen gibt es einen Zähler. Wenn der Zähler den Wert seines Zeitrahmens erreicht, wird er auf Null zurückgesetzt, und es wird ein neues Balkenereignis für diesen Zeitrahmen gesetzt.

Außerdem gibt der Aufruf der Funktion einmalig ein neues Taktereignis für die Zeit des aktuellen Taktes zurück.

Vielen Dank an alle und auf Wiedersehen.

 
Реter Konow:

Es macht keinen Unterschied, welches Symbol für das neue Taktereignis verwendet wird. Neue Balken mit verschiedenen Symbolen erscheinen synchron (für jeden Zeitrahmen).

Der Timer hat einen Zähler für jedes Zeitfenster. Wenn der Zähler den Wert seines Zeitrahmens erreicht, wird er zurückgesetzt, und es wird ein neues Balkenereignis für diesen Zeitrahmen gesetzt.

Außerdem wird der Zugriff auf die Funktion das Ereignis eines neuen Taktes einmal während des aktuellen Taktes zurückgeben.

Das ist das Ende der Erklärung.

Vielen Dank an alle und auf Wiedersehen.

Sie sind nicht derjenige, der es ausbuchstabiert - Ihre Logik ist klar. Aber leider ist das falsch. Sie müssen die Daten aus der Handelsumgebung holen - eventuell vom Server.

Und wenn es kein neues Angebot auf dem Server gibt, dann wird auch kein neuer Balken im Terminal geöffnet.

Ihr Algorithmus, der im Timer arbeitet, wird neue Balken "stempeln", wenn der Markt geschlossen ist. Auf dem Server und damit auf dem Client-Terminal gibt es jedoch keine.

Und glauben Sie mir, der Unterschied in der Ankunft der Notierungen für verschiedene Symbole wird auch einen Unterschied in der Eröffnung eines neuen Balkens verursachen - der Beginn der Bildung eines neuen Balkens wird nur aktiviert, wenn der Tick (Quote), der der Zeit dieses Balkens entspricht, kommt. Wenn der Tick 4 Minuten und 15 Sekunden nach dem letzten Balkenschluss auf M1 empfangen wird, werden drei Balken verpasst, weil es keinen Kurs gibt, an dem sie ausgeführt werden können.

Ich habe Ihnen einen Hinweis gegeben.

 
Andrey Kisselyov:
Sie irren sich.

Mit freundlichen Grüßen.

P.S. Die Bildung eines neuen Balkens beginnt mit dem Eintreffen eines neuen Ticks, d.h. dem Preis für die Eröffnung eines neuen Balkens. In Ihrem Algorithmus gibt es eine Berechnung auf der Grundlage des Timers, die nichts mit dem Eintreffen eines neuen Ticks zu tun hat, daher die Unstimmigkeit.

Ja, mit einer Zeitschaltuhr. Es erscheint ein neuer Balken ohne Anführungszeichen. Wir sind genau daran interessiert, wann ein Balken auf tritt, und wir können den Kurs in Optisk() festlegen;

Der Balken wird auf jeden Fall erscheinen. Wenn es ein Wochenende ist und es keine Bars gibt, ist das in Ordnung. Die Funktion ändert sich nicht und wird mit der Ankunft der Balken zu Beginn der Sitzung synchronisiert.

 
Artyom Trishkin:

Sie sind nicht derjenige, der die Sache wiederkäut - Ihre Logik ist verständlich. Aber leider ist sie mit Mängeln behaftet. Sie müssen die Daten aus der Handelsumgebung holen - eventuell vom Server.

Und wenn es kein neues Angebot auf dem Server gibt, dann wird auch kein neuer Balken im Terminal geöffnet.

Ihr Algorithmus, der im Timer arbeitet, wird neue Balken "stempeln", wenn der Markt geschlossen ist. Auf dem Server und damit auf dem Client-Terminal gibt es jedoch keine.

Und glauben Sie mir, der Unterschied in der Ankunft der Notierungen für verschiedene Symbole wird auch einen Unterschied in der Eröffnung eines neuen Balkens verursachen - der Beginn der Bildung eines neuen Balkens wird nur aktiviert, wenn der Tick (Quote), der der Zeit dieses Balkens entspricht, kommt. Wenn der Tick 4 Minuten und 15 Sekunden nach dem letzten Balken auf M1 kommt, werden drei Balken verpasst, weil es keinen Kurs gibt, auf dem sie aufgebaut werden können.

Ich habe Ihnen einen Hinweis gegeben.

Die Notierungen können über OnTick() abgerufen werden. Sie können das Ereignis der Eröffnung einer neuen Bar mit der Bestätigung der Ankunft des Angebots verbinden. Ich würde das nicht tun. Aber das ist jedem selbst überlassen.
 
Реter Konow:

Ja, mit einer Zeitschaltuhr. Es erscheint ein neuer Balken ohne Anführungszeichen. Wir interessieren uns genau für den Fall , dass ein Balken auftaucht, während wir das Zitat in Optisk() festlegen können;

Die Leiste wird trotzdem angezeigt. Wenn es ein Wochenende ist und es keine Bars gibt, ist das in Ordnung. Die Funktion bricht nicht zusammen und wird mit dem Eintreffen der Takte zum Zeitpunkt des Sitzungsbeginns synchronisiert.

Angenommen, Sie möchten die Indikatorwerte bei 1 und 2 Balken entsprechend dem Ereignis eines neuen Balkenanfangs ablesen. Wenn Sie die Logik Ihres Algorithmus betrachten, erhalten Sie die Werte von 1 und 2 Balken, bevor das neue Angebot eintrifft und der Balken auf dem Chart erscheint. Wenn Sie versuchen, den Indikator abzulesen, erhalten Sie folglich nicht die Werte von 1 und 2 Balken, wie es sein sollte, wenn das Angebot eintrifft, sondern die Werte von 1 und 2 Balken, die bei dem neuen Angebot um 1 Balken verschoben werden, was natürlich die Arbeit des EA beeinträchtigt.


Mit freundlichen Grüßen.

 

Artyom Trishkin:

Und glauben Sie mir, der Unterschied im Eintreffen von Kursen für verschiedene Symbole macht auch einen Unterschied bei der Eröffnung eines neuen Balkens - der Beginn des Aufbaus eines neuen Balkens wird erst mit dem Eintreffen eines Ticks (Kurses) aktiviert, der der Zeit dieses Balkens entspricht. Wenn der Tick 4 Minuten und 15 Sekunden nach dem letzten Balken auf M1 empfangen wird, werden drei Balken verpasst, da es keine Notierung gibt, auf der sie aufgebaut werden können.


Was nun die Frage betrifft, so glaube ich, dass Sie falsch liegen. Bitte erkundigen Sie sich bei servicedesk. Sie sollen die Frage beantworten, ob sich auf der Plattform neue Balken bilden, unabhängig von der Ankunft der Notierungen, oder nicht. Wenn nein, dann prüfen Sie bei einem neuen Balken, ob er mit einem Zitat versehen war. Wenn dies der Fall war, wurde der neue Stab gebildet. Wir können es so machen. Sie brauchen nicht viel zu ändern.

 
Andrey Kisselyov:
Nehmen wir an, Sie möchten den Indikator bei 1 und 2 Balken ablesen, wenn ein neuer Balken beginnt. Nach der Logik Ihres Algorithmus wird ein neuer Balken beginnen, bevor der Kurs eintrifft und der Balken auf dem Chart erscheint. Wenn Sie versuchen, den Indikator abzulesen, erhalten Sie folglich nicht die Werte von 1 und 2 Balken, wie sie beim Eintreffen des Kurses sein sollten, sondern die Werte von 1 und 2 Balken, die um 1 Balken verschoben werden, wenn der neue Kurs eintrifft, und 2 und 3 Balken sein werden.


Herzliche Grüße.

Das ist möglich. Fügen Sie bei jedem neuen Bar-Ereignis Prüfungen für das neue Angebot hinzu, und das war's. Arbeiten Sie nicht mit dem Ereignis eines neuen Taktes, sondern mit dem Ereignis eines Taktes und z.B. eines Kurses.
 
Реter Konow:
Möglich. Fügen Sie bei jedem neuen Bar-Ereignis eine Ankunftskontrolle hinzu, und das war's. Arbeiten Sie nicht mit dem Ereignis eines neuen Taktes, sondern z.B. mit dem Ereignis eines Taktes und eines Zitates.
Ich brauche diesen Algorithmus nicht, er ist Ihre Idee, ich überprüfe ihn nur auf Fehler und mögliche Verbesserungen, sozusagen als Übung für das Gehirn.

Mit Verlaub.
 
Реter Konow:
Erhalten Sie Ihre Kurse von OnTick(). Sie können das Ereignis der Eröffnung einer neuen Bar mit der Bestätigung des Eingangs eines Angebots verknüpfen. Ich würde das nicht tun. Aber das ist eine persönliche Angelegenheit.

Ich weiß, wie man Kostenvoranschläge einholt :)

In einem Programm mit mehreren Währungen - in einem Timer in einer Schleife auf den rechten Symbolen. Und die Eröffnung eines neuen Balkens (physisch, nicht virtuell - irrtümlich - wie in Ihrem Fall) wird durch die Zeit der letzten Notierung gesteuert und diese Zeit mit der Zeit des Null-Bar-Symbols verglichen.

Sie hingegen entscheiden nach dem Zufallsprinzip - eine virtuelle Bar, die es vielleicht gar nicht gibt. Am Wochenende gibt es sie nicht, aber man hat sie angeblich - das ist das einfachste Beispiel.

Und Sie sind der Einzige, der es nicht so machen würde. Der Rest von uns macht es auf die richtige und zuverlässige Weise. Aber das ist natürlich nur Ihre eigene Angelegenheit.

Ich wollte Ihnen sagen, wie man es richtig macht, und den großen Unterschied zwischen der Einfachheit des Schreibens in OOP und den komplexen Wendungen im prozeduralen Stil bei der Lösung desselben Problems aufzeigen.

Aber Sie wissen wahrscheinlich mehr und brauchen es nicht. Ich wage es nicht, vor Ihnen so zu tun, als wüsste ich etwas anderes. Entschuldigung.