/// <summary> /// /// </summary> /// <param name="message"></param> /// <param name="sessionId"></param> private void OnMessage(QuickFix.FIX42.OrderCancelReject message, SessionID sessionId) { try { Rejection rejection = new Rejection(new Security() { Symbol = String.Empty }, _provider, message.TransactTime.getValue()); rejection.OrderId = message.OrigClOrdID.getValue(); rejection.RejectioReason = message.CxlRejReason.getValue().ToString(); if (RejectionArrived != null) { RejectionArrived(rejection); } if (Logger.IsInfoEnabled) { Logger.Info("Cancel / CancelReplace rejection arrived : " + rejection.OrderId, _type.FullName, "OnMessage"); } } catch (Exception exception) { Logger.Error(exception.ToString(), _type.FullName, "OnMessage"); } }
public void OnMessage(QuickFix.FIX42.OrderCancelReplaceRequest msg, SessionID s) { string orderid = (msg.IsSetOrderID()) ? msg.OrderID.Obj : "unknown orderID"; QuickFix.FIX42.OrderCancelReject ocj = new QuickFix.FIX42.OrderCancelReject( new OrderID(orderid), msg.ClOrdID, msg.OrigClOrdID, new OrdStatus(OrdStatus.REJECTED), new CxlRejResponseTo(CxlRejResponseTo.ORDER_CANCEL_REPLACE_REQUEST)); ocj.CxlRejReason = new CxlRejReason(CxlRejReason.UNKNOWN_ORDER); ocj.Text = new Text("Executor does not support order cancel/replaces"); try { Session.SendToTarget(ocj, s); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
protected void RejectCancelRequest(QuickFix.SessionID session, QuickFix.Fields.ClOrdID clordid, QuickFix.Fields.OrigClOrdID origordid, IOrder nt7_order, string rej_reason, int cxl_rej, bool is_cancelreplace_request) { QuickFix.FIX42.OrderCancelReject rej = new QuickFix.FIX42.OrderCancelReject(); if (nt7_order == null) { rej.Set(new QuickFix.Fields.OrderID("NONE")); } else { rej.Set(new QuickFix.Fields.OrderID(clordid.getValue())); } rej.Set(origordid); rej.Set(Converter.c(nt7_order.OrderState)); rej.Set(new QuickFix.Fields.CxlRejResponseTo(is_cancelreplace_request ? QuickFix.Fields.CxlRejResponseTo.ORDER_CANCEL_REPLACE_REQUEST : QuickFix.Fields.CxlRejResponseTo.ORDER_CANCEL_REQUEST)); rej.Set(new QuickFix.Fields.CxlRejReason(cxl_rej)); rej.Set(new QuickFix.Fields.Text(rej_reason)); rej.Set(new QuickFix.Fields.TransactTime(DateTime.Now, true)); QuickFix.Session.SendToTarget(rej, session); }
public void OnMessage(QuickFix.FIX42.OrderCancelReject msg, QuickFix.SessionID s) { }
// public void onMessage(QuickFix.FIX42.ExecutionReport message, SessionID sessionID) // { // } public void onMessage(QuickFix.FIX42.OrderCancelReject message, SessionID sessionID) { }
public void OnMessage(QuickFix.FIX42.OrderCancelReject m, SessionID s) { Console.WriteLine("Received order cancel reject"); }
protected void RejectCancelRequest(QuickFix.SessionID session, QuickFix.Fields.ClOrdID clordid, QuickFix.Fields.OrigClOrdID origordid, IOrder nt7_order, string rej_reason, int cxl_rej, bool is_cancelreplace_request) { QuickFix.FIX42.OrderCancelReject rej = new QuickFix.FIX42.OrderCancelReject(); if (nt7_order == null) rej.Set(new QuickFix.Fields.OrderID("NONE")); else rej.Set(new QuickFix.Fields.OrderID(clordid.getValue())); rej.Set(origordid); rej.Set(Converter.c(nt7_order.OrderState)); rej.Set(new QuickFix.Fields.CxlRejResponseTo(is_cancelreplace_request ? QuickFix.Fields.CxlRejResponseTo.ORDER_CANCEL_REPLACE_REQUEST : QuickFix.Fields.CxlRejResponseTo.ORDER_CANCEL_REQUEST)); rej.Set(new QuickFix.Fields.CxlRejReason(cxl_rej)); rej.Set(new QuickFix.Fields.Text(rej_reason)); rej.Set(new QuickFix.Fields.TransactTime(DateTime.Now, true)); QuickFix.Session.SendToTarget(rej, session); }
public void FromApp(QuickFix.Message msg, SessionID sessionID) { logMe("\r\n \r\n" + "FromApp :" + msg.ToString()); try { if (msg is QuickFix.FIX42.OrderCancelReject) { Console.WriteLine("Order Cancel Reject event raised"); QuickFix.FIX42.OrderCancelReject er = (QuickFix.FIX42.OrderCancelReject)msg; if (er.IsSetClOrdID()) { Console.WriteLine("ClOrdID : " + er.ClOrdID); } if (er.IsSetOrigClOrdID()) { Console.WriteLine("OrigClOrdID : " + er.OrigClOrdID); } if (er.IsSetOrdStatus()) { Console.WriteLine("OrderStatus : " + er.OrdStatus); } if (er.IsSetCxlRejResponseTo()) { Console.WriteLine("CxlRejResponseTo : " + er.CxlRejResponseTo); } if (er.IsSetCxlRejReason()) { Console.WriteLine("CxlRejReason : " + er.CxlRejReason); } if (er.IsSetOrderID()) { Console.WriteLine("OrderID : " + er.OrderID); } if (er.CxlRejResponseTo.getValue() == CxlRejResponseTo.ORDER_CANCEL_REQUEST) { // Order Cancel Rejected reason // 1= UNKNOWN_ORDER, 2 = Broker Option, 3 = Order already in Pending Cancel or Pending Replace status string orderDetails = "CANCEL_REJECTED"; Int32 origOrderID = -1; if (er.IsSetOrigClOrdID()) { origOrderID = Convert.ToInt32(er.OrigClOrdID.getValue()); } Orders o = new Orders(); if (er.IsSetEncodedText()) { orderDetails += " : " + er.EncodedText.getValue(); } o.FIXResponseCanModRejectHandler(Convert.ToInt32(er.ClOrdID.getValue()), er.OrderID.getValue(), origOrderID, er.CxlRejResponseTo.getValue(), "CANCEL_" + getRejectType(er.CxlRejReason), orderDetails); } else if (er.CxlRejResponseTo.getValue() == CxlRejResponseTo.ORDER_CANCEL_REPLACE_REQUEST) { // Order modification Rejected reason // 1 = Broker Option // 3 = Order already in Pending Cancel or Pending Replace status string orderDetails = "MODIFY_REJECTED"; Int32 origOrderID = -1; if (er.IsSetOrigClOrdID()) { origOrderID = Convert.ToInt32(er.OrigClOrdID.getValue()); } Orders o = new Orders(); if (er.IsSetEncodedText()) { orderDetails += " : " + er.EncodedText.getValue(); } o.FIXResponseCanModRejectHandler(Convert.ToInt32(er.ClOrdID.getValue()), er.OrderID.getValue(), origOrderID, er.CxlRejResponseTo.getValue(), "MODIFY_" + getRejectType(er.CxlRejReason), orderDetails); } } else if (msg is QuickFix.FIX42.ExecutionReport) { string ordTypeField = msg.GetField(40); if (ordTypeField == "1") { IField field = new DecimalField(44, 0); msg.SetField(field); } QuickFix.FIX42.ExecutionReport er = (QuickFix.FIX42.ExecutionReport)msg; string orderDetails = Convert.ToString(er.ExecType.getValue()) + "|" + er.OrderQty.getValue() + "|" + er.Price.getValue() + "|" + er.LastShares.getValue() + "|" + er.LastPx.getValue() + "|" + er.CumQty.getValue() + "|" + er.AvgPx.getValue() + "|" + er.OrdType.getValue() + "|"; if (er.IsSetText()) { orderDetails = orderDetails + er.Text + "|"; } else { orderDetails = orderDetails + "NULL|"; } logMe("\r\n \r\n" + "Got execution Report - ExecType = " + orderDetails); Console.WriteLine("\r\n \r\n" + "Got execution Report - ExecType = " + orderDetails); Orders o = new Orders(); if (er.ExecType.getValue() == ExecType.FILL || er.ExecType.getValue() == ExecType.PARTIAL_FILL) { o.FIXResponseHandlerForFill(Convert.ToInt32(er.ClOrdID.getValue()), er.OrderID.getValue(), (float)Convert.ToDouble(er.OrderQty.getValue()), (float)Convert.ToDouble(er.LastPx.getValue()), (float)Convert.ToDouble(er.LastShares.getValue()), getExecType(er.ExecType), er.ExecType.getValue()); } else { Int32 origOrderID = -1; float price = -1; char orderType = '2'; if (er.IsSetOrigClOrdID()) { origOrderID = Convert.ToInt32(er.OrigClOrdID.getValue()); } if (er.IsSetPrice()) { price = (float)Convert.ToDouble(er.Price.getValue()); } if (er.IsSetOrdType()) { orderType = er.OrdType.getValue(); } //orderid is string since value is too large for int variable o.FIXResponseHandler(Convert.ToInt32(er.ClOrdID.getValue()), er.OrderID.getValue(), origOrderID, er.ExecType.getValue(), getExecType(er.ExecType), orderDetails, price, orderType); } } } catch (Exception e) { Console.WriteLine("exception(FixClient FromAPP) " + e.Message); } }
public static QuickFix.FIX42.OrderCancelReject Fix44OCR_2_Fix42OCR(QuickFix.FIX44.OrderCancelReject ocrj44) { try { // TODO [FF] - Efetuar a conversao do Fix44 para Fix42 de OrderCancelReject QuickFix.FIX42.OrderCancelReject ocrj42 = new QuickFix.FIX42.OrderCancelReject(); if (ocrj44.IsSetOrderID()) { ocrj42.Set(new OrderID(ocrj44.OrderID.getValue())); } if (ocrj44.IsSetSecondaryOrderID()) { ocrj42.Set(new SecondaryOrderID(ocrj44.SecondaryOrderID.getValue())); } // if (ocrj44.IsSetSecondaryClOrdID()) ocrj42.Set(new SecondaryClOrdID(ocrj44.SecondaryClOrdID.getValue())); // Not Found on 4.2 if (ocrj44.IsSetClOrdID()) { ocrj42.Set(new ClOrdID(ocrj44.ClOrdID.getValue())); } // if (ocrj44.IsSetClOrdLinkID()) ocrj42.Set(new ClOrdLinkID(ocrj44.ClOrdLinkID.getValue())); // Not Found on 4.2 if (ocrj44.IsSetOrigClOrdID()) { ocrj42.Set(new OrigClOrdID(ocrj44.OrigClOrdID.getValue())); } if (ocrj44.IsSetOrdStatus()) { ocrj42.Set(new OrdStatus(ocrj44.OrdStatus.getValue())); } // if (ocrj44.IsSetWorkingIndicator()) ocrj42.Set(new WorkingIndicator(ocrj44.WorkingIndicator.getValue())); // Not found on 4.2 // if (ocrj44.IsSetOrigOrdModTime()) ocrj42.Set(new OrigOrdModTime(ocrj44.OrigOrdModTime.getValue())); // Not found on 4.2 if (ocrj44.IsSetListID()) { ocrj42.Set(new ListID(ocrj44.ListID.getValue())); } if (ocrj44.IsSetAccount()) { ocrj42.Set(new Account(ocrj44.Account.getValue())); } // if (ocrj44.IsSetAcctIDSource()) ocrj42.Set(new AcctIDSource(ocrj44.AcctIDSource.getValue())); // Not found on 4.2 // if (ocrj44.IsSetAccountType()) ocrj42.Set(new AccountType(ocrj44.AccountType.getValue())); // Not found on 4.2 // if (ocrj44.IsSetTradeOriginationDate()) ocrj42.Set(new TradeOriginationDate(ocrj44.TradeOriginationDate.getValue())); // Not found on 4.2 // if (ocrj44.IsSetTradeDate()) ocrj42.Set(new TradeDate(ocrj44.TradeDate.getValue())); // Not found on 4.2 if (ocrj44.IsSetTransactTime()) { ocrj42.Set(new TransactTime(ocrj44.TransactTime.getValue())); } if (ocrj44.IsSetCxlRejResponseTo()) { ocrj42.Set(new CxlRejResponseTo(ocrj44.CxlRejResponseTo.getValue())); } // if (ocrj44.IsSetCxlRejReason()) ocrj42.Set(new CxlRejReason(ocrj44.CxlRejReason.getValue())); // TODO [FF]: Verify value pattern: Set to "2": BROKER OPTION and describe rejection in text field if (ocrj44.IsSetCxlRejReason()) { ocrj42.Set(new CxlRejReason(CxlRejReason.BROKER_OPTION)); } if (ocrj44.IsSetText()) { ocrj42.Set(new Text(ocrj44.Text.getValue())); } if (ocrj44.IsSetEncodedTextLen()) { ocrj42.Set(new EncodedTextLen(ocrj44.EncodedTextLen.getValue())); } if (ocrj44.IsSetEncodedText()) { ocrj42.Set(new EncodedText(ocrj44.EncodedText.getValue())); } if (ocrj44.IsSetMemo()) { ocrj42.SetField(new Memo(ocrj44.Memo.getValue())); } return(ocrj42); } catch (Exception ex) { logger.Error("Fix44OCR_2_Fix42OCR(): " + ex.Message, ex); return(null); } }
public static QuickFix.FIX42.OrderCancelReject Fix42Reject2OrderCancelReject(QuickFix.Message msgReject, QuickFix.Message msgOri) { try { QuickFix.FIX42.OrderCancelReject ocr = new QuickFix.FIX42.OrderCancelReject(); if (msgOri.IsSetField(Tags.OrderID)) { ocr.Set(new OrderID(msgOri.GetString(Tags.OrderID))); } else { ocr.Set(new OrderID("NONE")); } if (msgOri.IsSetField(Tags.SecondaryOrderID)) { ocr.Set(new SecondaryOrderID(msgOri.GetString(Tags.SecondaryOrderID))); } if (msgOri.IsSetField(Tags.ClOrdID)) { ocr.Set(new ClOrdID(msgOri.GetString(Tags.ClOrdID))); } if (msgOri.IsSetField(Tags.OrigClOrdID)) { ocr.Set(new OrigClOrdID(msgOri.GetString(Tags.OrigClOrdID))); } ocr.Set(new OrdStatus(OrdStatus.REJECTED)); // if (msgOri.IsSetField(Tags.ClientID)) ocr.Set(new ClientID(msgOri.GetString(Tags.ClientID))); // not found on 4.4EP // TODO[FF] - Verificar a montagem do execbroker a partir de party ids // if (msgOri.IsSetField(Tags.ExecBroker)) ocr.Set(new ExecBroker(msgOri.GetString(Tags.ExecBroker))); // not found on 4.4EP if (msgOri.IsSetField(Tags.ListID)) { ocr.Set(new ListID(msgOri.GetString(Tags.ListID))); } if (msgOri.IsSetField(Tags.Account)) { ocr.Set(new Account(msgOri.GetString(Tags.Account))); } if (msgOri.IsSetField(Tags.TransactTime)) { ocr.Set(new TransactTime(msgOri.GetDateTime(Tags.TransactTime))); } if (msgOri.Header.GetString(Tags.MsgType).Equals(MsgType.ORDER_CANCEL_REQUEST)) // mandatory { ocr.Set(new CxlRejResponseTo('1')); } else { ocr.Set(new CxlRejResponseTo('2')); } //if (msgOri.IsSetField(Tags.CxlRejReason)) ocr.Set(new CxlRejReason(msgOri.GetInt(Tags.CxlRejReason))); if (msgOri.IsSetField(Tags.CxlRejReason)) { ocr.Set(new CxlRejReason(CxlRejReason.BROKER_OPTION)); } if (msgOri.IsSetField(Tags.Text)) { ocr.Set(new Text(msgOri.GetString(Tags.Text))); } if (msgOri.IsSetField(Tags.EncodedTextLen)) { ocr.Set(new EncodedTextLen(msgOri.GetInt(Tags.EncodedTextLen))); } if (msgOri.IsSetField(Tags.EncodedText)) { ocr.Set(new EncodedText(msgOri.GetString(Tags.EncodedText))); } if (msgOri.IsSetField(Tags.Memo)) { ocr.SetField(new Memo(msgOri.GetString(Tags.Memo))); } /* * if (msgOri.IsSetField(Tags.OrderID)) * ocr.Set(new OrderID(msgOri.GetString(Tags.OrderID))); * else * ocr.Set(new OrderID("NONE")); * ocr.Set(new ClOrdID(msgOri.GetString(Tags.ClOrdID))); // mandatory * ocr.Set(new OrigClOrdID(msgOri.GetString(Tags.OrigClOrdID))); // mandatory * ocr.Set(new OrdStatus(OrdStatus.REJECTED)); // mandatory * if (msgOri.IsSetField(Tags.Account)) * ocr.SetField(new Account(msgOri.GetString(Tags.Account))); * if (msgOri.Header.GetString(Tags.MsgType).Equals(MsgType.ORDER_CANCEL_REQUEST)) // mandatory * ocr.Set(new CxlRejResponseTo('1')); * else * ocr.Set(new CxlRejResponseTo('2')); * if (msgReject.IsSetField(Tags.Text)) * ocr.Set(new Text(msgReject.GetString(Tags.Text))); * int len = msgOri.GetInt(Tags.NoPartyIDs); * for (int i = 0; i < len; i++) * { * Group grp = msgOri.GetGroup(i + 1, Tags.NoPartyIDs); * ocr.AddGroup(grp); * } * ocr.SetField(new Symbol(msgOri.GetString(Tags.Symbol))); * if (msgOri.IsSetField(Tags.SecurityID)) ocr.SetField(new SecurityID(msgOri.GetField(Tags.SecurityID))); * if (msgOri.IsSetField(Tags.SecurityIDSource)) ocr.SetField(new SecurityIDSource(msgOri.GetField(Tags.SecurityIDSource))); * ocr.SetField(new Side(msgOri.GetChar(Tags.Side))); * if (msgOri.IsSetField(Tags.Memo)) * ocr.SetField(new Memo(msgOri.GetString(Tags.Memo))); */ return(ocr); } catch (Exception ex) { logger.Error("Fix42Reject2OrderCancelReject(): " + ex.Message, ex); return(null); } }