Class FinanceUtils
java.lang.Object
org.ojalgo.data.domain.finance.FinanceUtils
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doublecalculateValueAtRisk(double expRet, double stdDev, double confidence, double time) private static <K extends Comparable<? super K>>
voidcopyValues(CalendarDateSeries<BigDecimal> series, CalendarDate firstKey, double[] values) static GeometricBrownianMotionestimateExcessDiffusionProcess(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries, CalendarDateUnit timeUnit) static CalendarDateSeries<RandomNumber> forecast(CalendarDateSeries<? extends Comparable<?>> series, int pointCount, CalendarDateUnit timeUnit, boolean includeOriginalSeries) static CalendarDateSeries<BigDecimal> makeCalendarPriceSeries(double[] prices, Calendar startCalendar, CalendarDateUnit resolution) static <V extends Comparable<V>>
MatrixR064makeCovarianceMatrix(Collection<CalendarDateSeries<V>> timeSeriesCollection) static <N extends Comparable<N>>
MatrixR064makeCovarianceMatrix(List<CalendarDateSeries<N>> listOfTimeSeries, boolean mayBeMissingValues) static CalendarDateSeries<BigDecimal> makeDatePriceSeries(double[] prices, Date startDate, CalendarDateUnit resolution) static SampleSetmakeExcessGrowthRateSampleSet(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries) static CalendarDateSeries<Double> makeNormalisedExcessPrice(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries) static doubletoAnnualReturnFromGrowthFactor(double growthFactor, CalendarDateUnit growthFactorUnit) GrowthRate = ln(GrowthFactor)static doubletoAnnualReturnFromGrowthRate(double growthRate, CalendarDateUnit growthRateUnit) AnnualReturn = exp(GrowthRate * GrowthRateUnitsPerYear) - 1.0static MatrixR064toCorrelations(Access2D<?> covariances) static MatrixR064toCorrelations(Access2D<?> covariances, boolean clean) Will extract the correlation coefficients from the input covariance matrix.static MatrixR064toCovariances(Access1D<?> volatilities, Access2D<?> correlations) Vill constract a covariance matrix from the standard deviations (volatilities) and correlation coefficient,static doubletoGrowthFactorFromAnnualReturn(double annualReturn, CalendarDateUnit growthFactorUnit) GrowthFactor = exp(GrowthRate)static doubletoGrowthRateFromAnnualReturn(double annualReturn, CalendarDateUnit growthRateUnit) GrowthRate = ln(1.0 + InterestRate) / GrowthRateUnitsPerYearstatic MatrixR064toVolatilities(Access2D<?> covariances) static MatrixR064toVolatilities(Access2D<?> covariances, boolean clean) Will extract the standard deviations (volatilities) from the input covariance matrix.
-
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 seriesmayBeMissingValues- 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 pricesriskFreeInterestRateSeries- 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 pricesriskFreeInterestRateSeries- 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
-
toCorrelations
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
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
-
toVolatilities
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)
-