Отменить заказ, который вы создали с помощью 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
представляет собой команду ClOrdID
инструкции NewOrderSingle
, которая создала заказ. Поле 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));
Вы подключение к внешнему серверу FIX, как брокер или что-то? –
Я подключаюсь к FixImulator QuickFix/J – Parashuram
Это была важная деталь, которую вы должны были включить в свой вопрос. –