public void OnMessage(QuickFix.FIX42.OrderCancelRequest msg, QuickFix.SessionID session)
 {
     try
     {
         ProcessOrderCancelRequest(session, msg.ClOrdID, msg.OrigClOrdID);
     }
     catch (Exception e)
     {
         RejectCancelRequest(session, msg.ClOrdID, msg.OrigClOrdID, null, "OnMessage(QuickFix.FIX42.OrderCancelRequest msg, QuickFix.SessionID session): internal error : " + e.ToString()
                             , QuickFix.Fields.CxlRejReason.OTHER, false);
     }
 }
Exemplo n.º 2
0
        private QuickFix.FIX42.OrderCancelRequest QueryOrderCancelRequest42()
        {
            QuickFix.FIX42.OrderCancelRequest orderCancelRequest = new QuickFix.FIX42.OrderCancelRequest(
                QueryOrigClOrdID(),
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now));

            orderCancelRequest.Set(QueryOrderQty());
            QueryHeader(orderCancelRequest.Header);
            return(orderCancelRequest);
        }
Exemplo n.º 3
0
        public int cancelOrder(OrderStruct os)
        {//will add check in case of already filled, no cancel.
            OrderDAO    ord  = new OrderDAO();
            OrderStruct dbos = new OrderStruct(11, 8);

            if (ord.getOrderFromDB(os.OrderNo, ref dbos) < 0)
            {
                Console.WriteLine("Error : Unable to get order details from DB");
                return(-1);
            }
            Console.WriteLine("DBG: truct val");
            dbos.display();
            string ordStatus = new string(dbos.OrderStatus);

            //if(ordStatus.Equals("CANCELED") || ordStatus.Equals("COMPLETED"))
            //{
            //    Console.WriteLine("Order is already "+ordStatus);
            //    return -1;
            //}
            Console.WriteLine("Order No [" + dbos.OrderNo + "] : Status [" + ordStatus + "]");
            //return -1;
            int ordNo = ord.cancelOrder(ref dbos);

            if (ordNo < 0)
            {
                return(-1);
            }
            Console.WriteLine("TODO: Send FIX - cancel for os.ID");
            //Send FIX - cancel for os.ID

            OrigClOrdID origCLOrdID = new OrigClOrdID(Convert.ToString(dbos.fixAcceptedID));
            ClOrdID     OrdId       = new ClOrdID(Convert.ToString(ordNo));
            string      symboldata  = sanitiseField(os.symbol);
            Symbol      symbol      = new Symbol(symboldata);
            Side        side        = new Side(Side.BUY);

            if (os.direction == 'S')
            {
                side = new Side(Side.SELL);
            }

            Console.WriteLine("cancelling origOrdId : " + dbos.fixAcceptedID + " newOrdId : " + ordNo);
            Console.WriteLine("symboldata : " + symboldata + " side : " + side);

            var orderCan = new QuickFix.FIX42.OrderCancelRequest(origCLOrdID, OrdId, symbol, side,
                                                                 new TransactTime(DateTime.Now.ToUniversalTime()));

            Session.SendToTarget(orderCan, FixClient.MySess);
            return(os.OrderNo);
        }
Exemplo n.º 4
0
        public static long GetOrderIdFromMessage(QuickFix.FIX42.OrderCancelRequest msg)
        {
            if (!msg.IsSetOrderID())
            {
                throw new IncorrectTagValue(msg.OrderID.Tag);
            }

            var  idString = msg.OrderID.getValue();
            long id;

            if (!string.IsNullOrEmpty(idString) && long.TryParse(idString, out id))
            {
                return(id);
            }

            throw new IncorrectTagValue(msg.OrderID.Tag);
        }
Exemplo n.º 5
0
        public void OnMessage(QuickFix.FIX42.OrderCancelRequest 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_REQUEST));
            ocj.CxlRejReason = new CxlRejReason(CxlRejReason.UNKNOWN_ORDER);
            ocj.Text         = new Text("Executor does not support order cancels");

            try
            {
                Session.SendToTarget(ocj, s);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Cancel Limit order
        /// </summary>
        /// <param name="order"></param>
        public void CancelLimitOrder(Order order)
        {
            try
            {
                // Create FIX order
                QuickFix.FIX42.OrderCancelRequest orderCancelRequest = OrderCancelRequest(order);

                // Send request
                Session.SendToTarget(orderCancelRequest, _orderSessionId);

                if (Logger.IsDebugEnabled)
                {
                    Logger.Debug("Cancel Order Sent " + order, _type.FullName, "CancelLimitOrder");
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception, _type.FullName, "CancelLimitOrder");
            }
        }
Exemplo n.º 7
0
        public void CancelOrder(OrderRecord or)
        {
            try
            {
                QuickFix.FIX42.OrderCancelRequest ocq = new QuickFix.FIX42.OrderCancelRequest(
                    new QuickFix.Fields.OrigClOrdID(or.ClOrdID),
                    MessageCreator42.GenerateClOrdID(),
                    new QuickFix.Fields.Symbol(or.Symbol),
                    or.OriginalNOS.Side,
                    new QuickFix.Fields.TransactTime(DateTime.Now));

                ocq.OrderID = new QuickFix.Fields.OrderID(or.OrderID);

                _strategy.ProcessOrderCancelRequest(or.OriginalNOS, ocq);

                _qfapp.Send(ocq);
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Creates a FIX4.2 OrderCancelRequest message for Redi
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public QuickFix.FIX42.OrderCancelRequest OrderCancelRequest(Order order)
        {
            QuickFix.FIX42.OrderCancelRequest orderCancelRequest = new QuickFix.FIX42.OrderCancelRequest();

            QuickFix.Fields.ClOrdID clOrdId = new QuickFix.Fields.ClOrdID(DateTime.Now.ToString(("yyMMddHmsfff")));
            orderCancelRequest.SetField(clOrdId);

            QuickFix.Fields.OrigClOrdID origClOrdId = new QuickFix.Fields.OrigClOrdID(order.OrderID);
            orderCancelRequest.SetField(origClOrdId);

            QuickFix.Fields.Symbol symbol = new QuickFix.Fields.Symbol(order.Security.Symbol);
            orderCancelRequest.SetField(symbol);

            QuickFix.Fields.Side side = new QuickFix.Fields.Side(Convert.ToChar(order.OrderSide));
            orderCancelRequest.SetField(side);

            QuickFix.Fields.TransactTime transactTime = new QuickFix.Fields.TransactTime(order.OrderDateTime);
            orderCancelRequest.SetField(transactTime);

            QuickFix.Fields.Currency currency = new QuickFix.Fields.Currency(order.OrderCurrency);
            orderCancelRequest.SetField(currency);

            return(orderCancelRequest);
        }
Exemplo n.º 9
0
 public void ProcessOrderCancelRequest(QuickFix.FIX42.NewOrderSingle nos, QuickFix.FIX42.OrderCancelRequest msg)
 {
 }
Exemplo n.º 10
0
        public void CancelOrder(OrderRecord or)
        {
            try
            {
                QuickFix.FIX42.OrderCancelRequest ocq = new QuickFix.FIX42.OrderCancelRequest(
                    new QuickFix.Fields.OrigClOrdID(or.ClOrdID),
                    MessageCreator42.GenerateClOrdID(),
                    new QuickFix.Fields.Symbol(or.Symbol),
                    or.OriginalNOS.Side,
                    new QuickFix.Fields.TransactTime(DateTime.Now));

                ocq.OrderID = new QuickFix.Fields.OrderID(or.OrderID);

                _strategy.ProcessOrderCancelRequest(or.OriginalNOS, ocq);

                _qfapp.Send(ocq);
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Send order cancel request message for order specified by TTOrderKey (QuickFix.Fields.OrderID)
        /// </summary>
        /// <param name="TTOrderkey"></param>
        public void ttOrderCancelRequest(string TTOrderkey)
        {
            try
            {
                QuickFix.FIX42.OrderCancelRequest ocr = new QuickFix.FIX42.OrderCancelRequest();

                ocr.Set(new QuickFix.Fields.ClOrdID(uniqueID()));
                ocr.Set(new QuickFix.Fields.OrderID(TTOrderkey));

                QuickFix.Session.SendToTarget(ocr, orderSessionID);

            }
            catch (Exception ex)
            { log.WriteLog(ex.ToString());}
        }
Exemplo n.º 12
0
 public void OnMessage(QuickFix.FIX42.OrderCancelRequest msg, SessionID sessionID)
 {
     _fix42MessageHandler.OnMessage(msg, sessionID);
 }
Exemplo n.º 13
0
        private QuickFix.FIX42.OrderCancelRequest QueryOrderCancelRequest42()
        {
            QuickFix.FIX42.OrderCancelRequest orderCancelRequest = new QuickFix.FIX42.OrderCancelRequest(
                QueryOrigClOrdID(),
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now));

            orderCancelRequest.Set(QueryOrderQty());
            QueryHeader(orderCancelRequest.Header);
            return orderCancelRequest;
        }