Package org.ojalgo.data.domain.finance
Class FinanceUtils
java.lang.Object
org.ojalgo.data.domain.finance.FinanceUtils
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic double
calculateValueAtRisk
(double expRet, double stdDev, double confidence, double time) private static <K extends Comparable<? super K>>
voidcopyValues
(CalendarDateSeries<BigDecimal> series, CalendarDate firstKey, double[] values) static GeometricBrownianMotion
estimateExcessDiffusionProcess
(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 SampleSet
makeExcessGrowthRateSampleSet
(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries) static CalendarDateSeries
<Double> makeNormalisedExcessPrice
(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries) static double
toAnnualReturnFromGrowthFactor
(double growthFactor, CalendarDateUnit growthFactorUnit) GrowthRate = ln(GrowthFactor)static double
toAnnualReturnFromGrowthRate
(double growthRate, CalendarDateUnit growthRateUnit) AnnualReturn = exp(GrowthRate * GrowthRateUnitsPerYear) - 1.0static MatrixR064
toCorrelations
(Access2D<?> covariances) static MatrixR064
toCorrelations
(Access2D<?> covariances, boolean clean) Will extract the correlation coefficients from the input covariance matrix.static MatrixR064
toCovariances
(Access1D<?> volatilities, Access2D<?> correlations) Vill constract a covariance matrix from the standard deviations (volatilities) and correlation coefficient,static double
toGrowthFactorFromAnnualReturn
(double annualReturn, CalendarDateUnit growthFactorUnit) GrowthFactor = exp(GrowthRate)static double
toGrowthRateFromAnnualReturn
(double annualReturn, CalendarDateUnit growthRateUnit) GrowthRate = ln(1.0 + InterestRate) / GrowthRateUnitsPerYearstatic MatrixR064
toVolatilities
(Access2D<?> covariances) static MatrixR064
toVolatilities
(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)
-