Пример #1
0
        /// <summary>
        /// Closes current open position for the selected Symbol
        /// </summary>
        private void ClosePosition()
        {
            // Find Order Side
            string orderSide = PositionStatistics.Position > 0 ? OrderSide.SELL : OrderSide.BUY;

            // Find Order Quantity
            int orderQuantity = Math.Abs(PositionStatistics.Position);

            // Create a new Object which will be used across the application
            OrderDetails orderDetails = new OrderDetails(SelectedOrderExecutionProvider.ProviderName);

            orderDetails.Price     = 0;
            orderDetails.StopPrice = 0;
            orderDetails.Quantity  = orderQuantity;
            orderDetails.Side      = orderSide;
            orderDetails.Type      = OrderType.Market;
            orderDetails.Security  = OrderModel.Security;

            // Add to selected provider collection for future reference and updates
            SelectedOrderExecutionProvider.AddOrder(orderDetails);

            // Create new order request
            OrderRequest orderRequest = new OrderRequest(orderDetails, OrderRequestType.New);

            // Raise event to notify listener
            EventSystem.Publish <OrderRequest>(orderRequest);
        }
Пример #2
0
        /// <summary>
        /// Update variable to display Position Statistics on UI
        /// </summary>
        /// <param name="security">Contains Symbol information</param>
        private void UpdatePositionInformation(Security security)
        {
            // Fetch Position Information
            var postionStatistics = SelectedOrderExecutionProvider.GetPositionStatistics(security.Symbol);

            // Update values to show on UI
            PositionStatistics = postionStatistics ?? new PositionStatistics(security);
        }
Пример #3
0
        /// <summary>
        /// Send a new Order Request
        /// </summary>
        /// <param name="orderSide">Order Side 'BUY/SELL'</param>
        /// <param name="orderPrice">limit price at which to send the order</param>
        private void SendOrder(string orderSide, decimal orderPrice)
        {
            // Create a new Object which will be used across the application
            OrderDetails orderDetails = new OrderDetails(SelectedOrderExecutionProvider.ProviderName);

            orderDetails.Price     = SelectedOrderType.Equals(OrderType.Market) ? 0 : orderPrice;
            orderDetails.StopPrice = OrderModel.TriggerPrice;
            orderDetails.Quantity  = OrderModel.Size;
            orderDetails.Side      = orderSide;
            orderDetails.Type      = SelectedOrderType;
            orderDetails.Security  = OrderModel.Security;

            // Add to selected provider collection for future reference and updates
            SelectedOrderExecutionProvider.AddOrder(orderDetails);

            // Create new order request
            OrderRequest orderRequest = new OrderRequest(orderDetails, OrderRequestType.New);

            // Raise event to notify listener
            EventSystem.Publish <OrderRequest>(orderRequest);
        }