internal void CloseOrder(BO.Order order) { var account = order.Owner.Owner; var addCommand = AddBOTransactionCommandFactory.Default.CreateByClose(account, order); addCommand.Execute(); var closeTran = addCommand.Result; iExchangeEngine.Default.Execute(new OrderExecuteEventArgs(ExecuteContext.CreateExecuteDirectly(account.Id, closeTran.Id, ExecuteStatus.Filled))); }
private void HitExecutedOrder(Order order, Quotation quotation) { OrderHitStatus status = order.HitAutoClosePrice(quotation, MarketManager.Now); Transaction closeTran = null; if (status == OrderHitStatus.ToAutoLimitClose) { closeTran = this.CloseByLimit(order); } else if (status == OrderHitStatus.ToAutoStopClose) { closeTran = this.CloseByStop(order); } if (closeTran != null) { iExchangeEngine.Default.Execute(new OrderExecuteEventArgs(ExecuteContext.CreateExecuteDirectly(closeTran.Owner.Id, closeTran.Id, ExecuteStatus.Filled))); } }