Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        private void SetFields()
        {
            try
            {
                _sharePrice        = (decimal)_stockInfo.StockData.WeeklyQuotes.First().Close;
                _expectedSellPrice = SharePrice;
                SellPriceSliderMax = (float)_expectedSellPrice * 2.0f;

                decimal growthRate = (decimal)_stockInfo.DividendGrowthRateInPercent;
                // 15 is max
                if (15 <= growthRate)
                {
                    growthRate = 14.99m;
                }

                decimal lastDividend = _stockInfo.GetLastDividend();
                DividendSliderMax      = 20;
                _expectedDividendYear1 = lastDividend / 100 * (100 + growthRate);
                // 5% slowdown y2
                _expectedDividendYear2 = ExpectedDividendYear1 / 100 * (100 + (growthRate * 0.95m));
                // 10% slowdown y3
                _expectedDividendYear3 = ExpectedDividendYear2 / 100 * (100 + (growthRate * 0.90m));
                // 20% slowdown y4
                _expectedDividendYear4 = ExpectedDividendYear3 / 100 * (100 + (growthRate * 0.80m));
                // 30% slowdown y4
                _expectedDividendYear5 = ExpectedDividendYear4 / 100 * (100 + (growthRate * 0.70m));

                if (DividendSliderMax < (float)(_expectedDividendYear5 * 1.5m))
                {
                    DividendSliderMax = (float)(_expectedDividendYear5 * 1.5m);
                }

                // 10% (with inflation) s. https://www.investopedia.com/ask/answers/042415/what-average-annual-return-sp-500.asp
                // so we aim at 15
                _desiredRateOfReturn = 15;

                SetIntrinsicSharePrice();
                RaiseAllPropertyChangedEvents();
            }
            catch (Exception x)
            {
                Log.Error(x);
            }
        }
Esempio n. 2
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 private decimal CalcExpectedDividend()
 {
     // simply return to last dividend, maybe some averaging later
     return(_stockInfo.GetLastDividend());
 }