Example #1
0
        public IActionResult GetTotalPerform(int id, string dateParm)
        {
            //select records from StockTransaction table based on date parameter
            //_stockTransRepo.FilterStockTrans()
            //return _stockTransRepo.FilterStockTrans(id, dateParm);

            var      result        = _stockTransRepo.FilterStockTrans(id, dateParm);
            TransMap stockTransMap = null;

            lstTransMap = new List <TransMap>();

            foreach (var trans in result)
            {
                stockTransMap = new TransMap()
                {
                    Id             = trans.Id,
                    TransType      = trans.TransType.ToUpper(),
                    TransDate      = trans.TransDate,
                    Amount         = trans.Amount,
                    NumShares      = trans.NumShares,
                    StockName      = trans.StockName,
                    Ticker         = trans.Ticker,
                    StopLoss       = trans.StopLoss,
                    TotalPortfolio = trans.StockUser.TotPortfolio,
                    TotEquity      = trans.StockUser.TotEquity,
                    TotCash        = trans.StockUser.TotCash
                };
                lstTransMap.Add(stockTransMap);
            }

            //TODO: DoDataCalculations()

            return(Ok(DoDataConversions(lstTransMap)));
        }
Example #2
0
        public TransMap DoDataConversions(List <TransMap> conversionMap)
        {
            TransMap newConversionMap = new TransMap();

            //get total portfolio balance
            newConversionMap.TotalPortfolio = conversionMap.First().TotalPortfolio;
            //get equity balance
            newConversionMap.TotEquity = conversionMap.First().TotEquity;
            //get cash balance
            newConversionMap.TotCash = conversionMap.First().TotCash;
            // get user Id
            newConversionMap.Id = conversionMap.First().Id;

            foreach (TransMap trans in conversionMap)
            {
                if (trans.TransType == "BUY")
                {
                    newConversionMap.Amount         -= (trans.Amount - Commission); //total profit(loss)
                    newConversionMap.NumSharesPurch += trans.NumShares;             //# of buys
                    newConversionMap.TotCash        -= (trans.Amount - Commission);
                    newConversionMap.TotEquity      += (trans.Amount - Commission);
                }
                else
                {
                    newConversionMap.Amount        += (trans.Amount - Commission); //total profit(loss)
                    newConversionMap.NumSharesSold += trans.NumShares;             //# of sells
                    newConversionMap.TotCash       += (trans.Amount - Commission);
                    newConversionMap.TotEquity     -= (trans.Amount - Commission);
                }

                newConversionMap.TotCommission += Commission;  //total commission
                newConversionMap.StopLoss      += trans.StopLoss;
            }
            //calculate total cash

            //newConversionMap.TotCash += newConversionMap.Amount;
            //get average shares
            newConversionMap.AvgShares = newConversionMap.NumSharesPurch / conversionMap.Count;

            //get average risk
            newConversionMap.AvgRisk = newConversionMap.StopLoss / conversionMap.Count;
            //get rate
            newConversionMap.Rate = newConversionMap.Amount / (newConversionMap.TotalPortfolio - newConversionMap.Amount);
            return(newConversionMap);
        }