Esempio n. 1
0
        public PortfolioItem AddItem(IDbContext context, Security security, decimal units)
        {
            var item = new PortfolioItem(this, security, units);

            context.PortfolioItems.Add(item);

            return item;
        }
        public async Task<ActionResult> Skapa(PortfolioItem portfolioItem)
        {
            if (ModelState.IsValid)
            {
                db.PortfolioItems.Add(portfolioItem.AssignValues());
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }

            return View(portfolioItem);
        }
 public async Task<ActionResult> Redigera(PortfolioItem portfolioItem)
 {
     if (ModelState.IsValid)
     {
         db.Entry(portfolioItem.AssignValues()).State = EntityState.Modified;
         await db.SaveChangesAsync();
         return RedirectToAction("Index");
     }
     return View(portfolioItem);
 }
        private string GetEigenValue(List <PortfolioItem> portfolioItems)
        {
            PortfolioItem prePos      = null;
            double        preQuantity = 1;

            StringBuilder          value            = new StringBuilder();
            List <PortfolioOption> portfolioOptions =
                portfolioItems.Where(item => item is PortfolioOption).Cast <PortfolioOption>()
                .Where(item => item.OptionHoldingQuantity != 0).ToList();

            if (portfolioOptions == null || portfolioOptions.Count == 0)
            {
                portfolioOptions = portfolioItems.Where(item => item is PortfolioOption).Cast <PortfolioOption>().ToList();
            }

            List <PortfolioStock> portfolioStocks = portfolioItems.Where(item => item is PortfolioStock).Cast <PortfolioStock>().ToList();

            long multiplier = portfolioOptions.Where(p => p.OptionType != OptionType.Security).Select(p => p.PremiumMultiplier).FirstOrDefault();

            if (multiplier == 0)
            {
                multiplier = 1000;
            }

            portfolioItems = new List <PortfolioItem>();
            portfolioItems.AddRange(portfolioStocks);
            portfolioItems.AddRange(portfolioOptions
                                    .OrderBy(x => x.StrikePrice)
                                    .ThenBy(x => x.Expiry.FutureDate)
                                    .ThenBy(x => (x.OptionType == OptionType.Call || x.OptionType == OptionType.CoveredCall)? -1 : 1));

            foreach (PortfolioItem portfolioItem in portfolioItems)
            {
                double quantity = portfolioItem.AdjustedAvailableQuantity;

                if (!portfolioItem.IsStock())
                {
                    quantity = portfolioItem.ToPortfolioOption().AdjustedT0Quantity;
                    if (Math.Abs(quantity) < 0.1)
                    {
                        quantity = portfolioItem.AdjustedBalance;
                    }
                }

                int result;

                if (prePos != null)
                {
                    if (prePos.IsStock())
                    {
                        preQuantity = Convert.ToDouble(prePos.AdjustedBalance) / multiplier;
                    }
                    else
                    {
                        preQuantity = prePos.ToPortfolioOption().AdjustedT0Quantity;
                        if (Math.Abs(preQuantity) < 0.1)
                        {
                            preQuantity = prePos.AdjustedBalance;
                        }
                    }
                }
                if (portfolioItem.IsStock())
                {
                    quantity = Convert.ToInt32(portfolioItem.AdjustedBalance / multiplier);
                }

                if (prePos != null)
                {
                    result = (int)(quantity / preQuantity * 100);
                }
                else
                {
                    result = quantity > 0 ? 1 : -1;
                }
                value.Append(result);

                if (prePos == null || prePos.IsStock())
                {
                    result = 2;
                }
                else
                {
                    result = Math.Sign((prePos.ToPortfolioOption().Expiry.FutureDate - portfolioItem.ToPortfolioOption().Expiry.FutureDate).Days);
                }
                value.Append(result);

                if (prePos == null || prePos.IsStock())
                {
                    result = 2;
                }
                else
                {
                    result = prePos.ToPortfolioOption().StrikePrice == portfolioItem.ToPortfolioOption().StrikePrice ? 1 : 0;
                }
                value.Append(result);

                //switch...case is not applicable
                if (portfolioItem.IsStock())
                {
                    result = 0;
                }
                else
                {
                    PortfolioOption portfolioOption = portfolioItem.ToPortfolioOption();

                    if (portfolioOption.OptionType == OptionType.Call)
                    {
                        result = 1;
                    }
                    if (portfolioOption.OptionType == OptionType.Put)
                    {
                        result = 2;
                    }
                }

                value.Append(result);

                prePos = portfolioItem;

                value.Append("|");
            }
            return(value.ToString());
        }
        public void Add(Portfolio portfolio, Security security, decimal units)
        {
            var item = new PortfolioItem(portfolio, security, units);

            _context.PortfolioItems.Add(item);
        }
Esempio n. 6
0
 public bool UpdateItemById(PortfolioItem b)
 {
     return(portfolioInterface.UpdateItemById(b));
 }
Esempio n. 7
0
 public bool CreateNewItem(PortfolioItem b)
 {
     return(portfolioInterface.CreateNewItem(b));
 }
Esempio n. 8
0
        public ActionResult GetPortfolio(string Id)
        {
            PortfolioItem portfolios = _portfolioItemContext.Find(Id);

            return(View(portfolios));
        }
        public void Add(Portfolio portfolio, Security security, decimal units)
        {
            var item = new PortfolioItem(portfolio, security, units);

            _context.PortfolioItems.Add(item);
        }