Example #1
0
 private void DisplayOrderStatus(OrderError errorCode)
 {
     if (errorCode != OrderError.None)
     {
         Debug(String.Format("{0} Order status {1} ", Time.ToString("HH:mm:ss.ffffff"), errorCode.ToString()));
     }
 }
Example #2
0
        private OrderTicket PlaceMarketOrder(TradeBar bar)
        {
            Debug("Sending market order");
            var marketTicket = MarketOrder(Symbol(BIST_SYMBOL), 10, asynchronous: false);

            if (marketTicket.Status != OrderStatus.Filled)
            {
                Log("Synchronous market order was not filled synchronously!");
                //Quit();
            }

            int code = marketTicket;  //int code = Order(BIST_SECURITY_NAME, 1,OrderType.Limit);//SetHoldings("SPY", 1);

            _openMarketOrders.Add(marketTicket);


            if (code >= 0)
            {   //Notify.Email("*****@*****.**", "Test Subject", "Test Body: " + Time.ToString("u"), "Test Attachment");
                Debug("Market Order sent" + Time.ToString("HH:mm:ss.ffffff"));
            }
            else
            {
                Debug("Market Order send failed " + Time.ToString("HH:mm:ss.ffffff"));
                OrderError errorCode = (OrderError)code;
                DisplayOrderStatus(errorCode);
            }
            return(marketTicket);
        }
Example #3
0
        private void CancelOrder(OrderTicket limitTicket)
        {
            int code = limitTicket;

            if (code >= 0)
            {
                Debug("Canceling order");
                if (CheckOrdersForFill(limitTicket))
                {
                    Debug(limitTicket.OrderType + " order is already filled.");
                    //_openLimitOrders.Clear();
                    //return;
                }
                else
                {
                    var response = limitTicket.Cancel("Attempt to cancel async order");
                    if (response.IsSuccess)
                    {
                        Log("Successfully canceled async limit order: " + limitTicket.OrderId);
                    }
                    else
                    {
                        Log("Unable to cancel async limit order: " + response.ErrorCode);
                    }
                }
            }
            else
            {
                Debug("Order cancel failed");
                OrderError errorCode = (OrderError)code;
                DisplayOrderStatus(errorCode);
            }
        }
Example #4
0
        public async Task <IActionResult> Update(UpdateInputOrderViewModel inputModel)
        {
            if (!this.User.IsInRole(GlobalConstants.AdministratorRoleName))
            {
                return(this.Redirect("/Identity/Account/AccessDenied"));
            }

            if (!this.ModelState.IsValid)
            {
                var error = new OrderError {
                    ErrorMessage = GlobalConstants.OrderModelValidationMessege
                };
                return(this.RedirectToAction("Error", "Order", error));
            }

            var isOrderUpdated = await this.orderService.UpdateAsync(inputModel.Id, inputModel.OrderStatusName);

            if (!isOrderUpdated)
            {
                var error = new OrderError {
                    ErrorMessage = GlobalConstants.OrderSameMessage
                };
                return(this.RedirectToAction("Error", "Order", error));
            }

            return(this.Redirect("/Order/Index"));
        }
Example #5
0
        private string zipCode; // that is, "00999".

        #endregion Fields

        #region Constructors

        public Workflow()
        {
            invalidOrder = new OrderError();
            invalidZipCodeErrorCollection = new OrderErrorCollection();
            invalidItemNumErrorCollection = new OrderErrorCollection();
            invalidOrdersCollection = new OrderErrorCollection();
            InitializeComponent();
        }
Example #6
0
        public async Task <IActionResult> Last(LastOrderParamViewModel model)
        {
            if (model.OrderId > 0)
            {
                var lastOrder = await this.orderService.GetLastOrderAsync(model.OrderId);

                var orverViewModel = OrderLastMapper.Map(lastOrder);

                return(this.View(orverViewModel));
            }

            var error = new OrderError {
                ErrorMessage = GlobalConstants.OrderLastMessage
            };

            return(this.RedirectToAction("Error", "Order", error));
        }
Example #7
0
        private void UpdateOrder(OrderTicket limitTicket)
        {
            int code = limitTicket;

            if (code >= 0)
            {
                Debug("Updating order");
                if (CheckOrdersForFill(limitTicket))
                {
                    Debug(limitTicket.OrderType + " order is already filled.");
                    //_openLimitOrders.Clear();
                    //return;
                }
                else
                {
                    var newLimitPrice = limitTicket.Get(OrderField.LimitPrice) + 0.1m;

                    Debug("Updating limits : " + newLimitPrice.ToString("0.00"));

                    var response = limitTicket.Update(new UpdateOrderFields
                    {
                        LimitPrice = newLimitPrice,
                        Tag        = "Update #" + (limitTicket.UpdateRequests.Count + 1)
                    });

                    if (response.IsSuccess)
                    {
                        Log("Successfully updated async limit order: " + limitTicket.OrderId);
                    }
                    else
                    {
                        Log("Unable to updated async limit order: " + response.ErrorCode);
                    }
                }
            }
            else
            {
                Debug("Order update failed ");
                OrderError errorCode = (OrderError)code;
                DisplayOrderStatus(errorCode);
            }
        }
Example #8
0
        private OrderTicket PlaceLimitOrder(TradeBar bar)
        {
            Debug("Sending limit order");
            OrderTicket limitTicket = LimitOrder(Symbol(BIST_SYMBOL), quantity, price); //int code = LimitOrder(BIST_SECURITY_NAME, 1, 9);
            int         code        = limitTicket;                                      //int code = Order(BIST_SECURITY_NAME, 1,OrderType.Limit);//SetHoldings("SPY", 1);

            _openLimitOrders.Add(limitTicket);


            if (code >= 0)
            {   //Notify.Email("*****@*****.**", "Test Subject", "Test Body: " + Time.ToString("u"), "Test Attachment");
                Debug("Limit Order sent" + Time.ToString("HH:mm:ss.ffffff"));
            }
            else
            {
                Debug("Limit Order send failed " + Time.ToString("HH:mm:ss.ffffff"));
                OrderError errorCode = (OrderError)code;
                DisplayOrderStatus(errorCode);
            }
            return(limitTicket);
        }
Example #9
0
        private void SendLimitOrder(TradeBar bar)
        {
            int     quantity = 1;
            decimal price    = 9; //bar.Price;


            OrderTicket ticket = LimitOrder(BIST_SECURITY_NAME, quantity, price); //int code = LimitOrder(BIST_SECURITY_NAME, 1, 9);
            int         code   = ticket;                                          //int code = Order(BIST_SECURITY_NAME, 1,OrderType.Limit);//SetHoldings("SPY", 1);

            //_openLimitOrders.Add(ticket);

            if (code >= 0)
            {
                Debug("Purchased complete " + Time.ToString("HH:mm:ss.ffffff"));
                //Notify.Email("*****@*****.**", "Test Subject", "Test Body: " + Time.ToString("u"), "Test Attachment");

                WriteTicketInfo(ticket);

                WriteBarInfo(bar);
                WritePortfolioInfo();


                if (CheckOrdersForFill(ticket))
                {
                    Debug(ticket.OrderType + " order is filled.");
                    //_openLimitOrders.Clear();
                    //return;
                }
                else
                {
                    var newLimitPrice = ticket.Get(OrderField.LimitPrice) + 0.1m;

                    Debug("Updating limits : " + newLimitPrice.ToString("0.00"));

                    var response = ticket.Update(new UpdateOrderFields
                    {
                        LimitPrice = newLimitPrice,
                        Tag        = "Update #" + (ticket.UpdateRequests.Count + 1)
                    });

                    if (response.IsSuccess)
                    {
                        Log("Successfully updated async limit order: " + ticket.OrderId);
                    }
                    else
                    {
                        Log("Unable to updated async limit order: " + response.ErrorCode);
                    }

                    response = ticket.Cancel("Attempt to cancel async order");
                    if (response.IsSuccess)
                    {
                        Log("Successfully canceled async limit order: " + ticket.OrderId);
                    }
                    else
                    {
                        Log("Unable to cancel async limit order: " + response.ErrorCode);
                    }
                }
            }
            else
            {
                Debug("Purchased failed " + Time.ToString("HH:mm:ss.ffffff"));
                OrderError errorCode = (OrderError)code;
                WriteOrderStatus(errorCode);
            }
        }
Example #10
0
 public IActionResult Error(OrderError orderError)
 {
     return(this.View(orderError));
 }