Benutzerdefinierte Symbole. Fehler, Bugs, Fragen, Vorschläge. - Seite 15

 
Roman:
Nun, was hier nicht klar ist, in dem Beitrag mit Fehler #20 habe ich die ID-Einstellung angegeben und den Grund für die Nichtübereinstimmung genannt.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
Dies sind völlig unterschiedliche Modi, die für das Problem nicht zutreffen.

Das sollte die Sache klarer machen.

Und wenn Sie einen anderen Bezeichner aus ENUMSYMBOL_FILLING_XXX
verwenden wollen,gibt es keinen BezeichnerfürSYMBOL_FILLING_RETURN!

Das ist richtig - es gibt keine. Sie sind keine Identifikatoren - sie sind Flaggen. Denn SYMBOL_FILLING_RETURN ist immer vorhanden. Und die anderen beiden Flaggen können entweder beide oder eine von ihnen sein:

Bei der Übermittlung eines Auftrags können Sie eine Richtlinie angeben, um das im Handelsauftrag angegebene Volumen zu füllen. Die zulässigen Varianten der Auftragsausführung nach Volumen für jedes Symbol sind in der nachstehenden Tabelle aufgeführt. Für jedes Symbol kann nicht nur ein Modus eingestellt werden, sondern mehrere Modi durch eine Kombination von Flags. Die Kombination der Kennzeichen wird als logische ODER-Verknüpfung (|) ausgedrückt , zum Beispiel SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC. Um zu prüfen, ob ein bestimmter Modus für ein Instrument zulässig ist, muss das Ergebnis der logischen UND-Verknüpfung (&) mit dem Modus-Flag verglichen werden.

Befüllungspolitik

Kennung

Wert

Beschreibung

Alle/Keine

SYMBOL_FUELLUNG_FOK

1

Diese Ausführungspolitik bedeutet, dass der Auftrag nur bis zu dem angegebenen Volumen ausgeführt werden kann. Wenn nicht genügend Volumen des Finanzinstruments auf dem Markt vorhanden ist, wird der Auftrag nicht ausgeführt. Das benötigte Volumen kann aus mehreren auf dem Markt befindlichen Angeboten zusammengestellt werden.

Alle/Teilweise

ALL_FILLING_IOC

2

In diesem Fall erklärt sich der Händler bereit, ein Geschäft mit dem maximal auf dem Markt verfügbaren Volumen innerhalb des im Auftrag angegebenen Volumens durchzuführen. Wenn eine vollständige Ausführung nicht möglich ist, wird der Auftrag für das verfügbare Volumen ausgeführt, und das nicht ausgeführte Volumen des Auftrags wird storniert. Die Möglichkeit der Verwendung von IOC-Aufträgen wird auf einem Handelsserver definiert.

Rückkehr

Es gibt kein IOC

Dieser Modus wird für Markt- (Kauf und Verkauf), Limit- und Stop-Limit-Aufträge und nur in den Modi "Market Execution" und "Exchange Execution" verwendet. Im Falle einer Teilausführung wird ein Markt- oder Limitauftrag mit einem Restvolumen nicht entfernt, sondern bleibt bestehen.



  • Wenn SYMBOL_FILLING_FOK vorhanden ist , SYMBOL_FILLING_IOC aber nicht , gibt SYMBOL_FILLING_MODE den Wert 1 zurück. Zugleich gibt es eine "Rückkehr".
  • Wenn das SYMBOL_FILLING_IOC-Flag vorhanden ist, aber nicht dasSYMBOL_FILLING_FOK-Flag, gibt SYMBOL_FILLING_MODE den Wert 2 zurück. In diesem Fall gibt es eine "Rückgabe".
  • Wenn ein SYMBOL_FILLING_FOK-Flag vorhanden ist und ein SYMBOL_FILLING_IOC-Flag vorhanden ist , gibt SYMBOL_FILLING_MODE den Wert 3 zurück. Zugleich gibt es eine "Rückkehr".
Daraus ergibt sich die Schlussfolgerung: "Return" ist immer da, und die beiden anderen Modi werden durch das Vorhandensein von Flaggen bestimmt.
 
Artyom Trishkin:

Richtig - nein. Sie sind keine Identifikatoren - sie sind Flaggen. Denn SYMBOL_FILLING_RETURN ist immer vorhanden. Und die anderen beiden Flaggen können entweder beide oder eine sein:

Dies ist jedoch kein explizites Verhalten, das irreführend ist.
Und in der Dokumentation steht nicht, dass SYMBOL_FILLING_RETURN immer vorhanden ist.
Warum wird es nicht explizit gesetzt? SYMBOL_FILLING_RETURN

Bitte zeigen Sie mir ein Beispiel, wie man das Flag für das Ausfüllen von Börsen korrekt setzt.

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);

Diese nicht expliziten Flaggen verwirren mich immer mehr.

 
Roman:

Aber es ist kein explizites Verhalten, das irreführend ist.
Und in der Dokumentation steht nicht, dass SYMBOL_FILLING_RETURN immer vorhanden ist.
Warum wird sie nicht ausdrücklich festgelegt? SYMBOL_FILLING_RETURN

Bitte zeigen Sie mir ein Beispiel, wie man das Flag für die Austauschfüllung richtig setzt.

Denn diese nicht expliziten Flaggen verwirren mich.

Null - wenn keine anderen Flaggen benötigt werden.

 
Roman:

Aber es ist kein explizites Verhalten, das irreführend ist.
Und die Dokumentation sagt nichts über das Zeichen, dass SYMBOL_FILLING_RETURN immer da ist.

Warum wird sie nicht ausdrücklich festgelegt? SYMBOL_FILLING_RETURN

Bitte zeigen Sie mir ein Beispiel, wie man das Flag für die Austauschfüllung richtig setzt.

Denn diese nicht expliziten Flaggen verwirren mich.

Hier ein Auszug aus der Dokumentation:

"In den Ausführungsmodi "By Market" und "Exchange" ist die Ausfüllpolitik "Return" für alle Auftragsarten immer erlaubt. Die Zulässigkeit der anderen Typen wird mit den Eigenschaften SYMBOL_FILLING_FOK und SYMBOL_FILLING_IOC überprüft. "

 
Artyom Trishkin:

Null - wenn keine anderen Flaggen erforderlich sind.

Null setzen, setzt keine.
Keine ist kein Ersatz für einen Austausch.
Wenn ich es auf diese Weise versuche

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC);

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC gibt auch None zurück, nicht 3, wie Sie oben sagten.

Wie stelle ich die Umtauschmenge doch noch richtig ein?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);
 

Und dann ist da noch dies.

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, 3);

Legt Alle fest, was dasselbe ist wie Alle erlaubt.

Und in der Dokumentation steht in der Spalte "Wert" nichts, sie ist leer!
Und in der Spalte "Bezeichner" für die "Rückgabe"-Zeile schlage ich immer noch vor, die richtige Kombination für die Flaggen anzugeben!
Warum nicht einfachSYMBOL_FILLING_RETURN mit dem Wert 3 hinzufügen, klar und für jeden verständlich.

 
Roman:

Welchen praktischen Zweck erfüllt das Füllen von Flaggen auf benutzerdefinierten Flaggen?

 
Roman:

Null setzen, setzt keine.
Keine ist kein Ersatz für einen Austausch.
Wenn ich es auf diese Weise versuche

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC gibt auch None zurück, nicht 3, wie Sie oben sagten.

Wie stelle ich die Umtauschmenge doch noch richtig ein?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC);
 
Artyom Trishkin:

So, diese Kombination ergibt All. Ich danke Ihnen.
Aber stimmen Sie zu, diese Kombination ist nicht offensichtlich.
Wir verwenden kein logisches "Nicht" beim Setzen von Eigenschaften

Wenn nichtSYMBOL_FILLING_FOK oder nichtSYMBOL_FILLING_IOC
dann
wirddas versteckteSYMBOL_FILLING_RETURN -"Immer da"verwendet

In Ihrer Kombination sagen wir stattdessen explizit, setzen Sie FOK oder IOC.
In der Austauschfüllung gibt es kein FOC oder IOC, daher ist sie irreführend.

Daher ist es logisch, dass diese Kombination in die Dokumentation aufgenommen wird, und zwar in die Spalte"Bezeichner" mit dem Wert 3
. Oder besser noch
SYMBOL_FILLING_RETURN

. Dann ist Fehler #20 von den Fehlern ausgeschlossen.
Beachten Sie jedoch, dass das Merkmal der Eindeutigkeit verletzt wird.

 
fxsaber:

Welchen praktischen Zweck erfüllt das Füllen von Flaggen auf benutzerdefinierten Flaggen?

Zur korrekten Anzeige der Werkzeugspezifikation.
Es ist auch möglich, dass diese Modi irgendwo in den Tiefen des Terminals verwendet werden.
Im Prüfgerät oder anderswo, also bin ich es gewohnt, alles explizit auszufüllen.