Fehler, Irrtümer, Fragen - Seite 1886
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
Was ist also die Frage?
Wo können Sie sehen, dass es unter der Zahl "i" eine Position mit einem solchen und einem anderen Ticket für ein solches und ein anderes Symbol gibt? In der Regel geben Sie neben der einfachen Ausgabe der Sequenznummer auch das Ticket und das Symbol aus.
Ist es normal, dass eine Funktion für verschiedene Situationen den gleichen Wert ergibt?
ZS: Übrigens, es gab eine Frage in dem Beitrag.
Der Punkt ist, wenn ich "Kaufen" auswähle, gibt die Funktion (PositionGetInteger(POSITION_TYPE)) 0 zurück.
Und wenn Sie eine nicht existierende Position auswählen, gibt die Funktion ebenfalls 0 zurück
Ist es normal, dass eine Funktion für verschiedene Situationen den gleichen Wert ergibt?
Was sind "unterschiedliche Situationen"? Und tun Sie, was ich oben empfohlen habe:
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
Wladimir Karputow, 2017.05.12 11:15
...
Im Allgemeinen geben Sie neben der einfachen Ausgabe der Sequenznummer auch das Ticket und das Symbol aus.
Ich weiß, dass ich das überprüfen muss, aber es können Dinge passieren...
Die Funktion gibt die gewünschte Eigenschaft einer offenen Position zurück, die zuvor mit der FunktionPositionGetSymbol oderPositionSelect ausgewählt wurde. Die Eigenschaft Position sollte vom Typ datetime, int sein. Es gibt 2 Varianten der Funktion.
1. Gibt direkt den Wert der Eigenschaft zurück.
longGetInteger(
ENUM_POSITION_PROPERTY_INTEGERproperty_id// Kennung der Eigenschaft
);
2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Eigenschaftswert in der Zielvariablen abgelegt, die als Referenz an den letzten Parameter übergeben wird.
boolPositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGERproperty_id,// Kennung der Eigenschaft
lange&long_var//Übernahme des Wertes der Eigenschaft
);
Parameter
Eigenschaft_id
Der [in]-Bezeichner der Positionseigenschaft. Der Wert kann einer der Werte von enumENUM_POSITION_PROPERTY_INTEGER sein.
lang_var
[out] Variable vom Typ long, die den Wert der angeforderten Eigenschaft enthält.
Zurückgegebener Wert
Wert von typelong. Im Falle einer erfolglosen Ausführung wird 0 zurückgegeben.
Bei der Magie ist die Situation etwas subtiler. Daher ist es logisch, eine Prüfung durchzuführen (PositionGetInteger(POSITION_TICKET) > 0).
Ja, es ist gut, einen Check zu machen.
Aber wenn man eine Funktion schreibt, versucht man immer, sicherzustellen, dass sie in verschiedenen Situationen einen anderen Wert zurückgibt.
Ich denke, es ist nicht richtig, dass in verschiedenen Situationen derselbe Wert aus der Funktion herauskommt.aber wenn man eine Funktion schreibt, versucht man immer, einen anderen Wert für verschiedene Situationen zu erhalten.
Das ist der Grund, warum Magic es erwähnt hat. Was soll im Falle des Fehlers PositionGetInteger(POSITION_MAGIC) zurückgegeben werden?
Ist es in Ordnung, wenn eine Funktion in verschiedenen Situationen denselben Wert ergibt?
ZS: Es gab übrigens eine Frage in dem Beitrag.
Der Punkt ist, dass die Funktion (PositionGetInteger(POSITION_TYPE)) 0 zurückgibt, wenn ich Kaufen wähle.
und wenn Sie eine nicht existierende Position auswählen, gibt die Funktion ebenfalls 0 zurück
Der erste Aufruf wird also verwendet, wenn Sie eine Position GARANTIERT haben (wie Sie es in der Schleife getan haben). Und hier ist die zweite Form des Aufrufs
für Fälle, in denen die Position aus heiterem Himmel ausgewählt wird.
Tun Sie das und glauben Sie, was Sie in der Variable "Ergebnis" erhalten - alles fügt sich zusammen:
0 - die Position wird manuell geöffnet. richtig?
Der erste Aufruf wird also verwendet, wenn Sie eine Position GARANTIERT haben (wie Sie es in der Schleife getan haben). Und hier ist die zweite Form des Aufrufs
für Fälle, in denen die Position aus heiterem Himmel ausgewählt wird.
Tun Sie dies, und glauben Sie, was Sie in der Variable "Ergebnis" erhalten - alles passt zusammen:
Das ist nicht die Frage, sondern dass die Funktion in verschiedenen Situationen denselben Wert liefert.
Ich weiß, wie man das überprüft.
die ursprüngliche Frage war, ob das überhaupt normal ist?
SZY: Ein Fehler kann unabsichtlich gemacht werden, und dann wird man bei 100000 Codes müde, ihn zu suchen.
Was? Sie müssen keine Fehler machen? )
Das ist nicht die Frage, aber die Funktion gibt in verschiedenen Situationen denselben Wert zurück.
Ich weiß, wie man es überprüft
Die Frage war ursprünglich, ob das überhaupt normal ist?
Meines Erachtens haben Sie den Code, den ich Ihnen gezeigt habe, nicht überprüft. Wie wäre es damit: Sie überprüfen es zuerst und stellen dann die Frage erneut.