Bitte erklären Sie mir, was an dieser Funktion falsch sein könnte? - Seite 7

 

Dieser Link sagt

Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.


Offenbar geht es hier um die älteren Daten, und die neuesten, aktuellsten Daten sollten einfach deshalb abgerufen werden, weil das Diagramm des Instruments geöffnet ist? Oder nicht?

Worin besteht der Unterschied bei der Beschaffung von Daten durch verschiedene Funktionen?

 
Slawa:
Haben Sie die Dokumentation über die Organisation des Datenzugriffs vollständig gelesen?

Slawa, hast du dir meine Bewerbung angesehen?

MQL5: Fehler #4806
Offen, Gestartet: 2016.02.15 11:22, #1409574

Die Cache-Wartung über das Zucken des Blinkers funktioniert nicht.

Führen Sie den beigefügten EA aus, nach einer Weile erhalten Sie einen Fehler in den Protokollen.

 
Andrey Khatimlianskii:

Slawa, hast du dir meine Bewerbung angesehen?

Die Cache-Wartung über das Zucken des Blinkers funktioniert nicht.

Führen Sie den angehängten EA aus, erhalten Sie nach einer Weile einen Fehler in den Protokollen.

Ja, das habe ich. Aber ich habe dort keinen EA gefunden.

Ich habe es mit meinem EA überprüft. Ich wiederhole: Das Vorhandensein eines Indikator-Handlers (in meinem Fall iMA) verhindert das Entladen des historischen Cache.

Schicken Sie Ihren EA hierher (und Sie können es in der oben genannten Anwendung tun) - ich werde es in verschiedenen Terminals laufen lassen. Schauen wir mal

 
Alexey Viktorov:

Dimitri, ist das nicht seltsam? Es gibt einen neuen Balken, aber wir werden ihn noch nicht zählen.

Hören Sie, ist das nicht die Ursache für dieses Verhalten SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE);? Neuer Balken erschienen, Tick ist vorhanden, Code wird ausgeführt, aber die Zeit wird noch nicht berücksichtigt.

In Bezug auf die Zeitnutzung - richtig. Es wird akzeptiert, dass die Obergrenze der angegebenen Zeitspanne nicht gilt. Aber in diesem Fall ist es ungünstig - ja.

ÜberSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE), ich weiß nicht, ich hatte nicht verwendet und wird wahrscheinlich nicht verwenden, wenn ich die Zeit der Bar, werde ich CopyTime() oder CopyRates() verwenden.

Die Entwickler sollten ein Analogon zu iBarShift() erstellen, Bars() ein wenig umschreiben und es würde funktionieren.

 
Slawa:

Ja, das habe ich. Aber ich habe dort kein Ratsmitglied gefunden.

Ich habe es mit meinem EA überprüft. Ich wiederhole: Das Vorhandensein eines Indikator-Handlers (in meinem Fall iMA) verhindert das Entladen des historischen Cache.

Geben Sie Ihren EA hier ein (oder Sie können ihn in der obigen Anwendung eingeben) - ich werde ihn in verschiedenen Terminals ausführen. Schauen wir mal

Der Expert Advisor wurde im ersten Beitrag angehängt (zip, 58.91 KB). Haben Sie keine Dateien irgendwo gespeichert?

Ich habe die Version gebaut, mit der alles angefangen hat, und sie angehängt. Probieren Sie es aus. Die Testbedingungen und die Set-Datei sind ebenfalls vorhanden.

 
Dmitry Fedoseev:

In Bezug auf die Zeitnutzung, richtig. Es wird akzeptiert, dass die Obergrenze der angegebenen Zeit nicht für den Bereich gilt. Aber in diesem Fall ist es ungünstig - ja.

ÜberSeriesInfoInteger(_Symbol, PERIOD_D1,SERIES_LASTBAR_DATE); Ich weiß nicht, ich hatte nicht verwendet und wird wahrscheinlich nicht verwenden, wenn ich bar Zeit benötigen, werde ich CopyTime() oder CopyRates().

Die Entwickler sollten ein Analogon zu iBarShift() erstellen, Bars() ein wenig umschreiben und es würde funktionieren.

Akzeptiert in anderen Programmiersprachen?

Nun, die obere Grenze der Spanne zu treffen, ist die halbe Miete. Was Sie "eine Unannehmlichkeit" nennen, nenne ich eine Dummheit, an die Sie sich vielleicht gewöhnen und die Sie in Ihren Programmen verwenden können.

Ich fand das Verhalten der Funktion einfach unangemessen, und es gibt keinen anderen Namen dafür, also habe ich versucht, es den Entwicklern zu erklären. Aber anstatt zu versuchen zu verstehen, was vor sich ging ... Das war's... Schweigen. Keiner braucht sie.

Ich habe auch schon aufgegeben, mit dieser Funktion und ersetzt es mit CopyRates() nur durch Trägheit weiter zu erklären, wahrscheinlich, weil der Schlagzeuger das Thema umbenannt, so dass ich für einen Hinweis fragen, und nicht ein Problem in mql5 berichten.

 
Andrey Khatimlianskii:

Der Berater wurde im ersten Beitrag angehängt (zip, 58.91 KB). Haben Sie die Dateien nicht irgendwo gespeichert?

Ich habe die Version, mit der alles begann, zusammengesetzt und angehängt. Probieren Sie es aus. Die Testbedingungen und die eingestellte Datei sind ebenfalls vorhanden.

Ich hatte gestern eine Menge Arbeit. Es stellt sich heraus, dass es eine gezippte Quelle des Expert Advisors im ersten Beitrag gibt. Das ist es, was ich benutze.
 
Alexey Viktorov:

Ich habe einfach versucht, den Entwicklern das unzureichende Verhalten der Funktion zu erklären, und es gibt keine andere Möglichkeit, sie so zu nennen. Aber anstatt zu versuchen zu verstehen, was vor sich geht... Das war's... Schweigen. Keiner braucht sie.


Wo sehen Sie ein unzureichendes Verhalten der Funktion? Haben Sie die Dokumentation sorgfältig gelesen?

SeriesInfoInteger

Gibt Informationen über den Zustand der historischen Daten zurück.

Gibt Informationen über den Zustand der historischen Daten zurück. Aktualisiert keine Informationen, initiiert keinen Datenabruf. Es wird nur das zurückgegeben, was gerade da ist.

 
Slawa:

Wo sehen Sie ein unzureichendes Verhalten der Funktion? Haben Sie die Dokumentation sorgfältig gelesen?

Gibt Informationen über den Status der historischen Daten zurück. Aktualisiert die Informationen nicht und löst keinen Datenabruf aus. Ich gebe nur zurück, was im Moment da ist.

Wenn es Ihnen nichts ausmacht, gehen Sie auf https://www.mql5.com/ru/forum/89213/page6#comment_2605980, dort finden Sie alles.

SERIES_LASTBAR_DATE Zeitpunkt der letzten Balkeneröffnung durch die Symbol-Periode. Aber wenn ein neuer Balken erscheint, aber die Funktion ihn entweder sieht oder nicht sieht, wie wird sie dann genannt? Kulturell gesehen nennt man das "Function's INSTABLE operation", oder einfach unangemessenes Verhalten...

Zweitens hätten Sie in den ersten Antworten auf meine Bewerbung beim SD nicht so einen Unsinn erzählen sollen.

 
Alexey Viktorov:

SERIES_LASTBAR_DATE Eröffnungszeit des letzten Taktes nach Punktzeichen. Wenn ein neuer Balken erscheint, die Funktion ihn aber nicht sieht, wie wird er dann genannt? Kulturell gesprochen, die "Funktion der INSTABILITÄT", oder einfach ihr unangemessenes Verhalten...


Was sollte die Funktion SeriesInfoInteger bei der Anforderung SERIES_LASTBAR_DATE zurückgeben, wenn die entsprechenden Verlaufsdaten durch Timeout entladen wurden?

Und wer wird das Ergebnis von GetLastError() überprüfen?

Ihre Anfrage an servicedesk heißt "Eine ungerade if(condition) Bedingung ist nicht erfüllt". (Heiliger Strohsack, das WENN funktioniert nicht!!!) Und Sie waren es, der in diesem Antrag Unsinn geredet hat. Sie haben da drin alles durcheinander gebracht. Lesen Sie Ihre Bewerbung noch einmal in Ruhe und mit den Augen eines Außenstehenden.

Und es gibt keinen Grund, anzugreifen - dies ist ein technisches Forum, und die Argumente müssen kompetent vorbereitet werden.