カスタムシンボル。エラー、バグ、質問、提案。 - ページ 15

 
Roman:
バグ番号20の投稿で、私はIDの設定を指定し、一致しない理由を示しました。
シンボルトレードエクスモード
シンボルトレード計算モード
これらは全く別のモードであり、問題には当てはまらない。

そうすれば、より明確になるはずです。

また、ENUMSYMBOL_FILLING_XXX から別の識別子を使用したい場合
SYMBOL_FILLING_RETURN識別子はありません!

そうなんです、ないんです。識別子ではなく、フラグなのです。SYMBOL_FILLING_RETURNは常に存在するからです。そして、残りの2つのフラッグは、両方でも片方でも構いません。

注文を送信する際に、取引注文で申告した数量を満たすための方針を指定することができます。各シンボルの出来高による注文執行の許容バリエーションは下表のとおりです。各シンボルに対して1つのモードだけでなく、フラグの組み合わせによって複数のモードを設定することができます。フラグの組み合わせは SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOCの ように、論理 (| )で表現さ れる。ある特定のモードが機器に許可されているかどうかを確認するには、論理 AND (&) の結果をモードフラグと比較 する必要が あります。

フィリングポリシー

識別子

価値

商品説明

すべて/なし

シンボルフィリングフォック

1

この執行方針は、指定されたサイズまでしか注文を満たすことができないことを意味します。その時点で市場に十分な量の金融商品がない場合、注文は執行されません。必要なボリュームは、現在市場にある複数のオファーからまとめることができます。

すべて/一部

オールフィリングアイオク

2

この場合、トレーダーは注文で指定された数量の範囲内で、マーケットで利用可能な最大の数量で取引を行うことに同意します。全数約定が不可能な場合は、約定可能な数量を約定し、未約定数量は取消されます。IOC注文の使用可否は、取引サーバーで定義されます。

戻る

IOCは存在しない

このモードは、成行(買い・売り)、指値、逆指値注文で、「成行執行」モードと「取引所執行」モードでのみ使用されます。部分約定が成立した場合、残数量のある成行注文または指値注文は削除されず、有効なままとなります。



  • SYMBOL_FILLING_FOK が 存在しSYMBOL_FILLING_IOC が存在しない場合、SYMBOL_FILLING_MODE は 1 を返す。同時に「リターン」もあります。
  • SYMBOL_FILLING_IOC フラグが存在し、 SYMBOL_FILLING_FOKフラグが 存在しない場合 SYMBOL_FILLING_MODE は 2 を返す。この場合、「リターン」があります。
  • SYMBOL_FILLING_FOK フラグがあり、 SYMBOL_FILLING_IOCフラグが ある場合、SYMBOL_FILLING_MODEは、3を返します 同時に「リターン」もあります。
したがって、「戻る」は常に存在し、他の2つのモードはフラッグの有無によって決まるという結論になるのです。
 
Artyom Trishkin:

そうですね~、ダメですね。識別子ではなく、フラグなのです。なぜなら、SYMBOL_FILLING_RETURNは常にそこにあるからです。そして、残りの2つのフラッグは、両方でも片方でも構いません。

しかし、これは明示的な行動ではないので、誤解を招く恐れがあります。
また、ドキュメントには、SYMBOL_FILLING_RETURNが 常に存在するとは書かれていません。
なぜ明示的に設定しないのか SYMBOL_FILLING_RETURN

では、為替充填のフラグを正しく設定する例を示してください。

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);

この非明示的なフラグで混乱してるんだ。

 
Roman:

しかし、それは誤解を招くような明示的な行動ではありません。
また、ドキュメントにはSYMBOL_FILLING_RETURNが常に存在するとは書かれていない。
なぜ明示的に設定しないのか? SYMBOL_FILLING_RETURN

その時、交換充填のためのフラグを正しく設定する例を示してください。

このような非明示的なフラグに惑わされるからです。

0 - 他のフラグが必要ない場合。

 
Roman:

しかし、それは誤解を招くような明示的な行動ではありません。
また、SYMBOL_FILLING_RETURNが常に存在するというサインについてはドキュメントには書かれていません。

なぜ明示的に設定しないのか? SYMBOL_FILLING_RETURN

その時、交換充填のためのフラグを正しく設定する例を示してください。

このような非明示的なフラグに惑わされるからです。

以下、ドキュメントより。

"執行モード「市場別」と「取引所別」では、すべての注文タイプで 充填ポリシー「戻り」が 常に許可さ れます。その他の型の許容性は、SYMBOL_FILLING_FOK および SYMBOL_FILLING_IOC プロパティを用いて確認される。"

 
Artyom Trishkin:

0 - 他のフラグが必要ない場合。

ゼロを設定すると、Noneが設定されます。
なしは、交換用のフィルインではありません。
この方法で試すと

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC);

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC も、上記のように3ではなく、Noneを返します。

結局、交換フィルを正しく設定するにはどうしたらいいのでしょうか?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);
 

そして、これです。

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, 3);

Allを設定し、All allowedと同じにします。

そして、ドキュメントの「値」の欄には、何もない、空っぽの状態です!
そして、「リターン」行の「識別子」欄には、やはりフラグの正しい組み合わせを指定することをお勧めします
なぜ、 値3のSYMBOL_FILLING_RETURNを 追加しないのか 、明確に、誰にでも理解できる ように。

 
Roman:

カスタム品に国旗を記入するのは、何の実用的なため?

 
Roman:

ゼロを設定すると、Noneが設定されます。
なしは、交換用のフィルインではありません。
この方法で試すと

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC も、上記のように3ではなく、Noneを返します。

結局、交換フィルを正しく設定するにはどうしたらいいのでしょうか?

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

そこで、この組み合わせでAllを成立させる。ありがとうございます。
しかし、この組み合わせが当たり前でないことに同意してください。


SYMBOL_FILLING_FOK またはSYMBOL_FILLING_IOC
ない場合、隠されたSYMBOL_FILLING_RETURN -"Always there"使わ れます

あなたの組み合わせでは、代わりにFOK またはIOC
設定すると明示的に言って います。
交換充填にはFOCも IOCも ないので、誤解を招く。

したがって、論理的には、この組み合わせは、ドキュメントに追加されるべきで、列"識別子 "とその値3
または、
SYMBOL_FILLING_RETURN

追加する方が良いそうすれば、バグ#20は バグから除外される。
しかし、explicitnessの機能が侵害されることを念頭に置いてください。

 
fxsaber:

カスタム品に国旗を記入するのは、何の実用的なため?

ツールの仕様を正しく表示するために
また、これらのモードは端末の深部のどこかで使われている可能性があります。
テスターなどでは、すべてを明示的に記入することに慣れています。