コード例 #1
0
        /// <inheritdoc />
        public async Task GetOrderHistoryAsync(ulong account, string symbol = "", string orderId = "", string clOrdId = "", DateTime?from = null, DateTime?to = null, string requestId = "")
        {
            var request = new OrderMassStatusRequest
            {
                MsgType           = MsgTypes.OrderMassStatusRequest,
                Account           = account,
                MassStatusReqId   = requestId.Proto(),
                MassStatusReqType = MassStatusReqType.History,
                Symbol            = symbol.Proto(),
            };

            if (from.HasValue)
            {
                request.TransactTime.Add(from.Value.ToUnixNano());
            }
            if (to.HasValue)
            {
                if (!from.HasValue)
                {
                    throw new ArgumentNullException(nameof(from), "Option From is required");
                }
                request.TransactTime.Add(to.Value.ToUnixNano());
            }
            await SendCommandAsync(request).ConfigureAwait(false);
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task GetActiveOrdersAsync(ulong account, string symbol = "", string requestId = "")
        {
            var request = new OrderMassStatusRequest
            {
                MsgType           = MsgTypes.OrderMassStatusRequest,
                Account           = account,
                MassStatusReqId   = requestId.Proto(),
                MassStatusReqType = MassStatusReqType.ActiveOrders,
                Symbol            = symbol.Proto(),
            };

            await SendCommandAsync(request).ConfigureAwait(false);
        }
コード例 #3
0
 public virtual void onMessage(OrderMassStatusRequest message, QuickFix.SessionID session)
 {
     throw new QuickFix.UnsupportedMessageType();
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: quantbrothers/docs
        static void Main(string[] args)
        {
            TestFixApp testFixApp = new TestFixApp(args.FirstOrDefault());

            testFixApp.Start();

            Account account = new Account("54b97c9e-202b-11b2-be90-529049f1f1bb");
            ClOrdID clOrdId = new ClOrdID(Guid.NewGuid().ToString());
            Symbol  symbol  = new Symbol("BTC/USD");
            Side    side    = new Side(Side.BUY);

            #region SecurityListRequest
            SecurityListRequest securityListRequest = new SecurityListRequest(
                new SecurityReqID(Guid.NewGuid().ToString()),
                new SecurityListRequestType(SecurityListRequestType.SYMBOL)
                )
            {
                Symbol = symbol
            };
            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(securityListRequest);
            testFixApp.WaitResponces(1);
            #endregion SecurityListRequest

            #region MarketDataRequest
            MarketDataRequest marketDataRequest = new MarketDataRequest(
                new MDReqID(Guid.NewGuid().ToString()),
                new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT),
                new MarketDepth(5))
            {
                MDUpdateType = new MDUpdateType(MDUpdateType.FULL_REFRESH),
            };

            var bid = new MarketDataRequest.NoMDEntryTypesGroup()
            {
                MDEntryType = new MDEntryType(MDEntryType.BID)
            };
            var ask = new MarketDataRequest.NoMDEntryTypesGroup()
            {
                MDEntryType = new MDEntryType(MDEntryType.OFFER)
            };

            var symGroup = new MarketDataRequest.NoRelatedSymGroup
            {
                Symbol = symbol
            };

            marketDataRequest.AddGroup(bid);
            marketDataRequest.AddGroup(ask);
            marketDataRequest.AddGroup(symGroup);


            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(marketDataRequest);
            testFixApp.WaitResponces(1);
            #endregion MarketDataRequest

            #region NewOrderSingle
            NewOrderSingle newOrderSingle = new NewOrderSingle(
                clOrdId,
                symbol,
                side,
                new TransactTime(DateTime.Now),
                new OrdType(OrdType.LIMIT))
            {
                OrderQty     = new OrderQty(0.1m),
                Price        = new Price(1m),
                Account      = account,
                AcctIDSource = new AcctIDSource(AcctIDSource.OTHER)
            };

            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(newOrderSingle);
            testFixApp.WaitResponces(2);
            #endregion NewOrderSingle

            #region OrderCancelReplaceRequest
            OrderCancelReplaceRequest orderCancelReplaceRequest = new OrderCancelReplaceRequest(
                new OrigClOrdID(clOrdId.ToString()),
                clOrdId = new ClOrdID(Guid.NewGuid().ToString()),
                symbol,
                side,
                new TransactTime(DateTime.Now),
                new OrdType(OrdType.LIMIT))
            {
                Price    = new Price(2m),
                OrderQty = new OrderQty(0.2m)
            };

            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(orderCancelReplaceRequest);
            testFixApp.WaitResponces(2);
            #endregion OrderCancelReplaceRequest

            #region OrderStatusRequest
            OrderStatusRequest orderStatusRequest = new OrderStatusRequest(
                clOrdId,
                symbol,
                side
                );
            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(orderStatusRequest);
            testFixApp.WaitResponces(1);
            #endregion OrderStatusRequest

            #region OrderCancelRequest
            OrderCancelRequest orderCancelRequest = new OrderCancelRequest(
                new OrigClOrdID(clOrdId.ToString()),
                new ClOrdID(Guid.NewGuid().ToString()),
                symbol,
                side,
                new TransactTime(DateTime.Now)
                )
            {
                OrderQty = new OrderQty(0.1m)
            };

            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(orderCancelRequest);
            testFixApp.WaitResponces(3);
            #endregion region OrderCancelRequest

            #region OrderMassStatusRequest
            OrderMassStatusRequest orderMassStatusRequest = new OrderMassStatusRequest(
                new MassStatusReqID(Guid.NewGuid().ToString()),
                new MassStatusReqType(MassStatusReqType.STATUS_FOR_ALL_ORDERS))
            {
                Side   = side,
                Symbol = symbol
            };
            Console.WriteLine("Press enter to next comand");
            Console.ReadLine();
            testFixApp.Send(orderMassStatusRequest);
            #endregion OrderMassStatusRequest

            Console.WriteLine("Press enter to exit");
            Console.ReadLine();
            testFixApp.Stop();
        }
コード例 #5
0
        private void SendSelectedRequest()
        {
            switch (DataContainer.Data[_listBoxSelectedIndexNo].MsgType)
            {
            case "U1000":
                MsgAIR             requestData = (MsgAIR)DataContainer.Data[_listBoxSelectedIndexNo];
                AccountInfoRequest request     = new AccountInfoRequest();

                request.Set(new Account(Properties.Settings.Default.Account));
                request.Set(new AccReqID(requestData.AccReqID));
                //testforJack
                //request.Set(new SubscriptionRequestType('1'));

                if (!initiator.IsStopped)
                {
                    bool ret = Session.SendToTarget(request, conn.m_sessionID);
                }
                else
                {
                    MessageBox.Show(@"Connection is not established!!", @"Warning", MessageBoxButtons.OK);
                }
                break;

            case "D":
                MsgNOSR        requestData1 = (MsgNOSR)DataContainer.Data[_listBoxSelectedIndexNo];
                NewOrderSingle request1     = new NewOrderSingle();

                request1.Set(new Account(Properties.Settings.Default.Account));
                request1.Set(new ClOrdID(requestData1.ClOrdID));
                request1.Set(new OrderQty(decimal.Parse(requestData1.OrderQty)));
                request1.Set(new OrdType(char.Parse(requestData1.OrdType)));
                request1.Set(new Side(char.Parse(requestData1.Side)));
                request1.Set(new Symbol(requestData1.Symbol));
                request1.Set(new TransactTime(DateTime.Now));

                if (!initiator.IsStopped)
                {
                    bool ret = Session.SendToTarget(request1, conn.m_sessionID);
                }
                else
                {
                    MessageBox.Show(@"Connection is not established!!", @"Warning", MessageBoxButtons.OK);
                }
                break;

            case "H":
                MsgOSR             requestData2 = (MsgOSR)DataContainer.Data[_listBoxSelectedIndexNo];
                OrderStatusRequest request2     = new OrderStatusRequest();

                request2.Set(new Account(Properties.Settings.Default.Account));
                request2.Set(new ClOrdID(requestData2.ClOrdID));
                request2.Set(new Side(char.Parse(requestData2.Side)));
                request2.Set(new Symbol(requestData2.Symbol));
                request2.Set(new OrderID(requestData2.OrderID));

                if (!initiator.IsStopped)
                {
                    bool ret = Session.SendToTarget(request2, conn.m_sessionID);
                }
                else
                {
                    MessageBox.Show(@"Connection is not established!!", @"Warning", MessageBoxButtons.OK);
                }
                break;

            case "AF2":
                MsgBOIR requestData3            = (MsgBOIR)DataContainer.Data[_listBoxSelectedIndexNo];
                OrderMassStatusRequest request3 = new OrderMassStatusRequest();

                request3.Set(new Account(Properties.Settings.Default.Account));
                request3.Set(new Symbol(requestData3.Symbol));
                request3.Set(new MassStatusReqID(requestData3.MassStatusReqID));
                //request3.Set(new NoStatuses(int.Parse(requestData3.GroupNums)));

                if (!initiator.IsStopped)
                {
                    bool ret = Session.SendToTarget(request3, conn.m_sessionID);
                }
                else
                {
                    MessageBox.Show(@"Connection is not established!!", @"Warning", MessageBoxButtons.OK);
                }
                break;

            case "G":
                MsgOCRR requestData4 = (MsgOCRR)DataContainer.Data[_listBoxSelectedIndexNo];
                OrderCancelReplaceRequest request4 = new OrderCancelReplaceRequest();

                request4.Set(new Account(Properties.Settings.Default.Account));
                request4.Set(new ClOrdID(requestData4.ClOrdID));
                request4.Set(new OrderQty(decimal.Parse(requestData4.OrderQty)));
                request4.Set(new OrderID(requestData4.OrderID));

                if (!initiator.IsStopped)
                {
                    bool ret = Session.SendToTarget(request4, conn.m_sessionID);
                }
                else
                {
                    MessageBox.Show(@"Connection is not established!!", @"Warning", MessageBoxButtons.OK);
                }
                break;

            case "F":
                MsgOCR             requestData5 = (MsgOCR)DataContainer.Data[_listBoxSelectedIndexNo];
                OrderCancelRequest request5     = new OrderCancelRequest();

                request5.Set(new Account(Properties.Settings.Default.Account));
                request5.Set(new ClOrdID(requestData5.ClOrdID));
                request5.Set(new OrderID(requestData5.OrderID));
                request5.Set(new Symbol(requestData5.Symbol));
                request5.Set(new TransactTime(DateTime.Now));

                if (!initiator.IsStopped)
                {
                    bool ret = Session.SendToTarget(request5, conn.m_sessionID);
                }
                else
                {
                    MessageBox.Show(@"Connection is not established!!", @"Warning", MessageBoxButtons.OK);
                }
                break;

            default:
                break;
            }
        }