Servicedesk. Beschwerden, Vorschläge.

 

Guten Tag. Heute habe ich wieder einmal erlebt, dass der Service Desk nicht immer bereit ist, sich das Problem nicht nur anzuhören, sondern es nicht einmal zur Kenntnis nehmen will. Fangen wir an.

Vor ein paar Tagen habe ich eine weitere Anfrage an servicedesk geschrieben. Der Kern der Anfrage ist der folgende (für MT4):

Индикатор находится на ТФ, старше М1. Пытаюсь получить данные через функцию SeriesInfoInteger() с ТФ М1. Функция возвращает нули для свойств SERIES_BARS_COUNT, SERIES_FIRSTDATE, SERIES_SERVER_FIRSTDATE после того, как на М1 образовался новый бар. До того, как образовался новый бар - данные возвращаются корректные. После - нули. 

Das zweite Problem ist von ähnlicher Art. Der Indikator steht auf TF MN1. Ich versuche, Daten über die Funktion SeriesInfoInteger() von der TF M5 zu empfangen. Eine Zeit lang liefert die Funktion korrekte Werte, dann hört sie auf, Nullen zu liefern, obwohl KEINE NEUE BAR AUF M5 ERÖFFNET WURDE!

In beiden Fällen sind die Daten nach der Rückkehr zu der TF, von der ich versuche, Daten zu erhalten, und dem Wechsel zu einer höheren TF eine Zeit lang korrekt, aber dann - Nullen.

Der Indikator befindet sich in der Anwendung.

Ich benötige die oben genannten Eigenschaften der Funktion SeriesInfoInteger(), um die verfügbare Historie für den TF zu prüfen/zu laden, die nicht die des Indikators ist.

Keiner der Programmierer wird die Zweideutigkeit des folgenden Typs mögen: zuerst sind Daten vorhanden, dann sind keine Daten vorhanden und sie können nicht abgerufen werden. Außerdem wird es dem/den Benutzer(n), für den/die das Programm geschrieben wurde, nicht gefallen. Wie Sie der Meldung entnehmen können, habe ich das Programm zum Testen dieses Fehlers bereitgestellt. Außerdem wurde sogar ein Protokoll erstellt:

2015.10.29 14:25:52.663 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 5001, firstDate = 2015.10.26 00:00, serv_firstdate = 2015.08.21 10:59
2015.10.29 14:25:53.113 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 5001, firstDate = 2015.10.26 00:00, serv_firstdate = 2015.08.21 10:59
2015.10.29 14:25:53.419 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 5001, firstDate = 2015.10.26 00:00, serv_firstdate = 2015.08.21 10:59
2015.10.29 14:25:53.930 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 5001, firstDate = 2015.10.26 00:00, serv_firstdate = 2015.08.21 10:59
2015.10.29 14:25:54.487 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 5001, firstDate = 2015.10.26 00:00, serv_firstdate = 2015.08.21 10:59
2015.10.29 14:25:54.795 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 5001, firstDate = 2015.10.26 00:00, serv_firstdate = 2015.08.21 10:59
2015.10.29 14:25:55.412 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 0, firstDate = 1970.01.01 00:00, serv_firstdate = 1970.01.01 00:00
2015.10.29 14:25:55.943 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 0, firstDate = 1970.01.01 00:00, serv_firstdate = 1970.01.01 00:00
2015.10.29 14:25:56.678 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 0, firstDate = 1970.01.01 00:00, serv_firstdate = 1970.01.01 00:00
2015.10.29 14:25:57.169 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 0, firstDate = 1970.01.01 00:00, serv_firstdate = 1970.01.01 00:00
2015.10.29 14:25:57.938 test_271015_series_easy EURUSD,M5: OnCalculate 1: bars count = 0, firstDate = 1970.01.01 00:00, serv_firstdate = 1970.01.01 00:00

Die Daten werden einfach gelöscht und können nur dann weiter abgerufen werden, wenn die TF in diejenige geändert wird, für die die Daten angefordert wurden.

Und das ist die Antwort, die ich von der SR erhalte.

Support-Team2015.10.29 10:41
Um die aktuellen Daten aus der Symbolperiode einer anderen Person zu erhalten, müssen Sie mehr als einmal alle 10 Sekunden auf diese Daten zugreifen. Oder greifen Sie auf diese Daten von einem Expert Advisor aus zu, z.B. mit iTime (dann können die Daten mindestens einmal alle 3 Minuten abgerufen werden)
Support-Team2015.10.29 10:42

Status:OffenGeschlossen

Aus der Nachricht geht hervor, dass es dem Service Desk (oder einigen seiner Mitarbeiter) völlig egal ist, was die Benutzer über Fehler schreiben. Ich werde häufiger als einmal alle 10 Sekunden aufgefordert, auf die Daten zuzugreifen!? Aus dem Protokoll geht hervor, dass die Daten sehr viel häufiger, nämlich bei jedem Tick, abgefragt werden. Ich bin sicher, dass dieses Protokoll nicht einmal gelesen wurde. Mir wurde jedoch vorgeschlagen, "öfter" auf sie zuzugreifen oder die Daten vom EA abzurufen. Genial. Oh, und der Antrag wurde sofort geschlossen, als hätte ich Hilfe bekommen.

Es geht weiter. Hier ist meine Antwort:

Alexey Kozitsyn2015.10.29 10:57
Sehen Sie sich die Protokolle an! Der Appell geht jede Zecke weiter! Die Zecken sind viel häufiger! Ähnlich im Timer mit einer Frequenz von 10 Mal pro Sekunde!
Alexey Kozitsyn2015.10.29 10:57
Status:GeschlossenOffen

Alexey Kozitsyn2015.10.29 10:59
Über die Perioden - es sind nur die Perioden für den Test! Wenn Sie das meinen. Auch hier werden die Daten bei jedem Häkchen abgefragt!
Alexey Kozitsyn2015.10.29 11:00
Sie können zunächst kommen und dann wieder gehen! Schauen Sie sich die Protokolle genauer an.
Alexey Kozitsyn2015.10.29 12:06

Haben Sie den Fehler gefunden?

Und Service Desk antwortet:

Support-Team2015.10.29 12:09

Öffnen Sie das gewünschte Diagramm, dann bleiben die Daten immer im Speicher, bis Sie es schließen

Seit Build 900 haben wir eine aggressive Speicherfreigabe implementiert. Wenn es ein Speicherproblem gibt, wird alles, was freigegeben werden kann, freigegeben.

Ich benötige diese Eigenschaften, um die geeignetste kleinste TF auszuwählen, die genügend Daten enthält. Mir hingegen wird angeboten, jede Karte zu öffnen. Und es spielt keine Rolle, wie viele Instrumente ich gleichzeitig analysiere, öffnen Sie alle möglichen Charts und Sie werden zufrieden sein.

Über aggressive Freisetzung und Gedächtnisprobleme. Das Terminal hat keine Speicherprobleme. In den Terminalprotokollen sind keine Fehler zu finden. Daraus können wir schließen, dass ich gerade über eine Situation informiert wurde, in der die Erinnerung befreit werden könnte. Aber das ist offensichtlich nicht mein Fall. Eine weitere Tatsache ist, dass der Service Desk sich nicht um das Problem kümmern will, sondern es einfach nur loswerden möchte.

Nächste.

Alexey Kozitsyn2015.10.29 12:27

Halten Sie es nicht für besser, die Freigabe des aggressiven Speichers zu verfeinern, anstatt die Diagramme auszubauen? Und von welchen Gedächtnisproblemen sprechen Sie? Und ja, bitte lassen Sie sie frei, aber machen Sie es möglich, sie weiterhin ohne Krücken zurückzuholen!

Haben Sie versucht, den Indikator über die Anwendung auszuführen? Verstehen Sie, dass die Daten aus der TF eines anderen kommen, kommen, kommen, und schwupps - einfach aufhören! Ist dieses Verhalten normal?

Hier ist ein Auszug aus der Dokumentation:

Für Expert Advisors und benutzerdefinierte Indikatoren ist es besser, das ereignisbasierte Verarbeitungsmodell zu verwenden. Wenn die onTick()- oder OnCalculate()-Ereignisse nicht alle erforderlichen Daten erhalten, sollten Sie den Event-Handler verlassen und davon ausgehen, dass die Daten beim nächsten Aufruf des Handlers verfügbar sind.

Der von mir zitierte Indikator verwendet genau dieses Modell. Wenn keine Daten empfangen werden, wird erwartet, dass die Daten beim nächsten Tick eintreffen. Aber die Daten kommen nicht mehr! Ganz und gar nicht! Dies ist ein Widerspruch in der Dokumentation!

In mql5 funktioniert alles wie es sein sollte, warum kann nicht in mql4 in der gleichen Weise organisiert werden?

Und die Antwort?

Support Team2015.10.29 12:45

Nein, das tut es nicht.

Was die Dokumentation betrifft, so gibt es eine einfache Schlussfolgerung: Wenn Sie ständig Daten für eine bestimmte Symbolperiode benötigen, dann stellen Sie sicher, dass diese Daten in OnInit ständig vorhanden sind. Zum Beispiel mit einer einfachen iTime(needed_symbol,needed_period) Abfrage. Und behalten Sie diese iTime auf jeder Zecke.

Sie belasten Ihr Terminal selbst mit Speicherplatz. Reduzieren Sie also die Anzahl der Balken im Diagramm auf das notwendige Maß. Um kritische Daten zu sichern, öffnen Sie das Diagramm mit der richtigen Symbol-Periode.

Wenn Sie mit dem aktuellen Stand der Dinge nicht zufrieden sind, lassen Sie uns im Forum darüber diskutieren. Es ist sinnlos, hier darüber zu diskutieren.

Der MT5 hat ein völlig anderes Modell für die Nutzung historischer Daten

Support-Team2015.10.29 12:46
Status:Geschlossen

Der Reihe nach:

Nein, das scheint nicht der Fall zu sein.

Einfach rüpelhaft. Keine Erklärung, kein Kommentar.

Was die Dokumentation betrifft, so ist die Schlussfolgerung hier einfach: Wenn Sie ständig einige Symbol-Perioden-Daten benötigen, dann stellen Sie sicher, dass diese Daten immer in OnInit vorhanden sind. Zum Beispiel mit einer einfachen iTime(needed_symbol,needed_period) Abfrage. Und behalten Sie iTime auf jeder Zecke.

Die erste Krücke des gesunden Menschenverstands. Einfacher Rückschluss!? Wo ist diese Schlussfolgerung? Glauben Sie wirklich, dass jeder, der in mql schreibt, diese Schlussfolgerung für sich selbst gezogen hat? Spekulieren Sie nicht für andere. Aus dem Geschriebenen werden Schlussfolgerungen gezogen. Zum Vergleich. In der Dokumentation zu mql5 gibt es im Abschnitt "Organisation des Datenzugriffs" ein Beispiel dafür, wie der Datenzugriff organisiert werden muss. Alles funktioniert perfekt. Hier müssen Sie erraten, dass Sie, wenn die Funktion SeriesInfoInteger() 0 zurückgibt, die Funktion iTime() für das benötigte Symbol/die benötigte Periode aufrufen müssen. Warum wird nicht darüber geschrieben? Warum können wir die Funktion SeriesInfoInteger() nicht einfach ohne diese Krücken verbessern? Oder zumindest eine Klarstellung in der Dokumentation? Liebe Entwickler, wenn Sie weniger Fragen haben wollen, schreiben Sie in der Dokumentation einmal ausführlich wie und was. Menschen können lesen!

Sie belasten Ihr Terminal selbst mit Speicherplatz.

Ich frage mich, was du mir sagen wolltest! Das Terminal kann Arbeitsspeicher verbrauchen, aber das Terminal mit Arbeitsspeicher zu überlasten, ist etwas Neues für mich.

Reduzieren Sie also die Anzahl der Balken im Diagramm auf das notwendige Maß. Um kritische Daten zu sichern, öffnen Sie das Diagramm mit der richtigen Symbol-Periode.

Was glauben Sie, wie viele Balken ich den Indikator in der Anwendung getestet habe? Es scheint Sie nicht zu interessieren, denn Sie haben nicht einmal gefragt. Es ist eine Zahl von 5000. Das ist das Minimum, das möglich ist. Und wieder der Vorschlag, die Tabelle zu öffnen. Ich habe es verstanden, danke. Fügen Sie sie der Dokumentation hinzu (falls erforderlich).

Und endgültig.

Wenn Sie mit dem derzeitigen Stand der Dinge unzufrieden sind, sollten wir diese Diskussion im Forum führen. Es ist müßig, dies hier zu diskutieren.

MT5 hat ein völlig anderes Modell der Nutzung historischer Daten

Ja, ich bin mit dem derzeitigen Stand der Dinge nicht zufrieden. Benutzer finden Fehler (ich betrachte das Verhalten der Funktion SeriesInfoInteger() immer noch als Fehler) in Ihrem Programm. Sie tun es kostenlos. Und es ist nicht so, dass man sie nicht reparieren will, man will ihnen nicht einmal zuhören und sich die von den Nutzern angegebenen Daten ansehen. Und es ist nicht das erste Mal, dass man Tatsachen einfach so hinnimmt und sich nicht um Fehler schert. Ich hoffe, dass die Entwickler zuhören und es in Zukunft positive Veränderungen geben wird. Ihre derzeitige Haltung wird die Einstellung zu Ihnen und Ihrem Produkt entpopulieren.

Ich danke Ihnen allen für die Lektüre.

Falls jemand diese Funktion testen möchte, findet sich der Indikator im Anhang.

Dateien:
 

Es wurde gesagt: "Lasst uns diese Diskussion ins Forum tragen".

Worüber wollen Sie im Forum diskutieren, über meine Ungezogenheit oder über das Problem der Speicherbereinigung?

 
Slawa:

Ihnen wurde gesagt: "Bringen wir diese Diskussion ins Forum".

Was wollen Sie im Forum diskutieren, meine Unhöflichkeit oder das Problem der Speicherbereinigung?

Also habe ich die Diskussion ins Forum gestellt. Machen wir es kompatibel.

Zum Thema Unhöflichkeit. Es ist nicht immer angenehm, mit Searcydesk zu sprechen. Argumente oben.

Über die Funktion. Ich habe den Nachweis erbracht, dass die Funktion nicht korrekt funktioniert. Sie haben mir "Krücken" angeboten. Wenn Sie ohne Krücken nicht richtig arbeiten können, fügen Sie eine Beschreibung dieser Krücken in die Dokumentation ein, damit in Zukunft keine Fragen mehr auftauchen.

 
Ich möchte die Programmierer um ihre Meinung bitten. Sind Sie mit dem Verhalten der Funktion SeriesInfoInteger() zufrieden? Sind Sie mit der Sprachdokumentation zufrieden?
 
Alexey Kozitsyn:
Ich bitte die Programmierer, mir ihre Meinung mitzuteilen. Sind Sie mit dem Verhalten der Funktion SeriesInfoInteger() zufrieden? Sind Sie mit der Sprachdokumentation zufrieden?

Ich habe das Problem mit den Daten in den Indikatoren schon vor langer Zeit angesprochen!

https://www.mql5.com/ru/forum/42180

Man hat mir versichert, dass das Problem gelöst ist.

Sie schrieben darüber sogar in der Zusammenfassung der Veröffentlichung 1200

17:Terminal: Es wurde ein Fehler behoben, der dazu führte, dass historische Daten trotz regelmäßiger Datenzugriffe von MQL5-Programmen als unbenutzt entladen wurden.

DasProblem ist also noch nicht gelöst?

ФОРТС Прошу помощи
ФОРТС Прошу помощи
  • www.mql5.com
Прошу откомпилировать этот код и "бросить" индикатор на символ MIX-6. - - Категория: автоматические торговые системы
 
Михаил:

Ich habe das Problem mit den Daten in den Indikatoren schon vor langer Zeit angesprochen!

https://www.mql5.com/ru/forum/42180

Man hat mir versichert, dass das Problem gelöst ist.

Sie schrieben darüber sogar in der Zusammenfassung der Veröffentlichung 1200

Terminal: Fehler behoben, der dazu führte, dass historische Daten trotz regelmäßiger Datenzugriffe von MQL5-Programmen als unbenutzt entladen wurden.

DasProblem wurde also nicht gelöst?

Ich meinte in diesem Fall MT4. Aber auch für MT5 ist das Thema relevant.

 
Alexey Kozitsyn:

In diesem Fall bezog ich mich auf MT4. Aber auch für MT5 ist die Frage relevant.

Ich habe noch nicht auf 1200 aktualisiert, kann also nicht überprüfen, ob das Problem behoben ist oder nicht.

Aber es gab einen solchen Fehler in MT5

 
Михаил:

Ich habe noch nicht auf 1200 upgegradet, kann also nicht überprüfen, ob das Problem schon behoben ist.

Aber es gab einen solchen Fehler in MT5

Jetzt lädt es 1204. Wir werden sehen.
 
Alexey Kozitsyn:
Jetzt wird 1204 heruntergeladen. Schauen wir mal.
Überprüft auf 1200 ( bx demo ), scheint behoben worden zu sein :)
 
Wenn die MT5-FunktionSeriesInfoInteger nicht verwendet wird und stattdessen die alten MT4-Funktionen, iBars, iTime, MarketInfo usw. verwendet werden, bleibt das Problem bestehen?
 
In der vierten Runde werden wir das Problem beheben, indem wir es mit dem aggressiven Entladen ungenutzter Karten übertreiben.