public ActionResult <List <Quote> > Get(string symbols)
 {
     {
         var quoteSymbols = symbols.Split(',').ToList();
         return(_alphaClientLogic.GetQuotes(quoteSymbols).GetAwaiter().GetResult());
     }
 }
Beispiel #2
0
        public ActionResult <RebalanceResult> Rebalance(string id)
        {
            {
                Portfolio portfolio = _portfolioDataAccess.GetPortfolio(id).GetAwaiter().GetResult();

                var symbols = portfolio.AllStocks.Select(s => s.Symbol).ToList();
                var quotes  = _alphaClientLogic.GetQuotes(symbols).GetAwaiter().GetResult();

                var dataSet = new RebalanceDataSet
                {
                    Portfolio = portfolio,
                    Quotes    = quotes
                };

                return(_rebalanceLogic.Rebalance(dataSet, false));
            }
        }
        public async Task Rebalance()
        {
            var portfolio = await _portfolioDataAccess.GetPortfolio("5d80d0587d2d4657d8e1fe8f");

            var symbols = portfolio.AllStocks.Select(s => s.Symbol).ToList();
            var quotes  = await _alphaClient.GetQuotes(symbols);

            portfolio.CashOnHand += 500;

            RebalanceDataSet dataSet = new RebalanceDataSet
            {
                Portfolio = portfolio,
                Quotes    = quotes
            };

            var result = _rebalanceLogic.Rebalance(dataSet, false);

            foreach (var action in result.Actions)
            {
                Console.WriteLine($"{action.ActionType} {action.Amount} shares of {action.Symbol}");
            }

            Console.WriteLine($"${result.RemainingCashOnHand} remaining");
        }