Bugs und Vorschläge zur Verbesserung von CopyTicks() und CopyTicksRange() nach Build 1485. - Seite 3
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
Danke für die Nachricht, der Fehler wurde behoben - es funktioniert jetzt auch in den Indikatoren. Ein Update wird in Kürze veröffentlicht.
Ich glaube, ich bin hier richtig. Liebe Forumsmitglieder, ich kämpfe schon seit langem mit diesem Problem, kann es aber nicht lösen. Ich hoffe, Sie können helfen.
Die Situation ist die folgende: Broker Finam (Whotrades), MMA-Konto. Ich arbeite mit 26 russischen Wertpapieren, d.h. ich habe 26 Fenster geöffnet und in jedem Fenster hängt eine Kopie meines Expert Advisors. Sie verwenden die gemeinsame C++-Bibliothek, die über ein gemeinsames Fenster zur Verwaltung und Anzeige von Debugging-Informationen verfügt.
Einige Strategieparameter hängen direkt vom Tick-Tape ab, daher ist es sehr wichtig, dass alle Ticks den Algorithmus durchlaufen. Natürlich war es eine Überraschung zu erfahren, dass OnTick() nicht bei jedem Tick funktioniert, und nicht immer, sogar bei einem Tick. Infolgedessen ist es notwendig geworden, die Funktionen CopyTicks und CopyTicksRange für den Zeitgeber zu verwenden. Dank großer Anstrengungen (und es steht nirgends geschrieben) habe ich herausgefunden, dass datetime*1000 genau die Anzahl der Millisekunden seit 1970 ist, aber das ist nicht der Punkt.
Das Endergebnis dessen, was wir jetzt haben, ist ein Code-Block, der, onTimer, seit 10 Uhr morgens beginnt, die neuesten Tick-Daten anzufordern.
Das Problem ist, dass, aus irgendeinem Grund ist es wichtig, am ersten Tag nach dem Metatrader Neustart, für einige Wertpapiere, Tick-Daten beginnt zu kommen nur um 11 Uhr (mehr oder weniger), am nächsten Tag - alles ist normal, es beginnt um 10 Uhr. Die Liste dieser Wertpapiere ist in keiner Weise festgelegt, an manchen ersten Tagen kann es sein, dass die Ticks für einige Wertpapiere nicht kommen, an manchen Tagen - für andere.
Ich dachte, das Problem sei die Zwischenspeicherung der Ticks. Ich dachte, es handele sich um ein Problem mit dem falschen Timing, aber das war nicht der Fall. Außerdem scheint es, dass, wenn CopyTicks(Range) die Daten nicht zurückgeben könnte, sie einen Fehler (-1) zurückgeben könnten und alles würde einen Sinn ergeben. Es wird jedoch 0 zurückgegeben, das Array ist ebenfalls Null und GetLastError gibt ERR_SUCCESS zurück. Das heißt, es ist so, als gäbe es diese Häkchen nicht, was seltsam ist, da sie in der Multifunktionsleiste im Fenster vorhanden sind.
Ich bin ratlos. Ich hoffe, Sie können mir sagen, was ich tun soll, oder zumindest, in welche Richtung ich gehen soll.
Wenn Sie den Code zur Verfügung stellen müssen, werde ich ihn mit dem nächsten Kommentar von den "zusätzlichen" Befehlen bereinigen und veröffentlichen.
Ich danke Ihnen!
Ja, ein Code ist wünschenswert. Handelt es sich um ein echtes oder ein Demo-Konto? Wie ist das Terminal aufgebaut?
Ehrlich gesagt, weiß ich nicht, ob jemand hier mit Ihrem Makler zusammenarbeitet. Wenn hier niemand auf Ihren Beitrag reagiert - schreiben Sie an ServiceDesk, Sie können direkt auf Ihren Beitrag verlinken. Außerdem müssen sie einen Code angeben.
Ja, ein Code ist wünschenswert. Handelt es sich um ein echtes oder ein Demo-Konto? Wie ist das Terminal aufgebaut?
Ehrlich gesagt, weiß ich nicht, ob jemand hier mit Ihrem Makler zusammenarbeitet. Wenn hier niemand auf Ihren Beitrag reagiert - schreiben Sie an ServiceDesk, Sie können direkt auf Ihren Beitrag verlinken. Außerdem müssen sie einen Code angeben.
Das Konto ist echt, letzter Build, 1525. Ich denke, das sollten Sie tun. Erstellen Sie den nackten Tick-Taking-Code ohne den Strategiealgorithmus. Führen Sie es aus. Wenn es nicht funktioniert, sollten Sie den Service Desk anrufen. Wenn es doch funktioniert, sollte man vielleicht die Fehler im eigenen Code suchen.
Danke für den Hinweis auf den Service Desk, ich wusste nicht, dass das möglich ist. Ich habe auf der Website von metaquotes nachgesehen, alle Kontakte sind Telefonnummern in Zypern und China, keine einzige E-Mail.
Es ist besser, sich mit dem Code direkt an den Kundendienst zu wenden, um ihn abzuspielen.
Das Konto ist echt, der Build ist der neueste, 1525. Ich denke, das sollten wir tun. Erstellen Sie einen nackten Tick-Taking-Code ohne den Strategiealgorithmus. Führen Sie es aus. Wenn es nicht funktioniert, wenden Sie sich an den Kundendienst. Wenn es doch funktioniert, sollte man vielleicht die Fehler im eigenen Code suchen.
Danke für den Hinweis auf den Service Desk, ich wusste nicht, dass das möglich ist. Ich habe auf der Website von metaquotes nachgesehen, alle Kontakte sind Telefonnummern in Zypern und China, keine einzige E-Mail.
Ich glaube, ich bin hier richtig. Liebe Forumsmitglieder, ich kämpfe schon seit langem mit diesem Problem, kann es aber nicht lösen. Ich hoffe, Sie können helfen.
Die Situation ist die folgende: Broker Finam (Whotrades), MMA-Konto. Ich arbeite mit 26 russischen Wertpapieren, d.h. ich habe 26 Fenster geöffnet und in jedem Fenster hängt eine Kopie meines Expert Advisors. Sie verwenden die gemeinsame C++-Bibliothek, die über ein gemeinsames Fenster zur Verwaltung und Anzeige von Debugging-Informationen verfügt.
Einige Strategieparameter hängen direkt vom Tick-Tape ab, daher ist es sehr wichtig, dass alle Ticks den Algorithmus durchlaufen. Natürlich war es eine Überraschung zu erfahren, dass OnTick() nicht bei jedem Tick funktioniert, und nicht immer, sogar nicht bei dem Tick. Infolgedessen ist es notwendig geworden, die Funktionen CopyTicks und CopyTicksRange für den Zeitgeber zu verwenden. Dank großer Anstrengungen (und es steht nirgends geschrieben) habe ich herausgefunden, dass datetime*1000 genau die Anzahl der Millisekunden seit 1970 ist, aber das ist nicht der Punkt.
Das Endergebnis dessen, was wir jetzt haben, ist ein Code-Block, der, onTimer, seit 10 Uhr morgens beginnt, die neuesten Tick-Daten anzufordern.
Das Problem ist, dass, aus irgendeinem Grund ist es wichtig, am ersten Tag nach dem Metatrader Neustart, für einige Wertpapiere, Tick-Daten beginnt zu kommen nur um 11 Uhr (mehr oder weniger), am nächsten Tag - alles ist normal, es beginnt um 10 Uhr. Die Liste dieser Wertpapiere ist in keiner Weise festgelegt, an manchen ersten Tagen kann es sein, dass für einige Wertpapiere keine Ticks kommen, an manchen Tagen - für andere.
Ich dachte, das Problem sei die Zwischenspeicherung der Ticks. Ich dachte, es handele sich um ein Problem mit dem falschen Timing, aber das war nicht der Fall. Außerdem scheint es, dass, wenn CopyTicks(Range) die Daten nicht zurückgeben könnte, sie einen Fehler (-1) zurückgeben könnten und alles würde einen Sinn ergeben. Es wird jedoch 0 zurückgegeben, das Array ist ebenfalls Null und GetLastError gibt ERR_SUCCESS zurück. Das heißt, es ist so, als gäbe es diese Häkchen nicht, was seltsam ist, da sie in der Multifunktionsleiste im Fenster vorhanden sind.
Ich bin ratlos. Ich hoffe, Sie können mir sagen, was ich tun soll, oder zumindest, in welche Richtung ich gehen soll.
Wenn Sie den Code zur Verfügung stellen müssen, werde ich ihn mit dem nächsten Kommentar von den "zusätzlichen" Befehlen bereinigen und veröffentlichen.
Ich danke Ihnen!