コード例 #1
0
        public static QuickFix.FIX44.OrderCancelReplaceRequest OrderCancelReplaceRequest(
            Dictionary <int, string> customFields,
            QuickFix.FIX44.NewOrderSingle nos, int newQty, decimal newPrice)
        {
            QuickFix.FIX44.OrderCancelReplaceRequest ocrq = new QuickFix.FIX44.OrderCancelReplaceRequest(
                new QuickFix.Fields.OrigClOrdID(nos.ClOrdID.Obj),
                GenerateClOrdID(),
                nos.Symbol,
                nos.Side,
                new QuickFix.Fields.TransactTime(DateTime.Now),
                nos.OrdType);

            ocrq.HandlInst = new QuickFix.Fields.HandlInst(QuickFix.Fields.HandlInst.AUTOMATED_EXECUTION_ORDER_PRIVATE);
            ocrq.OrderQty  = new QuickFix.Fields.OrderQty(newQty);

            if (nos.OrdType.Obj != QuickFix.Fields.OrdType.MARKET)
            {
                ocrq.Price = new QuickFix.Fields.Price(newPrice);
            }

            // other fields to relay
            ocrq.TimeInForce = nos.TimeInForce;

            // add custom fields
            foreach (KeyValuePair <int, string> p in customFields)
            {
                ocrq.SetField(new QuickFix.Fields.StringField(p.Key, p.Value));
            }

            return(ocrq);
        }
コード例 #2
0
        private void QueryReplaceOrder()
        {
            Console.WriteLine("\nCancelReplaceRequest");

            QuickFix.FIX44.OrderCancelReplaceRequest m = QueryCancelReplaceRequest44();

            if (m != null && QueryConfirm("Send replace"))
            {
                SendMessage(m);
            }
        }
コード例 #3
0
ファイル: Executor.cs プロジェクト: Jason6583/TradingUIDemo
        public void OnMessage(QuickFix.FIX44.OrderCancelReplaceRequest msg, SessionID s)
        {
            string orderid = (msg.IsSetOrderID()) ? msg.OrderID.Obj : "unknown orderID";

            QuickFix.FIX44.OrderCancelReject ocj = new QuickFix.FIX44.OrderCancelReject(
                new OrderID(orderid), msg.ClOrdID, msg.OrigClOrdID, new OrdStatus(OrdStatus.REJECTED), new CxlRejResponseTo(CxlRejResponseTo.ORDER_CANCEL_REPLACE_REQUEST));
            ocj.CxlRejReason = new CxlRejReason(CxlRejReason.OTHER);
            ocj.Text         = new Text("Executor does not support order cancel/replaces");

            try
            {
                Session.SendToTarget(ocj, s);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="or"></param>
        /// <param name="newQty"></param>
        /// <param name="newPrice">ignored if not applicable for order type</param>
        /// <param name="customFields">other custom fields to be added</param>
        public void CancelReplaceOrder(OrderRecord or, int newQty, decimal newPrice, Dictionary <int, string> customFields)
        {
            try
            {
                QuickFix.FIX44.OrderCancelReplaceRequest ocrq = MessageCreator44.OrderCancelReplaceRequest(
                    customFields, or.OriginalNOS, newQty, newPrice);

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

                _strategy.ProcessOrderCancelReplaceRequest(or.OriginalNOS, ocrq);

                _qfapp.Send(ocrq);
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
            }
        }
コード例 #5
0
        private QuickFix.FIX44.OrderCancelReplaceRequest QueryCancelReplaceRequest44()
        {
            QuickFix.FIX44.OrderCancelReplaceRequest ocrr = new QuickFix.FIX44.OrderCancelReplaceRequest(
                QueryOrigClOrdID(),
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now),
                QueryOrdType());

            ocrr.Set(new HandlInst('1'));
            if (QueryConfirm("New price"))
            {
                ocrr.Set(QueryPrice());
            }
            if (QueryConfirm("New quantity"))
            {
                ocrr.Set(QueryOrderQty());
            }

            return(ocrr);
        }
コード例 #6
0
 public void ProcessOrderCancelReplaceRequest(QuickFix.FIX44.NewOrderSingle nos, QuickFix.FIX44.OrderCancelReplaceRequest msg)
 {
 }
コード例 #7
0
ファイル: TradeClientApp.cs プロジェクト: Paccc/quickfixn
        private QuickFix.FIX44.OrderCancelReplaceRequest QueryCancelReplaceRequest44()
        {
            QuickFix.FIX44.OrderCancelReplaceRequest ocrr = new QuickFix.FIX44.OrderCancelReplaceRequest(
                QueryOrigClOrdID(),
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now),
                QueryOrdType());

            ocrr.Set(new HandlInst('1'));
            if (QueryConfirm("New price"))
                ocrr.Set(QueryPrice());
            if (QueryConfirm("New quantity"))
                ocrr.Set(QueryOrderQty());

            return ocrr;
        }