public static void ExecuteOn_Up_Through_ProcessOrderExecution(XComponent.Order.UserObject.OrderExecution orderExecution, object object_PublicMember, object object_InternalMember, Context context, IProcessOrderExecutionOrderExecutionOnUpTradeProcessorSenderInterface sender)
        {
            // Execute the existing trade for a revised quantity
            var tradeExecution = new TradeExecution
            {
                AssetName         = orderExecution.AssetName,
                OrderId           = orderExecution.OrderId,
                Price             = orderExecution.Price,
                Quantity          = orderExecution.Quantity,
                RemainingQuantity = orderExecution.RemainingQuantity
            };

            sender.ExecuteTrade(context, tradeExecution);

            // Create a new trade for the remaining quantity
            if (orderExecution.RemainingQuantity > 0)
            {
                sender.CreateTrade(context, TradeFactory.CreateNewTrade(orderExecution.OrderId, orderExecution.RemainingQuantity, orderExecution.AssetName));
            }
        }
 public void SendEvent(StdEnum stdEnum, XComponent.Order.UserObject.OrderExecution evt, string privateTopic = null)
 {
     _internalAPI.SendEvent(stdEnum, evt, privateTopic);
 }
 public void PublishOrderPartiallyFilled(Context context, XComponent.Order.UserObject.OrderExecution transitionEvent, string privateTopic = null)
 {
     _internalAPI.PublishOrderPartiallyFilled(context, transitionEvent, privateTopic);
 }
 /// <summary>
 /// Executing triggeredMethod ExecuteOn_PartiallyFilled_Through_PublishOrderPartiallyFilled
 /// </summary>
 public static void ExecuteOn_PartiallyFilled_Through_PublishOrderPartiallyFilled(XComponent.Order.UserObject.OrderExecution orderExecution_TriggeringEvent, XComponent.Order.UserObject.OrderExecution orderExecution_PublicMember, object object_InternalMember, RuntimeContext context, IPublishOrderPartiallyFilledOrderExecutionOnPartiallyFilledPartialExecutionFacadeSenderInterface sender)
 {
     XComponent.Shared.XCClone.Clone(orderExecution_TriggeringEvent, orderExecution_PublicMember);
 }
示例#5
0
        public void SendEvent(StdEnum stateMachineEnum, XComponent.Order.UserObject.OrderExecution evt, string privateTopic = null)
        {
            var incomingEvent = new IncomingEvent(evt != null ? evt : new XComponent.Order.UserObject.OrderExecution(), IncomingEventType.Transition, HeaderFactory.Create(11, (int)stateMachineEnum, -729436854, privateTopic));

            PostOnStateMachine(incomingEvent, stateMachineEnum);
        }
示例#6
0
 public void SendEvent(XComponent.Order.UserObject.OrderExecution evt, string privateTopic = null)
 {
     SendEvent(StdEnum.TradeProcessor, evt != null ? evt : new XComponent.Order.UserObject.OrderExecution(), privateTopic);
 }
示例#7
0
        public void Send(Context context, XComponent.Order.UserObject.OrderExecution evt, string privateTopic = null)
        {
            var incomingEvent = new IncomingEvent(evt != null ? evt : new XComponent.Order.UserObject.OrderExecution(), IncomingEventType.Transition, HeaderFactory.Create(context, 11, privateTopic));

            Agent.Post(_engineAgentsById[context.AgentId], incomingEvent);
        }
示例#8
0
 public void ProcessOrderExecution(Context context, XComponent.Order.UserObject.OrderExecution transitionEvent, string privateTopic = null)
 {
     _internalCommunicationLayer.Send(context, transitionEvent, privateTopic);
 }
示例#9
0
 public void SendEvent(XComponent.Order.UserObject.OrderExecution evt, string privateTopic = null)
 {
     _internalCommunicationLayer.SendEvent(evt, privateTopic);
 }
示例#10
0
 /// <summary>
 /// Executing triggeredMethod ExecuteOn_Filled_Through_PublishOrderFilled
 /// </summary>
 public static void ExecuteOn_Filled_Through_PublishOrderFilled(XComponent.Order.UserObject.OrderExecution orderExecution_TriggeringEvent, XComponent.Order.UserObject.OrderExecution orderExecution_PublicMember, object object_InternalMember, Context context, IPublishOrderFilledOrderExecutionOnFilledExecutionFacadeSenderInterface sender)
 {
     XComponent.Common.Clone.XCClone.Clone(orderExecution_TriggeringEvent, orderExecution_PublicMember);
 }