Package org.ojalgo.data.domain.finance
Class FinanceUtils
- java.lang.Object
-
- org.ojalgo.data.domain.finance.FinanceUtils
-
public abstract class FinanceUtils extends java.lang.Object
-
-
Constructor Summary
Constructors Modifier Constructor Description private
FinanceUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double
calculateValueAtRisk(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 GeometricBrownianMotion
estimateExcessDiffusionProcess(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 SampleSet
makeExcessGrowthRateSampleSet(CalendarDateSeries<?> priceSeries, CalendarDateSeries<?> riskFreeInterestRateSeries)
static CalendarDateSeries<java.lang.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.
-
-
-
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)
-
-