- java.lang.Object
-
- org.ojalgo.data.domain.finance.FinanceUtils
-
public abstract class FinanceUtils extends java.lang.Object
-
-
Constructor Summary
Constructors Modifier Constructor Description privateFinanceUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static doublecalculateValueAtRisk(double expRet, double stdDev, double confidence, double time)private static <K extends java.lang.Comparable<? super K>>
voidcopyValues(CalendarDateSeries<java.math.BigDecimal> series, CalendarDate firstKey, double[] values)static GeometricBrownianMotionestimateExcessDiffusionProcess(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries, CalendarDateUnit timeUnit)static CalendarDateSeries<RandomNumber>forecast(CalendarDateSeries<? extends java.lang.Comparable<?>> series, int pointCount, CalendarDateUnit timeUnit, boolean includeOriginalSeries)static CalendarDateSeries<java.math.BigDecimal>makeCalendarPriceSeries(double[] prices, java.util.Calendar startCalendar, CalendarDateUnit resolution)static <V extends java.lang.Comparable<V>>
MatrixR064makeCovarianceMatrix(java.util.Collection<CalendarDateSeries<V>> timeSeriesCollection)static <N extends java.lang.Comparable<N>>
MatrixR064makeCovarianceMatrix(java.util.List<CalendarDateSeries<N>> listOfTimeSeries, boolean mayBeMissingValues)static CalendarDateSeries<java.math.BigDecimal>makeDatePriceSeries(double[] prices, java.util.Date startDate, CalendarDateUnit resolution)static SampleSetmakeExcessGrowthRateSampleSet(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries)static CalendarDateSeries<java.lang.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.
-
-
-
Method Detail
-
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 java.lang.Comparable<?>> series, int pointCount, CalendarDateUnit timeUnit, boolean includeOriginalSeries)
-
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 seriesmayBeMissingValues- 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 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<java.lang.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
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 java.lang.Comparable<? super K>> void copyValues(CalendarDateSeries<java.math.BigDecimal> series, CalendarDate firstKey, double[] values)
-
-