Exemple #1
0
        public QuickFix42.OrderCancelRequest GenerateCancelRequest(string clOrdId, int index)
        {
            string originalId = (string)LimitOrders[index];

            QuickFix42.Message msg = Msgs[originalId];


            //check for a recent ID
            string temp = LimitLib.GetRecentId(originalId);

            if (temp != null)
            {
                //limitLib.add(originalID, clOrdId);  //associate new Id
                originalId = temp;                  //send with most recent from previous request
            }

            Side oldSide = new Side();

            msg.getField(oldSide);

            TransactTime uTime = new TransactTime();

            msg.getField(uTime);

            QuickFix42.OrderCancelRequest ocr = new QuickFix42.OrderCancelRequest(
                new OrigClOrdID(originalId),
                new ClOrdID(clOrdId),
                new Symbol(msg.getField(Symbol.FIELD)),                                         //Necessary Field for canceling child orders
                oldSide,                                                                        //Necessary Field for canceling child orders
                uTime);

            OrderID oid = new OrderID("x");

            ocr.setField(oid);

            //Neccessary Field for canceling child orders
            Price limitPrice = new Price();

            msg.getField(limitPrice);
            //OCR.setField(limitPrice);

            ocr.setField(57, msg.getField(57));
            ocr.setField(9102, msg.getField(9102));

            return(ocr);
        }
        public QuickFix42.OrderCancelRequest GenerateManualCancelRequest(string clOrdId, string originalId, string symbol, string side, double price, string route = "NEFAN", string channel = "X")
        {
            //QuickFix42.Message msg = MSGS[(string)LimitOrders[index]];
            Side sd = new Side(Side.BUY);

            if (side.Equals("B") || side.Equals("b") || side.Equals("buy") || side.Equals("BUY"))
            {
                sd = new Side(Side.BUY);
            }
            else if (side.Equals("S") || side.Equals("s") || side.Equals("sell") || side.Equals("SELL"))
            {
                sd = new Side(Side.SELL);
            }
            else if (side.Equals("SS") || side.Equals("ss") || side.Equals("ssell") || side.Equals("SSELL") || side.Equals("SHORT") || side.Equals("short"))
            {
                sd = new Side(Side.SELL_SHORT);
            }

            TransactTime uTime = new TransactTime(DateTime.Parse("20110708 15:24:26"));

            //msg.getField(uTime);

            QuickFix42.OrderCancelRequest ocr = new QuickFix42.OrderCancelRequest(
                new OrigClOrdID(originalId),
                new ClOrdID(clOrdId),
                new Symbol(symbol), //Necessary Field for canceling child orders
                sd,                 //Necessary Field for canceling child orders
                uTime);

            OrderID oid = new OrderID("x");

            ocr.setField(oid);

            //Neccessary Field for canceling child orders
            Price limitPrice = new Price(price);

            //msg.getField(limitPrice);
            ocr.setField(limitPrice);

            ocr.setField(57, "ALGO1");
            ocr.setField(9102, "T");

            return(ocr);
        }
        public QuickFix42.OrderCancelRequest SendLimitOrderCancelRequest(string originalId, string orderId, string exId)
        {
            //int id = rand.Next(100000000, 200000000);
            QuickFix42.OrderCancelRequest m = new QuickFix42.OrderCancelRequest(new OrigClOrdID(originalId), new ClOrdID(orderId), new Symbol("BAC"), new Side(Side.BUY), new TransactTime(DateTime.UtcNow));

            //addtional required fields
            m.set(new OrderQty(100));
            m.set(new OrderID(exId));

            //RMG Routing
            m.setField(57, "ALGO1");
            m.setField(9102, "T");
            //m.setField(6210, "0");

            //Price p = new Price(12.99);
            //m.set(p);
            //Session.sendToTarget(m, oKnightSessionID);
            return(m);
        }