1

FIX.4.2 を使用して OrderCancelRequest を作成しようとしていますが、OrderID、OrigClOrdID、および ClOrdID と混同しています。Webで検索しましたが、よくわかりませんでした。これらのパラメータについて説明し、可能であれば OrderCancelRequest のコード スニペットを提供してください。

前もって感謝します。

4

2 に答える 2

2

で作成した注文をキャンセルしたいquickfix.fix42.NewOrderSingle。そのメッセージを送信するには、一意の を割り当てる必要がありましたquickfix.field.ClOrdID。例えば:

String instructionId = createNewInstructionId( ); 
quickfix.Message fixMessage = new quickfix.fix42.NewOrderSingle (
    new ClOrdID( instructionId ),
    new HandlInst( HandlInst.AUTOMATED_EXECUTION_ORDER_PUBLIC ), 
    new Symbol( symbol ),
    new Side( Side.BUY ),
    new TransactTime( ),
    new OrdType( OrdType.LIMIT )
);
// ...

instructionId今後のメッセージで参照するために、これを保存する必要があります。

相手方が指示を受け入れる場合は、EXECUTION_REPORTメッセージ ( OrdStatus.NEW) で受け入れます。この実行レポートにはquickfix.Field.OrderID、ブローカーによって割り当てられた注文の一意の識別子であるフィールドが含まれます (単一の取引日内での一意性、または複数日の注文の場合は日全体での一意性)。OrderID後の手順で使用するため、これを保存します ( orderIdBroker)。

注文をキャンセルしたい場合は、注文を作成した指示を参照する必要があります。このOrigClOrdID場合の は、オーダーを作成しClOrdIDNewOrderSingle命令の です。このClOrdIDフィールドは、キャンセル リクエストの一意の識別子です (キャンセル リクエストに割り当てる新しい識別子)。希望する場合 (またはブローカーが要求する場合) はOrderID、ブローカーから受け取った を提供できます。

String orderInstructionId = getOrderInstructionId( );
String cancelInstructionId = createNewInstructionId( ); 
quickfix.Message fixMessage = new quickfix.fix42.OrderCancelRequest (
    new OrigClOrdID( orderInstructionId ),
    new ClOrdID( cancelInstructionId ),
    new Symbol( symbol ),
    new Side( Side.BUY ),
    new TransactTime( )
);
// If required, set the OrderID as assigned by the broker:
String orderIdBroker = getOrderIdBroker( );
fixMessage.setField( new OrderID( orderIdBroker ) );
于 2015-11-20T08:34:17.513 に答える
-1

ClOrdId は、送信する注文キャンセル メッセージの ID です。OrigClOrdId は、送信済みの注文メッセージの ID です。OrderID は注文の内部 ID です (受信者にとって意味がある場合とない場合があります)。

キャンセル注文の作成方法は、送信先によって異なります。ここにいくつかのコードがあります:

QuoteCancel qc = new QuoteCancel();
qc.setField(new StringField(131, "RFQ123"));
qc.setField(new QuoteCancelType(1));

詳細については、Fiximate QuoteCancelをご覧ください。こちらがFiximateのフロントページです。

于 2015-11-16T12:13:03.123 に答える