/// <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); }
/// <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); }
public virtual void onMessage(OrderMassStatusRequest message, QuickFix.SessionID session) { throw new QuickFix.UnsupportedMessageType(); }
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(); }
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; } }