Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        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)));
            }
        }