Ejemplo n.º 1
0
        private void SetCurrentFiveYearAlphaRatio_MI(ManagedInvestmentSuitabilityParameters table,
                                                     MICurrentParameter f0Score)
        {
            var fiveYearAlphaRatio = F0Ratios.FiveYearAlphaRatio;

            if (fiveYearAlphaRatio.HasValue)
            {
                if (fiveYearAlphaRatio.Value >= table.Mif0Parameters.Defensive.FiveYearAlphaRatio)
                {
                    f0Score.FiveYearAlphaRatio = table.Mif0Parameters.Defensive.ScoreRanking;
                }
                else if (fiveYearAlphaRatio.Value >= table.Mif0Parameters.Conservative.FiveYearAlphaRatio)
                {
                    f0Score.FiveYearAlphaRatio = table.Mif0Parameters.Conservative.ScoreRanking;
                }
                else if (fiveYearAlphaRatio.Value >= table.Mif0Parameters.Balance.FiveYearAlphaRatio)
                {
                    f0Score.FiveYearAlphaRatio = table.Mif0Parameters.Balance.ScoreRanking;
                }
                else if (fiveYearAlphaRatio.Value >= table.Mif0Parameters.Assertive.FiveYearAlphaRatio)
                {
                    f0Score.FiveYearAlphaRatio = table.Mif0Parameters.Assertive.ScoreRanking;
                }
                else
                {
                    f0Score.FiveYearAlphaRatio = table.Mif0Parameters.Aggressive.ScoreRanking;
                }
            }
            else
            {
                throw new Exception(
                          "Five year alpha ratio is not populated for current asset, which is of type managed fund");
            }
        }
Ejemplo n.º 2
0
        private void SetCurrentGlobalCategoryScore_MI(ManagedInvestmentSuitabilityParameters table,
                                                      MICurrentParameter f0Score)
        {
            var globalCategory = F0Ratios.GlobalCategory;

            if (globalCategory.HasValue)
            {
                if (globalCategory.Value >= table.Mif0Parameters.Defensive.GlobalCategory)
                {
                    f0Score.GlobalCategory = table.Mif0Parameters.Defensive.ScoreRanking;
                }
                else if (globalCategory.Value >= table.Mif0Parameters.Conservative.GlobalCategory)
                {
                    f0Score.GlobalCategory = table.Mif0Parameters.Conservative.ScoreRanking;
                }
                else if (globalCategory.Value >= table.Mif0Parameters.Balance.GlobalCategory)
                {
                    f0Score.GlobalCategory = table.Mif0Parameters.Balance.ScoreRanking;
                }
                else if (globalCategory.Value >= table.Mif0Parameters.Assertive.GlobalCategory)
                {
                    f0Score.GlobalCategory = table.Mif0Parameters.Assertive.ScoreRanking;
                }
                else
                {
                    f0Score.GlobalCategory = table.Mif0Parameters.Aggressive.ScoreRanking;
                }
            }
            else
            {
                throw new Exception("Global Category is not populated for current asset, which is of type managed fund");
            }
        }
Ejemplo n.º 3
0
        private AssetSuitability GetManagedFundAssetSuitability()
        {
            var table   = new ManagedInvestmentSuitabilityParameters();
            var f0Score = new MICurrentParameter();

            SetF0Score_ManagedInvestment(table, f0Score);
            f0Score.Total = f0Score.FiveYearTotalReturn + f0Score.FiveYearAlphaRatio + f0Score.FiveYearBeta +
                            f0Score.FiveYearInformationRatio
                            + f0Score.FiveYearStandardDeviation + f0Score.FiveYearSkewnessRatio +
                            f0Score.FiveYearTrackingErrorRatio + f0Score.FiveYearSharpRatio
                            + f0Score.GlobalCategory + f0Score.FundSize;

            var f1Score = new MIForecastParameter();

            SetF1Score_ManagedInvestment(table, f1Score);
            f1Score.Total = f1Score.OneYearTotalReturn + f1Score.MorningStarAnalyst + f1Score.OneYearAlpha +
                            f1Score.OneYearBeta
                            + f1Score.OneYearInformationRatio + f1Score.OneYearTrackingError +
                            f1Score.OneYearSharpRatio + f1Score.MaxManagementExpenseRatio
                            + f1Score.PerformanceFee + f1Score.YearsSinceInception;

            return(new AssetSuitability
            {
                F1Parameters = f1Score,
                SuitabilityRating = GetRatingScore(f1Score.Total + f0Score.Total),
                F0Parameters = f0Score,
                TotalScore = f1Score.Total + f0Score.Total
            });
        }
Ejemplo n.º 4
0
 private void SetF0Score_ManagedInvestment(ManagedInvestmentSuitabilityParameters table,
                                           MICurrentParameter f0Score)
 {
     SetCurrentFiveYearReturnScore_MI(table, f0Score);
     SetCurrentFiveYearAlphaRatioScore_MI(table, f0Score);
     SetCurrentBetaFiveYearScore_MI(table, f0Score);
     SetCurrentFiveYearAlphaRatio_MI(table, f0Score);
     SetCurrentFiveYearInfomrationScore_MI(table, f0Score);
     SetCurrentFiveYearStandardDeviationScore_MI(table, f0Score);
     SetCurrentFiveYearSkewnessRatioScore_MI(table, f0Score);
     SetCurrentFiveYearTrackingErrorRatioScore_MI(table, f0Score);
     SetCurrentFiveYearSharpRatioScore_MI(table, f0Score);
     SetCurrentGlobalCategoryScore_MI(table, f0Score);
     SetCurrentFundsizeScore_MI(table, f0Score);
 }
Ejemplo n.º 5
0
 private void SetCurrentFiveYearReturnScore_MI(ManagedInvestmentSuitabilityParameters table,
                                               MICurrentParameter f0Score)
 {
     if (F0Ratios.FiveYearReturn >= table.Mif0Parameters.Defensive.FiveYearTotalReturn)
     {
         f0Score.FiveYearTotalReturn = table.Mif0Parameters.Defensive.ScoreRanking;
     }
     else if (F0Ratios.FiveYearReturn >= table.Mif0Parameters.Conservative.FiveYearTotalReturn)
     {
         f0Score.FiveYearTotalReturn = table.Mif0Parameters.Conservative.ScoreRanking;
     }
     else if (F0Ratios.FiveYearReturn >= table.Mif0Parameters.Balance.FiveYearTotalReturn)
     {
         f0Score.FiveYearTotalReturn = table.Mif0Parameters.Balance.ScoreRanking;
     }
     else if (F0Ratios.FiveYearReturn >= table.Mif0Parameters.Assertive.FiveYearTotalReturn)
     {
         f0Score.FiveYearTotalReturn = table.Mif0Parameters.Assertive.ScoreRanking;
     }
     else
     {
         f0Score.FiveYearTotalReturn = table.Mif0Parameters.Aggressive.ScoreRanking;
     }
 }
Ejemplo n.º 6
0
 private void SetCurrentBetaFiveYearScore_MI(ManagedInvestmentSuitabilityParameters table,
                                             MICurrentParameter f0Score)
 {
     if (F0Ratios.BetaFiveYears <= table.Mif0Parameters.Defensive.FiveYearBeta)
     {
         f0Score.FiveYearBeta = table.Mif0Parameters.Defensive.ScoreRanking;
     }
     else if (F0Ratios.BetaFiveYears <= table.Mif0Parameters.Conservative.FiveYearBeta)
     {
         f0Score.FiveYearBeta = table.Mif0Parameters.Conservative.ScoreRanking;
     }
     else if (F0Ratios.BetaFiveYears <= table.Mif0Parameters.Balance.FiveYearBeta)
     {
         f0Score.FiveYearBeta = table.Mif0Parameters.Balance.ScoreRanking;
     }
     else if (F0Ratios.BetaFiveYears <= table.Mif0Parameters.Assertive.FiveYearBeta)
     {
         f0Score.FiveYearBeta = table.Mif0Parameters.Assertive.ScoreRanking;
     }
     else
     {
         f0Score.FiveYearBeta = table.Mif0Parameters.Aggressive.ScoreRanking;
     }
 }
Ejemplo n.º 7
0
        private void SetCurrentFundsizeScore_MI(ManagedInvestmentSuitabilityParameters table, MICurrentParameter f0Score)
        {
            var fundSize = F0Ratios.FundSize;

            if (fundSize.HasValue)
            {
                if (fundSize.Value >= table.Mif0Parameters.Defensive.FundSize)
                {
                    f0Score.FundSize = table.Mif0Parameters.Defensive.ScoreRanking;
                }
                else if (fundSize.Value >= table.Mif0Parameters.Conservative.FundSize)
                {
                    f0Score.FundSize = table.Mif0Parameters.Conservative.ScoreRanking;
                }
                else if (fundSize.Value >= table.Mif0Parameters.Balance.FundSize)
                {
                    f0Score.FundSize = table.Mif0Parameters.Balance.ScoreRanking;
                }
                else if (fundSize.Value >= table.Mif0Parameters.Assertive.FundSize)
                {
                    f0Score.FundSize = table.Mif0Parameters.Assertive.ScoreRanking;
                }
                else
                {
                    f0Score.FundSize = table.Mif0Parameters.Aggressive.ScoreRanking;
                }
            }
            else
            {
                throw new Exception("Fund Size is not populated for current asset, which is of type managed fund");
            }
        }