Fehler, Irrtümer, Fragen - Seite 131

 
Dmitriy2:

der Code wird eingefügt, die Datei wird nicht angehängt


Es wurden Korrekturen vorgenommen.

Bitte versuchen Sie es erneut.

 
alexvd:

Er bleibt wegen der Endlosschleife hängen.

Es gibt nur einen Ausweg aus der Schleife - eine Pause. Aber der Bruch, den Sie haben, tritt ein, wenn eine bestimmte Bedingung erfüllt ist. Eine der Komponenten

Sie holen sich den Indikator-Handle jedes Mal innerhalb der Funktion und kopieren ihn, ohne zu prüfen, ob die Daten bereit sind.

Anregung.

1. Bringen Sie die Handle-Variable auf die globale Ebene.

2. Empfangen Sie den Indikator-Handle bei OnInit (Sie ändern die Parabelparameter sowieso nicht).

3. Prüfen Sie vor dem Kopieren von Daten aus dem Indikatorpuffer deren Berechenbarkeit - die Funktion BarsCalculated (Parabolic) wird Ihnen dabei helfen.

4) Organisieren Sie den Ausstieg aus dem Zyklus. Wenn Sie den Punkt 3 nicht ausführen, ist es notwendig, die Funktion BarsCalculated(Parabolic) aufzurufen. 3 nicht erfüllt ist.

2. es ändert sich nicht in das Testbeispiel, in der Tat diese Funktion wird die ganze Zeit mit verschiedenen Parametern verwendet, das ist, warum ich das Handle nicht in OnInit erhalten

3. ich werde es überprüfen, ich verstehe nur nicht wirklich, wofür ich es brauche, die Bedingung ist so, dass es nicht scheitern kann, eine Reihe von parabolischen Punkten ist die nächsten Balken, sie sollten auf jeden Fall hochgeladen werden (und im Allgemeinen verstehe ich, dass die Geschichte an den Tester ein Jahr vor dem angegebenen Startdatum der Prüfung hochgeladen wird). Das funktioniert wirklich gut. Es funktioniert in MQL4 sowohl in real als auch im Tester (obwohl es keine separate Parabelfunktion gibt, aber sie ist eingebaut...).

 
alexvd:

Es wurden Korrekturen vorgenommen.

Versuchen Sie es noch einmal.

Ja, es hat funktioniert, danke.
 
Dmitriy2:

2. es ändert sich nicht in das Testbeispiel, und in der Tat ist diese Funktion die ganze Zeit mit verschiedenen Parametern verwendet, so dass ich das Handle nicht in OnInit erhalten

3. ok, ich werde es überprüfen, ich verstehe nur den Punkt nicht wirklich, die Bedingung ist so, dass es nicht scheitern kann, eine Reihe von parabolischen Punkten sind die nächsten Balken, sie sollten auf jeden Fall hochgeladen werden (und im Allgemeinen verstehe ich, dass die Historie ein Jahr vor dem angegebenen Teststartdatum an den Prüfer hochgeladen wird). Das funktioniert wirklich gut. Sie funktioniert in MQL4 sowohl in der Realität als auch im Testprogramm (allerdings gibt es eine eingebaute Parabelfunktion, keine separate).

3. Es wurde bereits erörtert und in der Referenz(https://www.mql5.com/ru/docs/series/barscalculated) beschrieben, warum dies notwendig ist.

Hinweis

Die Funktion ist nützlich, wenn Sie die Daten eines Indikators direkt nach seiner Erstellung abrufen möchten (um ein Indikator-Handle zu erhalten).

Dies ist Ihr Fall.

Der Indikator wird auf der Grundlage der Balkendaten berechnet. Die Balken sind vorhanden, aber die berechneten Daten können fehlen.

Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
  • www.mql5.com
Доступ к таймсериям и индикаторам / BarsCalculated - Документация по MQL5
 
Rosh:
Das bedeutet, dass diese Position das Ergebnis mehrerer Geschäfte mit diesem Instrument ist. Als Ergebnis sehen Sie den gewichteten Durchschnittspreis der Position.
Ich dachte,der gewichtete Durchschnittspreis bezieht sich nur auf technische Indikatoren... ich glaube, ich kann ihn im Tester nicht immer auf 0 bringen... manchmal ragen ein paar Cents heraus
 
alexvd:

3. Warum dies notwendig ist, wurde bereits mehrfach diskutiert und ist in der Hilfe beschrieben(https://www.mql5.com/ru/docs/series/barscalculated).

Dies ist Ihr Fall.

Der Indikator wird auf Basis von Balkendaten berechnet. Die Balken sind vorhanden, aber die berechneten Daten sind es möglicherweise nicht.

Ja, ich habe es mit BarsCalculated, vielen Dank.

Aber trotzdem ist es logisch falsch, dass es im Testgerät funktioniert und nicht funktioniert. Sie müssen alle Prüfungen bereits in den Tester eingebaut haben, und wenn die Anfrage zu einigen Daten geht und sie nicht da sind, dann erscheint der Fehler. Aber der Tester hat Balken, aber aus irgendeinem Grund kann er keine Daten berechnen und bleibt still...

 
maryan.dirtyn:
Ich dachte,der gewichtete Durchschnittspreis sei nur ein technischer Indikator... Ich erhalte nicht immer 0, wenn ich den Strategietester laufen lasse... Manchmal können ein paar Cents auftreten.

Gewichteter Durchschnitt nach Volumen. Zum Beispiel gab es drei Abschlüsse für EURUSD:

Deal
Band
Preis
EURUSD kaufen
0,1 Los
1.2800
EURUSD kaufen0,2 Lose
1.3400
EURUSD kaufen0,3 Lose
1.2000
Insgesamt: Long-Position auf EURUSD
0,6 Los
?


Infolgedessen haben wir eine Position auf EURUSD mit einem Volumen von 0,6 Lots, aber zu welchem Preis?

 
Rosh:

Gewichteter Durchschnitt nach Volumen. Zum Beispiel gab es drei Abschlüsse für EURUSD:

Deal
Band
Preis
EURUSD kaufen
0,1 Los
1.2800
EURUSD kaufen0,2 Lose
1.3400
EURUSD kaufen0,3 Lose
1.2000
Insgesamt: Long-Position auf EURUSD
0,6 Los
?


Am Ende haben wir eine EURUSD-Position von 0,6 Lots, aber zu welchem Preis?

Wäre es nicht einfacher, den Preis auf die Genauigkeit der Währung auf Serverebene zu runden? Schließlich muss sich der Expert Advisor mit der Anpassung der Genauigkeit und des Preises pro Punkt befassen...
 
Interesting:
Wäre es nicht einfacher, den Preis auf die Genauigkeit der Währung auf Server-Ebene aufzurunden? Schließlich würde jeder EA unter der Anpassung der Genauigkeit und des Preises pro Punkt leiden müssen...
Warum sollte sich der EA die Mühe machen? Dieser gewichtete Durchschnittspreis wird für die Berechnung der Positionsschließung benötigt. Der Expert Advisor benötigt sie nicht. Sie müssen die Position dennoch zu einem normalen Preis mit der für dieses Symbol erforderlichen Anzahl von Stellen schließen.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Rosh:
Warum sollte der Expert Advisor leiden? Dieser gewichtete Durchschnittspreis wird für die Berechnung der Schließung von Positionen benötigt. Sie ist für den Expert Advisor nicht von Nutzen. Er muss die Position zu einem normalen Preis mit der für dieses Symbol erforderlichen Anzahl von Zeichen schließen.

In einigen Fällen ist ein normalisierter Preiswert erforderlich, unabhängig davon, wie der Preis erhalten wird.

Es ist einfacher, eine serverseitige Normalisierung vorzunehmen, solange der Server den Eröffnungskurs ohnehin neu berechnet (zumindest meiner Meinung nach).


Übrigens, da wir über den gewichteten Durchschnittspreis und die Netting-Plattform sprechen.

Soweit ich weiß, gibt es zwei Modelle für das Trimmen (teilweise Schließen) einer Verlustposition, die zuvor geschlossen wurde:

1. Nicht den Verlust aus dem Teilschlusskurs ausgleichen, sondern einfach den Eröffnungskurs neu berechnen (wenn ich mich nicht irre, ist es das, was FC tut);

2. den Eröffnungskurs unverändert lassen und den Verlust fixieren.

Das Gleiche gilt für die Umkehrung von Verlustpositionen


Ich möchte die Meinung der Entwickler darüber, welche Methode wird schließlich in MT5 standardisiert werden, wenn möglich, warum...