Class FinanceUtils


  • public abstract class FinanceUtils
    extends java.lang.Object
    • Constructor Detail

      • FinanceUtils

        private FinanceUtils()
    • Method Detail

      • calculateValueAtRisk

        public static double calculateValueAtRisk​(double expRet,
                                                  double stdDev,
                                                  double confidence,
                                                  double time)
      • makeCalendarPriceSeries

        public static CalendarDateSeries<java.math.BigDecimal> makeCalendarPriceSeries​(double[] prices,
                                                                                       java.util.Calendar startCalendar,
                                                                                       CalendarDateUnit resolution)
      • makeCovarianceMatrix

        public static <V extends java.lang.Comparable<V>> MatrixR064 makeCovarianceMatrix​(java.util.Collection<CalendarDateSeries<V>> timeSeriesCollection)
        Returns:
        Annualised covariances
      • makeCovarianceMatrix

        public static <N extends java.lang.Comparable<N>> MatrixR064 makeCovarianceMatrix​(java.util.List<CalendarDateSeries<N>> listOfTimeSeries,
                                                                                          boolean mayBeMissingValues)
        Parameters:
        listOfTimeSeries - An ordered collection of time series
        mayBeMissingValues - Individual series may be missing some values - try to fix this or not
        Returns:
        Annualised covariances
      • makeDatePriceSeries

        public static CalendarDateSeries<java.math.BigDecimal> makeDatePriceSeries​(double[] prices,
                                                                                   java.util.Date startDate,
                                                                                   CalendarDateUnit resolution)
      • makeExcessGrowthRateSampleSet

        public static SampleSet makeExcessGrowthRateSampleSet​(CalendarDateSeries<?> priceSeries,
                                                              CalendarDateSeries<?> riskFreeInterestRateSeries)
        Parameters:
        priceSeries - A series of prices
        riskFreeInterestRateSeries - A series of interest rates (risk free return expressed in %, 5.0 means 5.0% annualized risk free return)
        Returns:
        A sample set of price growth rates adjusted for risk free return
      • makeNormalisedExcessPrice

        public static CalendarDateSeries<java.lang.Double> makeNormalisedExcessPrice​(CalendarDateSeries<?> priceSeries,
                                                                                     CalendarDateSeries<?> riskFreeInterestRateSeries)
        Parameters:
        priceSeries - A series of prices
        riskFreeInterestRateSeries - A series of interest rates (risk free return expressed in %, 5.0 means 5.0% annualized risk free return)
        Returns:
        A sample set of price growth rates adjusted for risk free return
      • toAnnualReturnFromGrowthFactor

        public static double toAnnualReturnFromGrowthFactor​(double growthFactor,
                                                            CalendarDateUnit growthFactorUnit)
        GrowthRate = ln(GrowthFactor)
        Parameters:
        growthFactor - A growth factor per unit (day, week, month, year...)
        growthFactorUnit - A growth factor unit
        Returns:
        Annualised return (percentage per year)
      • toAnnualReturnFromGrowthRate

        public static double toAnnualReturnFromGrowthRate​(double growthRate,
                                                          CalendarDateUnit growthRateUnit)
        AnnualReturn = exp(GrowthRate * GrowthRateUnitsPerYear) - 1.0
        Parameters:
        growthRate - A growth rate per unit (day, week, month, year...)
        growthRateUnit - A growth rate unit
        Returns:
        Annualised return (percentage per year)
      • toCorrelations

        public static MatrixR064 toCorrelations​(Access2D<?> covariances,
                                                boolean clean)
        Will extract the correlation coefficients from the input covariance matrix. If "cleaning" is enabled small and negative eigenvalues of the covariance matrix will be replaced with a new minimal value.
      • toCovariances

        public static MatrixR064 toCovariances​(Access1D<?> volatilities,
                                               Access2D<?> correlations)
        Vill constract a covariance matrix from the standard deviations (volatilities) and correlation coefficient,
      • toGrowthFactorFromAnnualReturn

        public static double toGrowthFactorFromAnnualReturn​(double annualReturn,
                                                            CalendarDateUnit growthFactorUnit)
        GrowthFactor = exp(GrowthRate)
        Parameters:
        annualReturn - Annualised return (percentage per year)
        growthFactorUnit - A growth factor unit
        Returns:
        A growth factor per unit (day, week, month, year...)
      • toGrowthRateFromAnnualReturn

        public static double toGrowthRateFromAnnualReturn​(double annualReturn,
                                                          CalendarDateUnit growthRateUnit)
        GrowthRate = ln(1.0 + InterestRate) / GrowthRateUnitsPerYear
        Parameters:
        annualReturn - Annualised return (percentage per year)
        growthRateUnit - A growth rate unit
        Returns:
        A growth rate per unit (day, week, month, year...)
      • toVolatilities

        public static MatrixR064 toVolatilities​(Access2D<?> covariances,
                                                boolean clean)
        Will extract the standard deviations (volatilities) from the input covariance matrix. If "cleaning" is enabled small variances will be replaced with a new minimal value.
      • copyValues

        private static <K extends java.lang.Comparable<? super K>> void copyValues​(CalendarDateSeries<java.math.BigDecimal> series,
                                                                                   CalendarDate firstKey,
                                                                                   double[] values)