Class FinanceUtils

java.lang.Object
org.ojalgo.data.domain.finance.FinanceUtils

public abstract class FinanceUtils extends Object
  • Constructor Details

    • FinanceUtils

      private FinanceUtils()
  • Method Details

    • calculateValueAtRisk

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

      public static GeometricBrownianMotion estimateExcessDiffusionProcess(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries, CalendarDateUnit timeUnit)
    • forecast

      public static CalendarDateSeries<RandomNumber> forecast(CalendarDateSeries<? extends Comparable<?>> series, int pointCount, CalendarDateUnit timeUnit, boolean includeOriginalSeries)
    • makeCalendarPriceSeries

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

      public static <V extends Comparable<V>> MatrixR064 makeCovarianceMatrix(Collection<CalendarDateSeries<V>> timeSeriesCollection)
      Returns:
      Annualised covariances
    • makeCovarianceMatrix

      public static <N extends Comparable<N>> MatrixR064 makeCovarianceMatrix(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<BigDecimal> makeDatePriceSeries(double[] prices, 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<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)
    • 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)
    • 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 Comparable<? super K>> void copyValues(CalendarDateSeries<BigDecimal> series, CalendarDate firstKey, double[] values)