Пример #1
0
        /// <summary>
        /// iv.	Calculate Volume Weighted Stock Price based on trades in past  5 minutes
        /// </summary>
        /// <param name="symbol"></param>
        /// <returns></returns>
        public OperationResult <double> CalculateVolumeWeightedPrice(string symbol)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(symbol))
                {
                    throw new ArgumentException("symbol is empty");
                }

                List <Trade> trades = _tradeRepository.GetLast5MinutesTradesBySymbol(symbol, DateTime.Now);

                if (trades == null || !trades.Any())
                {
                    throw new ArgumentException("no trades to calculate");
                }

                return(OperationResult <double> .Ok(Calculator.CalculateVolumeWeightedPrice(trades)));
            }
            catch (Exception ex)
            {
                return(OperationResult <double> .Fail(ex.Message));
            }
        }