public void ignore_OrderMoveSucceeded_if_request_already_confirmed_test() { Signal signal = new Signal(this.strategyHeader, BrokerDateTime.Make(DateTime.Now), TradeAction.Buy, OrderType.Limit, 150000, 0, 150000); this.tradingData.Get <ICollection <Signal> >().Add(signal); Order order = new Order(signal); this.tradingData.Get <ICollection <Order> >().Add(order); OrderMoveRequest request = new OrderMoveRequest(order, 151000, 0, "Move order"); this.tradingData.Get <ICollection <OrderMoveRequest> >().Add(request); Assert.IsFalse(request.IsDelivered); OrderMoveSucceeded confirmation = new OrderMoveSucceeded(request.OrderId, "588"); this.rawData.GetData <OrderMoveSucceeded>().Add(confirmation); Assert.IsTrue(request.IsDelivered); OrderMoveSucceeded duplicate = new OrderMoveSucceeded(request.OrderId, "588"); duplicate.DateTime = duplicate.DateTime.AddMilliseconds(1); this.rawData.GetData <OrderMoveSucceeded>().Add(duplicate); Assert.AreNotEqual(request.DeliveryDate, duplicate.DateTime); Assert.AreEqual(request.DeliveryDate, confirmation.DateTime); }
public override void OnItemAdded(OrderMoveFailed item) { Order order = FindOrder(item.Cookie); if (order == null) { return; } OrderMoveRequest request = FindRequest(order); if (request == null) { return; } if (request.IsFailed) { return; } request.Failed(BrokerDateTime.Make(DateTime.Now), item.Reason); this.logger.Log(String.Format("{0:dd/MM/yyyy H:mm:ss.fff}, {1}, получено уведомление об отклонении запроса {2} на сдвиг заявки.", BrokerDateTime.Make(DateTime.Now), this.GetType().Name, request.ToString())); }
public void OrderMoveRequest_Failed_test() { DateTime date = BrokerDateTime.Make(DateTime.Now).Date; double stopPrice = 149900; double limitPrice = 0; string description = "Move order"; Order order = new Order(1, DateTime.Now, "BP12345-RF-01", "RTS-12.13_FT", TradeAction.Sell, OrderType.Stop, 1, 0, 150000); OrderMoveRequest request = new OrderMoveRequest(order, limitPrice, stopPrice, description); Assert.IsFalse(request.IsFailed); DateTime faultDate = BrokerDateTime.Make(DateTime.Now); string faultReason = "Fault"; request.Failed(faultDate, faultReason); Assert.AreEqual(faultDate, request.FaultDate); Assert.AreEqual(faultReason, request.FaultDescription); Assert.IsTrue(request.IsFailed); }
public void OrderMoveRequest_constructor_test() { DateTime date = BrokerDateTime.Make(DateTime.Now).Date; double stopPrice = 149900; double limitPrice = 0; string description = "Move order"; Order order = new Order(1, DateTime.Now, "BP12345-RF-01", "RTS-12.13_FT", TradeAction.Sell, OrderType.Stop, 1, 0, 150000); OrderMoveRequest request = new OrderMoveRequest(order, limitPrice, stopPrice, description); Assert.IsTrue(request.Id > 0); Assert.AreEqual(order, request.Order); Assert.AreEqual(order.Id, request.OrderId); Assert.AreEqual(limitPrice, request.LimitPrice); Assert.AreEqual(stopPrice, request.StopPrice); Assert.AreEqual(description, request.Description); Assert.AreEqual(date, request.DateTime.Date); Assert.AreEqual(DateTime.MinValue, request.DeliveryDate); Assert.AreEqual(DateTime.MinValue, request.FaultDate); Assert.AreEqual(request.DateTime.AddSeconds(60), request.ExpirationDate); Assert.AreEqual(string.Empty, request.FaultDescription); Assert.IsFalse(request.IsExpired); Assert.IsFalse(request.IsDelivered); Assert.IsFalse(request.IsFailed); }
public void ignore_duplicated_OrderMoveFailed_test() { Signal signal = new Signal(this.strategyHeader, BrokerDateTime.Make(DateTime.Now), TradeAction.Buy, OrderType.Limit, 150000, 0, 150000); this.tradingData.Get <ICollection <Signal> >().Add(signal); Order order = new Order(signal); this.tradingData.Get <ICollection <Order> >().Add(order); OrderMoveRequest request = new OrderMoveRequest(order, 151000, 0, "Move order"); this.tradingData.Get <ICollection <OrderMoveRequest> >().Add(request); Assert.IsFalse(request.IsFailed); OrderMoveFailed fault = new OrderMoveFailed(order.Id, "268", "Reason"); this.rawData.GetData <OrderMoveFailed>().Add(fault); Assert.IsTrue(request.IsFailed); OrderMoveFailed duplicate = new OrderMoveFailed(order.Id, "268", "Reason duplicate"); this.rawData.GetData <OrderMoveFailed>().Add(duplicate); Assert.AreEqual(request.FaultDescription, fault.Reason); Assert.AreNotEqual(request.FaultDescription, duplicate.Reason); }
public override void OnItemAdded(OrderMoveSucceeded item) { Order order = FindOrder(item.Cookie); if (order == null) { return; } OrderMoveRequest request = FindRequest(order); if (request == null) { return; } if (request.IsDelivered) { return; } request.DeliveryDate = item.DateTime; this.logger.Log(String.Format("{0:dd/MM/yyyy H:mm:ss.fff}, {1}, получено уведомление об успешной доставке запроса {2} на сдвиг заявки.", BrokerDateTime.Make(DateTime.Now), this.GetType().Name, request.ToString())); }
public void Move(OrderMoveRequest Move) { RestRequest elm = CreateRequest <OrderMoveRequest>("Orders/Move", Method.POST, Move); IRestResponse resp = Client.Execute(elm); if (resp.StatusCode == HttpStatusCode.Unauthorized) { throw new UnauthorizedException(); } else if (resp.StatusCode != HttpStatusCode.OK) { throw new eDockAPIException(); } }
public void ConfirmMoveRequest_on_OrderMoveSucceeded_test() { Signal signal = new Signal(this.strategyHeader, BrokerDateTime.Make(DateTime.Now), TradeAction.Buy, OrderType.Limit, 150000, 0, 150000); this.tradingData.Get <ICollection <Signal> >().Add(signal); Order order = new Order(signal); this.tradingData.Get <ICollection <Order> >().Add(order); OrderMoveRequest request = new OrderMoveRequest(order, 151000, 0, "Move order"); this.tradingData.Get <ICollection <OrderMoveRequest> >().Add(request); Assert.IsFalse(request.IsDelivered); OrderMoveSucceeded confirmation = new OrderMoveSucceeded(request.OrderId, "588"); this.rawData.GetData <OrderMoveSucceeded>().Add(confirmation); Assert.IsTrue(request.IsDelivered); }
public void RejectMoveRequest_on_OrderMoveFailed_test() { Signal signal = new Signal(this.strategyHeader, BrokerDateTime.Make(DateTime.Now), TradeAction.Buy, OrderType.Limit, 150000, 0, 150000); this.tradingData.Get <ICollection <Signal> >().Add(signal); Order order = new Order(signal); this.tradingData.Get <ICollection <Order> >().Add(order); OrderMoveRequest request = new OrderMoveRequest(order, 151000, 0, "Move order"); this.tradingData.Get <ICollection <OrderMoveRequest> >().Add(request); Assert.IsFalse(request.IsFailed); OrderMoveFailed fault = new OrderMoveFailed(order.Id, "268", "Reason"); this.rawData.GetData <OrderMoveFailed>().Add(fault); Assert.IsTrue(request.IsFailed); }
public void TradingDataContext_GetMoveRequests_for_order_test() { Signal signal = new Signal(this.strategyHeader, BrokerDateTime.Make(DateTime.Now), TradeAction.Buy, OrderType.Market, 150000, 0, 0); EmulateTradeFor(signal); Assert.AreEqual(2, this.tradingData.Get <IEnumerable <Signal> >().Count()); Order slOrder = this.tradingData.GetCloseOrders(this.strategyHeader).Last(); Assert.AreEqual(OrderType.Stop, slOrder.OrderType); Assert.AreEqual(149900, slOrder.Stop); OrderMoveRequest slMoveReq = new OrderMoveRequest(slOrder, 0, 150000, "Trail stop"); this.tradingData.Get <ObservableCollection <OrderMoveRequest> >().Add(slMoveReq); OrderMoveRequest slMoveReq2 = new OrderMoveRequest(slOrder, 0, 150100, "Trail stop"); this.tradingData.Get <ObservableCollection <OrderMoveRequest> >().Add(slMoveReq2); Assert.AreEqual(2, this.tradingData.GetMoveRequests(slOrder).Count()); }