Fehler, Irrtümer, Fragen - Seite 2996

 
Artyom Trishkin:

Das ist schon lange her. Das Problem ist schon lange gelöst. Sie müssen mindestens einmal alle zwei Minuten auf nicht-native Zeitrahmen/Symboldaten zugreifen. Wenn in der Hauptschleife noch keine Daten aus dem angeforderten Zeitrahmen vorliegen, müssen Sie die Schleife verlassen - geben Sie einfach Null zurück, um auf den nächsten Tick zu warten, und der Indikator weiß, dass die historischen Daten noch nicht berechnet wurden.

Sie werden also berechnet, nur die Werte werden falsch übermittelt. Sie funktioniert nur bei Minuten richtig.

 
Francuz:

So werden sie auch berechnet, nur werden die Werte falsch zurückgesendet. Funktioniert nur bei Minuten richtig.

Sinddie Richtungen der Array-Indizierung identisch?

 
Artyom Trishkin:

Sinddie Indizierungsrichtungen der Arrays identisch?

Kopieren eines Wertes. Glauben Sie, dass das Umdrehen der Anordnung etwas ändern wird? Aber nur für den Fall habe ich überprüft und sichergestellt, dass das Umdrehen der Array-Nummerierung den Einzelwert nicht verändert. :)

 
Francuz:

Kopieren eines Wertes. Glauben Sie, dass das Umdrehen der Anordnung etwas ändern wird? Aber nur für den Fall, ich habe überprüft und sichergestellt, dass das Umdrehen der Array-Nummerierung nicht den einzigen Wert ändert. :)

Nun, ich weiß nicht, was, wie und wo Sie kopieren.

 
Artyom Trishkin:

Ich weiß nicht, was, wie oder wo du kopierst.

0_о

Der angegebene Indikatorcode zeigte alles an:

::CopyBuffer(handle, 0, a, 1, Buffer);
 
Francuz:

Sie verstehen nicht, worum es geht. Der Code sollte nur einmal funktionieren. Er soll deutlich machen, dass der genannte Indikator nicht funktioniert. Das Problem ist, dass der aufgerufene Indikator nicht funktioniert, wenn er (und der Aufrufer) einen anderen TimeFramehat als der Minuten-Indikator. Ich habe herausgefunden, dass es sich um einen Fehlervon MetaTrader handelt, der nur mit Krücken gelöst werden kann. Und dieses Problem ist ziemlich alt. Die Einzelheiten können Sie unter "Ich kann keine Indikatordaten von der höheren TF 123 erhalten" nachlesen.

Was meinen Sie mit hervorgehoben? Der aktuelle Zeitraum wird im Code festgelegt.

   handle = iCustom(_Symbol, PERIOD_CURRENT, "Examples\\ATR.ex5", 14);

Sie zeigen zumindest etwas, mit welchen Parametern Sie gearbeitet haben, was Sie erhalten haben und was Sie zu erhalten erwarten. Und es wäre schön zu sehen, was diese Linie druckt

   ::Print(__FUNCTION__ + "| PERIOD_CURRENT = ", EnumToString(_Period));
 
Alexey Viktorov:

Hervorgehoben, was hat das zu bedeuten? Der Code gibt den aktuellen Zeitraum an.

Sie sollten mir wenigstens zeigen, mit welchen Parametern Sie gearbeitet haben, was Sie erhalten haben und was Sie erwartet haben. Und es wäre schön zu sehen, was diese Zeile ausgibt

1. Sie können diesen Code zum Beispiel mit einem anderen TimeFrame als einer Minute ausführen.

2. Führen Sie ATR mit demselben Symbol und demselben TimeFrame aus.

3. Vergleichen Sie dieATR-Werte über den Code und direkt mit dem Indikator.

4. Prüfen Sie, ob die Werte nicht übereinstimmen.

Beispiel

BS ist der empfangene ATR-Wert.

 
Francuz:

1. Führen Sie den obigen Code mit einem anderen TimeFrame als einer Minute aus.

2. Führen Sie ATR mit demselben Symbol und demselben TimeFrame aus.

3. Vergleichen Sie dieATR-Werte über den Code und direkt mit dem Indikator.

4. Stellen Sie sicher, dass die Werte nicht übereinstimmen.

Haben Sie versucht, den von mir gelb markierten Code einzufügen und den Indikator auszuführen?

 
Francuz:

1. Führen Sie den obigen Code mit einem anderen TimeFrame als einer Minute aus.

2. Führen Sie ATR mit demselben Symbol und demselben TimeFrame aus.

3. Vergleichen Sie dieATR-Werte über den Code und direkt mit dem Indikator.

4. Stellen Sie sicher, dass die Werte nicht übereinstimmen.

BS ist der empfangene ATR-Wert.

Vielleicht sind die Skier schlecht?


und auch RTS-6.21


 
Nikolai Semko:
Haben Sie versucht, den von mir gelb markierten Code einzufügen und den Indikator auszuführen?

Ja, das habe ich. Das Ergebnis hat sich nicht geändert.