CopyTicksRange () funktioniert nicht korrekt in MQL5. a - Seite 2

 
Alexey Viktorov #:

Ich habe die Schlüsselwörter hervorgehoben.

Fordern Sie KEINE Zecken an, die nicht bereits per Definition vorhanden sind. Wenn Sie Ticks anfordern, die auch nur eine Millisekunde über die aktuelle Zeit in Millisekunden hinausgehen, erhalten Sie genau die g.........y in Form der von Ihnen aufgeführten Probleme.


Also, nach Ihrem Verständnis, sollte ich zunächst prüfen, ob diese Ticks vorhanden sind? z.B. wie? kann ich auch prüfen, ob der angeforderte Bereich im Urlaub ist? es muss durch die Funktion CopyTicksRange() geschehen . Meine Aufgabe ist es, ihm die Eingabeparameter gemäß der Dokumentation zu geben. Und es kann sie überprüfen und gegebenenfalls einen Fehler zurückgeben, aber nicht irgendeinen Unsinn in der Antwort.

Fällt Ihnen eine Möglichkeit ein, zu prüfen, ob ein vorhandener Balken Ticks von der zweiten bis zur dritten Sekunde enthält, um einen Absturz dieser Funktion zu verhindern?


Oben habe ich ein Codebeispiel geschrieben, in dem alles vorhanden ist, aber die Antwort ist trotzdem falsch.

 
RusPro #:


Nach Ihrem Verständnis sollte ich also zunächst prüfen, ob diese Ticks verfügbar sind? Wie zum Beispiel? Sollte ich auch prüfen, ob der angeforderte Bereich am freien Tag liegt? Dies sollte mit der Funktion CopyTicksRange() geschehen . Meine Aufgabe ist es, ihm die Eingabeparameter gemäß der Dokumentation zu geben. Er kann sie überprüfen, und wenn etwas passiert, gibt er einen Fehler zurück, aber nicht irgendeinen Blödsinn als Antwort.


Oben habe ich ein Codebeispiel geschrieben, in dem alles vorhanden ist, aber die Antwort ist trotzdem falsch.

SymbolInfoTick

Liefert aktuelle Preise für ein angegebenes Symbol in einer Variablen vom Typ MqlTick.

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   long         time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags;         // Флаги тиков
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью
  };

Sie brauchen die Ticks nicht weiter abzufragen als time_msc

 

1) In meinem obigen Beispiel ist der gewünschte Bereich vorhanden.

2) aber was hindert daran, diese Prüfung inCopyTicksRange selbst zu machen und es auch in der Dokumentation wiederzugeben? Warum bitten mich die Entwickler, Krücken zu machen, anstatt ihre Fehler einfach zu beheben?


AproposSymbolInfoTick - es funktioniert auch falsch, zumindest fürsynthetische Zeichen :)

Wenn ich mich recht erinnere, wird immer die Zeit des ersten Ticks und nicht die des letzten Ticks angezeigt.

 
RusPro SymbolInfoTick - es funktioniert auch falsch, zumindest fürsynthetische Zeichen :)

Soweit ich mich erinnere, wird immer die Zeit des allerersten Ticks und nicht die des letzten Ticks zurückgegeben.

Ich beteilige mich nicht mehr an diesem Dialog.

 
Alexey Viktorov #:

Ich beteilige mich nicht mehr an diesem Dialog.

Sie sind auch kein Metatrader-Entwickler, warum haben Sie die Rolle des Fürsprechers übernommen?

Die angesprochenen Punkte sind im Wesentlichen richtig, die Funktion sollte korrekt funktionieren.
 
Sergey Gridnev #:
Sie sind auch kein Metatrader-Entwickler, warum haben Sie die Rolle des Fürsprechers übernommen?

Die angesprochenen Punkte sind im Wesentlichen richtig, die Funktion sollte korrekt funktionieren.

Eine Zeile zurück zum Dialog:

Die Funktion sollte so funktionieren, wie es die Entwickler beabsichtigt haben, und nicht so, wie es die Benutzer wünschen. Der eine will das eine, der andere das andere, und der eine will Unsinn.

Das ist der Grund, warum die Entwickler nicht auf Sie reagieren. Und ich bin kein Anwalt, ich versuche, Ihnen eine einfache Wahrheit zu vermitteln: Belasten Sie nicht andere, wenn Sie es nicht selbst können. Sie hingegen haben das "Nicht......... nachgeben..." eingeschaltet und erfinden Mythen über Krücken.

Das ist wirklich ALLES¡¤¡¤¤¤ Entwickler werden Ihnen nicht antworten... machen Sie sich keine Hoffnungen.

 
RusPro #:

Und hier ist der Fehler:

d.h. die Funktion, die von Tausenden von Programmierern verwendet wird, hat mir persönlich alle Ticks ab dem Beginn des aktuellen Balkens zurückgegeben, die nicht im gewünschten Bereich enthalten sind

Dies ist in der Tat ein Fehler. Stellen Sie die vollständigen Daten für die Wiedergabe bereit. Wenn dies bestätigt wird, werden die Entwickler in den nächsten Builds eine Korrektur vornehmen.

Vielleicht liegt das Problem im statischen Array MqlTick.
 

Alexey Viktorov #:

Keine Notwendigkeit, Ticks weiter als time_msc abzufragen

Der letzte historische Tick kann aktueller sein als SymbolInfoTick (wird nach CopyTicks aufgerufen). Damit habe ich täglich zu tun.

Das Gegenteil kann der Fall sein. Flows, die nicht synchronisiert sind.
 
fxsaber #:

Dies ist in der Tat ein Fehler. Stellen Sie alle Daten für die Wiedergabe bereit. Wenn dies bestätigt wird, werden die Entwickler in den nächsten Builds eine Korrektur vornehmen.

Vielleicht liegt das Problem im statischen Array MqlTick.

Ok, ich werde versuchen, den Code auf ein Minimum zu reduzieren und ihn zu veröffentlichen. CopyTicks enthält auch solche Pannen, aber sie traten dort in weniger vorhersehbarer Weise auf, was mich zu Krücken nur für CopyTicksRange führte. Wahrscheinlich handelt es sich um einen Fehler in einer allgemeinen internen Funktion.

Ich werde Ihnen auch ein Beispiel für SymbolInfoTick zeichnen.

 
RusPro #:

Funktion, die von Tausenden von Programmierern verwendet wird

Einheiten.