Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 816

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Neue Version von MetaTrader 5 build 1730: Projekte in MetaEditor und synthetische Tools

Renat Fatkhullin, 2017.12.28 08:59

In der Build 1730 haben wir diesen Fehler gefunden und behoben(der Cache wird jetzt bei einem Suchfehler zurückgesetzt), was zu Ihrem Fehler führte

 
Ivan Ivanov:

Es sind jeweilsnur Informationen zu 1 (ausgewählten ) Position verfügbar:

Geben Sie eine Tatsache oder einen Hinweis an? Bei einer Suche konnte ich nirgends etwas in dieser Richtung finden.

 
pivomoe:

Geben Sie eine Tatsache an oder fragen Sie nach einer Bescheinigung? Bei einer Suche konnte ich nirgends etwas in dieser Richtung finden.

Um eine beliebige Positionseigenschaft abrufen zu können, muss die gewünschte Position vorgewählt werden.
Eine Beschreibung der Funktionen zum Abrufen der Eigenschaften von PosotionGetXXXX-Positionen finden Sie in der Hilfe:
Die Funktion gibt die gewünschte Eigenschaft einer offenen Position zurück, die zuvor mit der FunktionPositionGetSymbol oderPositionSelectausgewählt wurde.
Sie können sich das so vorstellen: Wenn Sie im Supermarkt lesen wollen, was auf dem Etikett eines Marmeladenglases steht, müssen Sie zuerst das Glas in die Hand nehmen.
 
fxsaber:
Nach der Formulierung "die zu Ihrem Irrtum geführt hat" zu urteilen, haben sie den Fehler nicht im Jahr 1730, sondern in einer früheren Version gefunden. D.h. laut den Entwicklern von 1730 funktioniert jetzt in dieser Hinsicht alles perfekt.
 
Vladimir Karputov:
Um eine beliebige Eigenschaft einer Position zu erhalten, muss die gewünschte Position vorgewählt werden.
Eine Beschreibung der Funktionen zum Abrufen der Positionseigenschaften von PosotionGetXXXXX finden Sie in der Hilfe:
Die Funktion liefert die gewünschte Eigenschaft einer offenen Position, die zuvor mit der FunktionPositionGetSymbol oderPositionSelectausgewählt wurde.
Sie können sich das so vorstellen: Wenn Sie im Supermarkt lesen wollen, was auf dem Etikett eines Marmeladenglases steht, müssen Sie zuerst das Glas in die Hand nehmen.
Ich verstehe, dass wir eine Position und einen Auftrag auswählen müssen, bevor wir ihre Informationen erhalten. Ich verstehe nicht, was die CPositionInfo-Klasse damit zu tun hat. Wenn wir eine Klasse haben, können wir eine Vielzahl von Objekten dieser Klasse erstellen. Und folglich kann jedes dieser Objekte für seine eigene Position eingerichtet werden. Das ist verrückt - Sie können eine Million CPositionInfo-Objekte erstellen, aber alle funktionieren nur mit der Position, die zuletzt mit der Methode Select() ausgewählt wurde.
 
pivomoe:
Ich verstehe, dass wir eine Position und einen Auftrag auswählen müssen, bevor wir Informationen über sie erhalten. Ich verstehe nicht, was die CPositionInfo-Klasse damit zu tun hat? Wenn wir eine Klasse haben, können wir eine Vielzahl von Objekten dieser Klasse erstellen. Und folglich kann jedes dieser Objekte für seine eigene Position eingerichtet werden. Das ist Unsinn, so dass Sie mindestens eine Million CPositionInfo-Objekte erstellen können, die aber alle nur mit der Position funktionieren, die zuletzt mit der Methode Select() ausgewählt wurde.
Die Funktion PositionSelect() kopiert die Positionsdaten in die Programmumgebung und die nachfolgenden Aufrufe vonPositionGetDouble(),PositionGetInteger() undPositionGetString()geben die zuvor kopierten Daten zurück
Wenn Sie ein Array mit Daten zu zwei oder mehr Positionen speichern möchten, schreiben Sie eine eigene Struktur und kopieren Sie die Positionsdaten in diese Struktur.
 
pivomoe:
Ich verstehe, dass Sie eine Position und einen Auftrag auswählen müssen, bevor Sie Informationen darüber erhalten. Ich verstehe nicht, was die CPositionInfo-Klasse damit zu tun hat. Wenn wir eine Klasse haben, können wir eine Vielzahl von Objekten dieser Klasse erstellen. Und folglich kann jedes dieser Objekte für seine eigene Position eingerichtet werden. Das ist Unsinn, Sie können mindestens eine Million CPositionInfo-Objekte erstellen, aber alle funktionieren nur mit der Position, die zuletzt mit der Methode Select() ausgewählt wurde.
CArrayObj wird Ihnen helfen. Und speichern Sie die Auftrags-/Positionsobjekte in dieser Liste. Und besorgen Sie sich alle erforderlichen Daten über sie.
 

Lassen Sie uns hier weitermachen.

Vladimir Karputov:
Die Funktion PositionSelect() kopiert die Positionsdaten in die Programmierumgebung und die nachfolgenden Aufrufe vonPositionGetDouble(),PositionGetInteger() undPositionGetString()geben die zuvor kopierten Daten zurück

Ich verstehe all dies, da es in der Hilfe gut erklärt wird. Ich verstehe nicht, was das mit der CPositionInfo-Klasse zu tun hat?

Es hat eine Volume()-Funktion. Vor dem Aufruf dieser Funktion müssen einige Voraussetzungen erfüllt sein (wählen Sie eine Position aus, bevor Sie die Funktion verwenden). Ich erfülle diese Anforderungen. Ich verstehe nicht, warum es absolut falsches Volumen zurückgibt. Nun, ist es so, schwer zu erinnern, zum Zeitpunkt des letzten Aufrufs (für diese Klasse Objekt) Select() Symbol, das ich daran interessiert bin, und ist bereits zum Zeitpunkt der Volume()-Aufruf, um die Position, die zu diesem Symbol entspricht und geben das Volumen entsprechend dieser Position zu finden?



Mit anderen Worten: Die Verwendung von zwei Objekten der Klasse PositionInfo ist in diesem Fall falsch.

Es stellt sich heraus, dass die Klasse CPositionInfo keinen Sinn macht, da man normalerweise nur mit einem Objekt dieser Klasse arbeiten kann.

 
Verstehe ich das richtig, dass die Methode Volume der Klasse CPositionInfo die Lautstärke zurückgibt, die dem Zeitpunkt entspricht, zu dem die Methode Select() zuletzt aufgerufen wurde? D.h. ist es möglich, das Volumen dieses Symbols von vor einem Monat zu ermitteln?
 
pivomoe:

Lassen Sie uns hier weitermachen.

Ich verstehe all dies, da es in der Hilfe gut erklärt wird. Ich verstehe nicht, was das mit der CPositionInfo-Klasse zu tun hat.

Es hat eine Funktion Volume() . Vor dem Aufruf dieser Funktion müssen einige Voraussetzungen erfüllt sein (wählen Sie die Position aus, bevor Sie die Funktion verwenden). Ich erfülle diese Anforderungen. Ich verstehe nicht, warum es die falsche Lautstärke angibt. Nun wirklich, ist es so, schwer zu merken, zum Zeitpunkt des letzten Aufrufs (für diese Klasse Objekt) Select() Symbol, das ich daran interessiert bin, und ist bereits zum Zeitpunkt der Volume()-Aufruf, um die Position, die zu diesem Symbol entspricht und geben Sie das Volumen entsprechend dieser Position zu finden?


Es stellt sich heraus, dass die Klasse CPositionInfo keinen Sinn macht, da man normalerweise nur mit einem Objekt dieser Klasse arbeiten kann.

Die Handelsklasse CPositionInfo funktioniert perfekt, wenn Sie verstehen, was sie tut.
Lassen Sie mich erklären: CPositionInfo ist keine Schatulle, die alle Eigenschaften der ausgewählten Position speichert, es ist ein Schlüssel (bequem, schnell, ersetzt eine Reihe von Codezeilen), um auf die Eigenschaften der ausgewählten Position zuzugreifen.

Grund der Beschwerde: