[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 405
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
1. Warum sollte das so plötzlich passieren? Wir müssen nur noch hinzufügen, dass die Funktion einen weiteren Wert zurückgibt, was "Kein Preis" bedeuten würde. Das erscheint logisch. Als ich die Funktion geworfen habe, habe ich mehr an die vorherige Logik gedacht und nicht auf das Ende geachtet. Und warum die Funktion 0 von sich aus 0 zurückgibt, verstehe ich nicht...
2) Wozu brauche ich überhaupt Ask (wenn es um den Kaufpreis geht), wenn ich immer MarketInfo(fs_symbol, MODE_ASK) verwenden kann? Denn wenn man es so betrachtet, kann man sich bei der Bezugnahme auf Ask nicht sicher sein, dass sie zu einem bestimmten Zeitpunkt korrekt ist?
1. Einfach. Die Funktion ist als double deklariert, d.h. wenn sie aufgerufen wird, gibt sie double zurück, unabhängig davon, ob sie return aufruft oder nicht. Wenn wir noch etwas hinzufügen... aber das haben wir noch nicht.
2. Wenn es keinen Unterschied macht, ob Sie 3 oder 30 Tasten drücken, brauchen Sie diese Bid und Ask nicht. Wenn Expert Advisor keine langen Berechnungen durchführt, ist das in Ordnung, es ist bequem, Bid und Ask zu verwenden. Wenn es lange Berechnungen durchführt, können Sie RefreshRates() verwenden. Es gibt mehrere Möglichkeiten, dies zu tun.
Soweit ich das verstanden habe, ist das nicht das, was wir brauchen. Und wir brauchen die letzten Preise des Ask- und Bid-Servers, nicht die des lokalen Terminals. Richtig?
Deshalb habe ich die Diskussion hier begonnen, um ein für alle Mal zu verstehen, wie man sie logischer und korrekter organisieren kann. Denn in der Theorie ist das richtig, aber in der Praxis...
Der Server ist irgendwo da draußen, und wir erhalten ein Terminal, um mit dem Server Kontakt aufzunehmen. Besteht eine Verbindung, so entspricht der letzte Preis im Terminal dem letzten Preis auf dem Server. Wenn es keine Verbindung gibt, dann ist es völlig egal, welche Preise es gibt.
1. Einfach. Die Funktion ist als double deklariert, so dass sie double zurückgibt, wenn sie aufgerufen wird, unabhängig davon, ob return in ihr aufgerufen wurde. Wenn wir noch etwas hinzufügen... ...aber das andere ist noch nicht da.
2. Wenn es keinen Unterschied macht, ob Sie 3 oder 30 Tasten drücken, brauchen Sie diese Bid und Ask nicht. Wenn Expert Advisor keine langen Berechnungen durchführt, ist das in Ordnung, es ist bequem, Bid und Ask zu verwenden. Wenn es lange Berechnungen durchführt, können Sie RefreshRates() verwenden. Alles kann auf verschiedene Weise geschehen.
1. Ja, ich bin einfach überarbeitet, deshalb habe ich wohl etwas Dummes geschrieben.
2. Lang ist ein relativer Begriff. Schlagen Sie vor, dass wir die Geschwindigkeit der Durchschnittsberechnung messen?
Der Server ist irgendwo da draußen und wir erhalten ein Terminal, um mit dem Server Kontakt aufzunehmen. Besteht eine Verbindung, so entspricht der letzte Preis im Terminal dem letzten Preis auf dem Server. Wenn es keine Verbindung gibt, spielt es keine Rolle, welcher Preis auf dem Server liegt.
Wenn wir davon ausgehen, wie Sie geschrieben haben, dass der letzte Wert der variablen Marktdaten (in unserem Fall der Preis ) dem letzten Wert des Servers entspricht, dann bedeutet das, dass das Terminal die Marktumgebungsvariablen aktualisiert, wenn es mit dem Server verbunden ist. Dem ist aber nicht so, denn diese Funktion existiert und bedeutet, dass die Preise nicht ständig aktualisiert werden, oder?
Ich streite nicht, ich frage, ich vertrete meinen Standpunkt. Bitte beachten Sie das!
Wenn wir, wie Sie schreiben, davon ausgehen, dass das Terminal den neuesten Wert der Marktdatenvariablen, in unserem Fall des Preises, hat, der dem neuesten Serverwert entspricht, dann bedeutet das, dass das Terminal die Marktumgebungsvariablen selbst aktualisiert, wenn eine Verbindung mit dem Server besteht, was bedeutet, dass die Funktion RefreshRates() nicht benötigt wird. Dem ist aber nicht so, denn diese Funktion existiert und bedeutet, dass die Preise nicht ständig aktualisiert werden, oder?
Ich streite nicht, ich frage, ich vertrete meinen Standpunkt. Bitte beachten Sie das!
Wenn neue Ticks während der Berechnungen im EA eintreffen (wenn die start()-Funktion läuft), weiß der EA nichts von ihnen (Ticks). RefreshRates() ermöglicht die Verwendung der zuletzt aktualisierten Preise, aber diese Funktion greift nicht auf den Server zu. Er aktualisiert das dem Terminal bekannte Marktumfeld. Keine der Funktionen, mit Ausnahme der Handelsfunktion, greift auf den Server zu
Wenn neue Ticks während der Berechnungen im EA eintreffen (wenn die start()-Funktion ausgeführt wird), weiß der EA nichts von ihnen (Ticks). RefreshRates() ermöglicht die Verwendung der neuesten, aktualisierten Preise, aber diese Funktion greift nicht auf den Server zu. Er aktualisiert das dem Terminal bekannte Marktumfeld. Keine der Funktionen, mit Ausnahme der Handelsfunktionen, greift auf den Server zu.
Wenn die Anfrage also lokal und nicht an den Server gerichtet ist, dann sollte diese Funktion sofort funktionieren! Wie oben erwähnt, hat die Funktion RefreshRates() möglicherweise keine Zeit, die Marktumfelddaten zu aktualisieren...
Wenn die Anfrage also lokal und nicht an den Server gerichtet ist, dann sollte diese Funktion sofort funktionieren! Und oben wurde gesagt, dass die Funktion RefreshRates() möglicherweise keine Zeit hat, die Marktumfelddaten zu aktualisieren...
Es funktioniert. Und sie wird aktualisiert, wenn es etwas zu aktualisieren gibt. Aber wenn es kein neues Häkchen gab, gibt es auch nichts zu aktualisieren.
Und es wird klappen. Und sie wird aktualisiert, wenn es etwas zu aktualisieren gibt. Aber wenn es kein neues Häkchen gibt, gibt es auch nichts zu aktualisieren.
Wenn es also kein neues Häkchen gibt, ändert sich der Preis nicht... und natürlich sind die vorherigen Preise weiterhin gültig. Es gibt also keinen Grund, die Dinge zu verkomplizieren!
Und Vadim schrieb oben, dass es notwendig sei, diesen Punkt zu überprüfen. Aber es lag keine Logik in seinen Worten, und auch keine Argumentation. Es ist seltsam... Ich füge also überall RefreshRates() ein, und in diesem Moment werden die zuletzt bekannten Daten aus dem Terminal anstelle der vorherigen verwendet, und alles läuft wie es soll. VorausgesetztRefreshRates() gibt TRU zurück. Wenn es False ist, bedeutet das, dass sich die Daten nicht geändert haben und mit früheren Preisen funktionieren... Liege ich mit meiner Argumentation richtig?
Rufen Sie einfachRefreshRates() auf, und es wird mit aktuellen Daten funktionieren...