
ApaLibNET
Advanced Portfolio Analytics Library .NET
Version 2.10.0 (April 26, 2023)
Implementation of additional functionality (total of 28 new functions)...
- Conditional Correlation Analysis (16 new functions): apaCorrels.Conditional.Mean.Joint, apaCorrels.Conditional.Sigma.Joint, apaCorrels.Conditional.Mean, apaCorrels.Conditional.Sigma, apaCorrels.Conditional.Mean.Joint.Lower, apaCorrels.Conditional.Sigma.Joint.Lower, apaCorrels.Conditional.Mean.Lower, apaCorrels.Conditional.Sigma.Lower, apaCorrels.Conditional.Box, apaCorrels.Conditional.Box.Joint, apaCorrels.Conditional.Box.In, apaCorrels.Conditional.Box.In.Joint, apaCorrels.Conditional.Box.Out, apaCorrels.Conditional.Box.Out.Joint, apaCorrels.Conditional.Quantile, apaCorrels.Conditional.Quantile.Lower, apaCorrels.Conditional.Quantile.Joint, apaCorrels.Conditional.Quantile.Joint.Lower
- Gerber Statistic (2 new functions): apaCorrel.Gerber, apaCorrel.Gerber.Modified, apaCorrels.Gerber.Modified, apaCorrels.Gerber.Table, apaCorrels.Gerber, apaCorrels.Gerber.Altered, apaCorrel.Gerber.Altered
- Concentration Measurement (2 new functions): apaHerfindahlIndex, apaHerfindahlIndex.Normalized
- Mathematical Functions (4 new functions): apaLogisticFunction, apaLogisticFunction.Inverse, apaLogisticFunction.FirstDerivative, apaLogisticFunction.FirstAntiderivative
- Risk Visualisation (2 new functions): apaCone.Polynomial, apaCone.Linear
- Linear Algebra (2 new functions): apaMatrix.Scalar.Mult.OffMajDiag, apaMatrix.Scalar.Mult.MajDiag
- Machine Learning, Artificial Intelligence, Data Sciences Methods (1 new function): apaHPFilter.Boosted
Changes and enhancements...
- Renamed apaCorrels.Partial.Quantile and apaCorrels.ArithmeticMean to apaCorrels.Conditional.Quantile and apaCorrels.Conditional.Mean.
- Renamed Gerber functions such that they can be integreated with the functions groups apaCorrel.<xyz> and apaCorrels.<xyz>. Affected functions are apaGerberStatistic, apaGerberStatistic.Modified, apaGerberStatistic.Matrix and apaGerberStatistic.
- Conditional correlation functions have slightly modified methodology: now based on percentage ranks, not estimated empirical cdf anymore. Minor impact on calculation results.
- Start of implementation of help texts in the Excel function editor: short description of function and variables will be made available for more functions with this and every future release.
- Start of implementation of a new online-based help system, which is supposed to replace the PDF manual at one point.
- Various minor enhancements and fixes.
Version 2.9 (December 21, 2022)
Implementation of additional functionality (total of 70 new functions)...
- Correlation Analysis (5 new functions): apaCorrels.Group.Select, apaCorrels.NonGroup.Select, apaCorrels.Add.LinComb, apaCorrels.MSD, apaCorrels.Kendall
- Gerber Statistic (4 new functions): apaGerber.Statistic, apaGerber.Statistic.Modified, apaGerber.Table, apaGerber.Matrix
- Regression Analysis: (7 new functions): apaCorrels.MultipleCorrels, apaOLS.Residuals, apaOLS.Fitted, apaOLS.Parameter.tValue, apaOLS.Parameter.StandardError, apaOLS.Parameter.pValue, apaOLS.Parameter.CriticalValue
- Singular Spectral Analysis (5 new functions): apaSSA.Components.Forecast, apaSSA.Signal.Forecast, apaSSA.Spectrum.Percent.Cum, apaSSA.Spectrum.Percent,apaSSA.wCorrels
- Linear Algebra functionality (49 new functions):
- apaMatrix.Center.Double, apaMatrix.Center.Rows, apaMatrix.Center.Cols, apaMatrix.Standard.Rows, apaMatrix.Standard.Cols, apaMatrix.Normal.Rows, apaMatrix.Normal.Cols
- apaMatrix.Diagonal.Minor.Put, apaMatrix.Diagonal.Minor.Get, apaMatrix.Diagonal.Major.Nth.Get, apaMatrix.Diagonal.Minor.Nth.Get, apaMatrix.Flip.Cols, apaMatrix.Flip.Rows, apaMatrix.Concatenate.Cols, apaMatrix.Concatenate.Rows, apaMatrix.Diagonal.Major.Get, apaMatrix.Diagonal.Major.Put, apaMatrix.Shift.Pad, apaMatrix.Shift.Circular, apaMatrix.Repeat.Cols, apaMatrix.Repeat.Rows
- apaMatrix.Averages.Diagonal.Major, apaMatrix.Averages.Diagonal.Minor, apaMatrix.Averages.Cols, apaMatrix.Averages.Rows
- apaMatrix.Sort.Rows.ByVector.Des, apaMatrix.Sort.Rows.ByVector.Asc, apaMatrix.Sort.Rows.ByFirstColumn.Asc, apaMatrix.Sort.Rows.ByFirstColumn.Des
- apaMatrix.Toeplitz, apaMatrix.Hankel, apaMatrix.Lagged, apaMatrix.Lagged.Pad
- apaMatrix.SVD.V, apaMatrix.SVD.U, apaMatrix.SVD.S, apaMatrix.LU.P, apaMatrix.LU.U, apaMatrix.LU.L, apaMatrix.QR.R, apaMatrix.QR.Q
- apaMatrix.Vec, apaMatrix.Vech, apaMatrix.Vecl
- apaMatrix.Kron
- apaMatrix.Trace, apaMatrix.Minors, apaMatrix.Cofactors, apaMatrix.Adjugate
Changes and enhancements...
- Singular Spectral Analysis: all relevant functions now able to perform multivariate SSA (previously only univariate)
- apaOLS.Parameter.Evaluation: Standard Error, t-Value, Critical Value, P-Value
- apaSSA.Spectrum: shows Eigenvalues now (previously Singular values)
- Renaming of apaMatrix.PseudoInverse to apaMatrix.Inverse.Pseudo
- Retired apaMatrix.Standardize (now available as apaMatrix.Standard.Cols/Rows)
- All apaOLS functions can now handle more than one Y variable
- Several minor bugfixes and performance enhancements
Version 2.8 (February 14, 2022)
Implementation of additional functionality (31 new functions)
- apaCorrels.SortedBy.LoadingsPC.Order, apaCorrels.SortedBy.LoadingsPC
- apaCorrels.Blocks, apaCorrels.LeadLag apaCorrels.Drop, apaCorrels.Swap, apaCorrels.Randomise
- apaCorrels.Mins, apaCorrels.Maxs, apaCorrels.Dispersions, apaCorrels.Averages, apaCorrels.SortedBy.Dispersions, apaCorrels.SortedBy.Averages
- apaShortfallProb.ConfidenceIntervals
- apaEigenvalues.Sorted.Percent, apaEigenvalues.Sorted.Percent.Cumulative
- apaDistances.Correl, apaDistances.Euclidian, apaDistances.Chebyshev, apaDistances.Manhattan
- apaClustering.Hierarchical.CompleteLinkage, apaClustering.Hierarchical.SingleLinkage, apaClustering.Hierarchical.AverageLinkage
- apaClustering.Hierarchical.WaterfallAllocation
- apaClustering.Hierarchical.Dendrogram, apaClustering.Hierarchical.Dendrogram.UnitHeight
- apaClustering.Hierarchical.CophenticMatrix, apaClustering.Hierarchical.ClusterResultAsMatrix, apaClustering.Hierarchical.ClusterCompositions.Matrix, apaClustering.Hierarchical.ClusterCompositions, apaClustering.Hierarchical.Cophenetic... ...CorrelationCoefficient, apaClustering.Hierarchical.SortCorrsOrDists
Changes...
- renamed function apaKMeans to apaClustering.kMeans
- renamed function to apaShortfall.Historical to apaShortfallProb.Historical
- renamed function to apaLongfall.Historical to apaLongfallProb.Historical
Version 2.7 (June 14, 2021)
New and updated functionality...
- new functions apaRating.EndingAllocation, apaRating.TransitionMatrix.Compound
- new functions apaEigenvalues.Sorted, apaEigenvectors.Sorted
- new functions apaDistanceVolatilities, apaDistanceVariances, apaDistanceCorrels, apaDistanceCovars, apaDistanceCorrelation, apaDistanceVariance, apaDistanceCovariance, apaDistanceMatrix
- new functions apaCopula.Empirical.Resample, apaCopula.Empirical.Pdf.Multivariate
Enhancements and changes...
- apaCopula.Empirical.Pdf and apaQuantileTable (changed output layout, performance enhancements)
- Various minor optimizations
Version 2.6 (December 17, 2019)
New and updated functionality...
- new function apaCVaR.Modified(Returns, ConfidenceLevel): Modified CVar based on a return time series.
- apaMarketData.Yahoo(): retired due to changes on the side of the data provider.
Enhancements and changes...
- Compatible with .NET framework versions up to 4.6
- Updates relating to the integration of the function library with Excel
- Various minor optimizations
Version 2.5 (December 8, 2014)
Implementation of additional functionality (23 new functions)...
- apaTradeProfile.ConditionalDrawdown(), apaTradeProfile.Drawdown(), apaTradeProfile.CVaR(), apaTradeProfile.VaR(): trade profiles for various loss-based risk measures.
- apaCorrels.Partial.Quantile(), apaCorrels.Partial.ArithmeticMean(): calculating conditional correlation matrices.
- apaMean.ConfidenceInternvals(), apaVolatility.ConfidenceIntervals(), apaSkewness.ConfidenceIntervals(), apaKurtosis.ConfidenceIntervals(), apaCorrelation.ConfidenceIntervals(): non-parametric confidence intervals for various risk characteristics based on a resampling/bootstrapping approach.
- apaCLA.Resample(): resampling efficient frontier portfolios illustrates the stochasic nature of the efficient frontier.
- apaCauchyInv(), apaCauchyPdf(), apaCauchyCdf(), apaCauchyRnd(), apaCauchySim(): our implementation of the location/scale Cauchy distribution, a distribution with infinite first and second moments.
- apaUlcerIndex(), apaUlcerPerformanceIndex(): yet another risk measure and risk-asjusted performance measure.
- apaAbsorptionRatio(): a PCA-based methodology to measure degree of diversification in an asset universe.
- apaTurbulence(), apaCorrelationSurprise(), apaMagnitudeSurprise(): a turbulence indicator for an asset universe, including a decomposition of contributions from innovations in volatilities and correlations.
Enhancements and changes...
- apaWealthSimulation(): various enhancements to the wealth simulator, noteably the possibility to model time-varying strategy returns and volatilities.
- apaCVaR.Historical(), apaCDaR.Historical(): introduction of a smoothing parameter. Also affects trade profile and other functions.
- Bugfix affecting apaTrnd() and apaTsim().
- Adjusted percentile calculations in order to handle degenerative inputs. Various functions are affected.
Version 2.4 (December 11, 2013)
Implementation of additional functionality (5 new functions)...
- apaNIGarg.randomized(), apaNIGsim.randomized(): generate randomized NIG arguments, simulate fom a randomized NIG distribution
- apaBL.PosteriorReturns.Confidence(), apaBL.ImpliedWeights: Black/Litterman posterior returns with explicit view-specific confidence levels. Black/Litterman "implied weights" analogeous to "implied returns".
- apaSystem.Deactivate.ComputerName(): deactivate a computer from another computer
- apaSystem.ComputerName(): name of current computer
- apaSystem.ComputerName.All(): name of all computers of current license
- apaMatrix.Inverse(), apaMatrix.PseudoInverse(): inverse and pseudo-inverse of a matrix
- apaMatrix.Ones(), apaMatrix.Zeros(): generate matrix of ones and zeros.
Enhancements and changes...
- Introduction of computer names in order to simplify activation of new computers replacing existing ones. IMPORTANT: users will be prompted for a computer name when starting this version of the add-in on already activated computers the first time.
- All code-related files are now digitally signed. Being a "Trusted Publisher" will contribute to a better installation experience.
- Calculation of pseudo-inverse in all internal functions, addressing issues related to singular and near-singular matrices.
- Bugfix apaCorrels.Shrink: "average" target did not work properly.
- apaBL.<...>: name changes affecting various Black/Litterman functions, various BL functions now accept tau values as arguments.
- Bugfix apaCorrel.Average: now accepts a correlation matrix as an input, not a return matrix anymore.
- Bugfix apaWeights.Combinatorial.TwoAssets: missing results on last row under certain cirumstances.
- Bugfix affecting apaNelsonSiegel.PV and apaNelsonSiegelSvensson.PV
- Various low-level adjustments affecting calculation speed and robustness of calculations.
Version 2.3 (September 13, 2013)
Implementation of additional functionality (31 new functions)...
- apaNelsonSiegel.ConstantTau.Estimate(): estimation of the Diebold/Li version of the Nelson/Siegel yield curve model
- apaNelsonSiegel.ForwardRate(), apaNelsonSiegel.PV(), apaNelsonSiegel.Yield(), apaNelsonSiegel.Estimate(): construction, estimation and valuation functions related to the Nelson/Siegel yield curve model.
- apaNelsonSiegelSvensson.ForwardRate(), apaNelsonSiegelSvensson.PV(), apaNelsonSiegelSvensson.Yield(), apaNelsonSiegelSvensson.Estimate(): construction, estimation and valuation functions related to the Nelson/Siegel/Svensson yield curve model.
- apaWeights.MVE.Unrestricted.ReturnTarget(), apaWeights.MVE.Restricted.VolaTarget(): portfolio composition of points on the restricted and unrestricted efficient mean-variance frontiers
- apaMVE.Unrestricted.Risk.FromReturn(), apaMVE.Unrestricted.Return.FromRisk(): calculation of points on the unrestricted mean-variance efficient frontier
- apaWeights.MVE.Restricted.MSR(), apaWeights.MVE.Restricted.MSR(): weights of the restricted and unrestricted maxiimum Sharpe Ratio portfolio
- apaMVE.Unrestricted.Coefficients(), apaMVE.Unrestricted.Hyperbola.Center(), apaMVE.Unrestricted.Hyperbola.AsymptoteSlope(): shape parameters of the unrestricted efficient mean-variance frontier
- apaNinv(): inverse normal distribution
- apaUsim.correlated(): Simulate correlated uniform distributions
- apaNIGsim.correlated(): Simulate correlated NIG distributions
- apaCFsim.correlated(): Simulate correlated Cornish-Fisher distributions
- apaCorrels.SpearmanToPearson(), apaCorrels.PearsonToSpearman(): conversions for multivariate normal distributions
- apaMatrix.Cholesky(): Cholesky decomposition
- apaSharpeRatio.Contributions.FromCovarsExpRets(): Calculate contributions to portfolio Sharpe Ratio from expected returns and covariances
- apaNormalMixture.sim.correlation(): simulate correlated two-component Normal Mixture distributions
- apaNormalMixture.match: Determine two-component Normal Mixture parameters such that the resulting distributions exhibits desired first four moments
- apaIsValidNIG(): test whether skewness/kurtosis inputs are within feasible range
- apaCFmom(): moments of the Cornish-Fisher expansion
- apaCFcal(): calibrate parameters of Cornish-Fisher expension to replicate desired moments
- apaCVaR.Modified.Moments(): Calculate Modified CVaR from the first four moments
- apaWLS(): helper function to perform weighted least squares regressions
- apaManual.Update(): Download of latest PDF manual
Enhancements and changes...
- apaHistogram(): histogram methodology slightly altered, such that histogram is centered on bin centers
- apaStatFactorModel...(): Optional flag to force unit component variances
- apaUPM, apaLPM: enhanced calculation methodology
- apaReplicateRiskReturn(), apaNIGrnd(): minor bug fixes
- apaShrinkageEstimator.Returns.JamesStein(): accepts a manual shrinkage factor
- apaFixedIncome... functions: have been renamed to apaNelsonSiegel... or apaNelsonSiegelSvensson
- apaMVE.Restricted.MRP.RT(): renamed function for consistency reasons
- Further alignment of accuracy/performance characteristics between functions, additional functions affected by apaSpeed.Set()
- PDF manual is now part of the installation package; the latest version is downloaded automatically when updating the add-in automatically.
Version 2.2 (March 25, 2013)
Implementation of additional functionality (8 new functions)...
- apaCLA(): Critical Line Algorithm (original Markowitz procedure to determine the exact efficient frontier)
- apaMRP.RT(): risk tolerance of the restricted maximum return portfolio
- apaWeights.MSR(): Weights of the maximum Sharpe Ratio portfolio
- apaCorrels.Random(), apaCorrels.Const(): generate correlation matrices with random and constant values
- apaMatrix.Standardize(): Standardize a time series matrix
- apaSystem.Deactivate(): Transfer your license from an old computer to a new one
- apaLicense.UserID(): for users not remembering their user id (because they have too many already)
Enhancements and changes...
- Various enhancements related to license management, update and similar operational functionality
- Enhanced algorithms for calculating correlation matrices from inputs/data, rank correlations
- Further alignment of accuracy/performance characteristics between functions, additional functions affected by apaSpeed.Set()
Version 2.1 (January 30, 2013)
Implementation of additional functionality (19 new functions)...
- apaMVE(): direct calculation of mean, volatility and composition of portfolios on th mean-variance frontier
- apaWeights.Combinatorial.TwoAssets(), apaWeights.Combinatorial.EqualWeighted(): helper functions for combinatorical portfolio construction
- apaTimePoints.FromDates(), apaTimePoints.Rounded(): helper functions to handle conversion of actual dates to time points / time periods for analytical purposes
- apaReturn.IRR.All(): calculation of all real and imaginary solutions for the internal rate of return problem
- apaMarketData.Yahoo(): retrieve price/return data from Yahoo Finance
- apaGainLossSpread(), apaGiniMeanDifference(): alternative risk measures
- apaCovar.Semi(), apaCovars.Semi(), apaCoLPMs.Asymmetrical.Symmetrized(), apaCoUPMs.Asymmetrical.Symmetrized(): additional partial moment functions
- apaConditionalSerialCorrelation(), apaBenfordLaw(), apaBiasRatio(): fraud indicators
- apaActiveShare(): an exposure-based tracking measure
- apaNormalMixture.StateProbabilities(), apaNormalMixture.States(): additional normal mixture distribution functionality
Enhancements and changes...
- Fixed a bug affecting the existing asymmetrical LPM/UPM
- In return calculation formulas, the argument "CFWeights" has been renamed "CFTime"
- Additional functions are now covered by the speed mode settings, further fine tuning of the speed modes
- Selected low-level performance enhancements
Version 2.0 (October 11, 2012)
Implementation of additional functionality (9 new functions)...
- apaCaptureRation.Downside.Continuous(), apaCaptureRation.Downside.Discrete(), apaCaptureRation.Upside.Discrete(), apaCaptureRation.Upside.Continuous() - various capture ratios
- apaLicense.ExpiryDate(), apaLicense.Puchased(), apaLicense.InUse() - software license helper functions
- apaMatrix.Rank(), apaMatrix.ConditionNumber() - matrix / linear algebra functionality
Enhancements and changes...
- Fixed a bug in the installation process which affected automatic updating in certain system environments. IMPORTANT: the fix works on new installations only; existing installations should be 1) uninstalled and 2) all files and folders deleted manually; release 2.0 can then be downloaded and installed.
- Redesign of the installation wizard such that the same setup file can be used for Excel 32-bit and 64-bit.
- Introduction of a subscription-based licensing system: New users now purchase the add-in on a one year subscription basis. IMPORTANT: existing users can continue using the add-in and are eligible for all future updates at no additional costs.
Version 1.7 (September 30, 2012)
Implementation of additional functionality (9 new functions)...
- apaBL.PosteriorReturns(), apaBL.PosteriorReturns.FullConf(), apaBL.ImpliedConfidence(), apaBL.ImpliedReturns(), apaBL.ImpliedWeights() - Blacl/Litterman portfolio construction
- apaVolatility.ExPost.Contributions(), apaTrackingError.ExPost.Contributions(), apaBeta.ExPost.Contributions() - ex post contributions to various portfolio risk measures
- apaEntropy.Shannon() - an alternative dispersion measure
Enhancements and changes...
- Fixed some compatibility issues of version 1.6 with older Excel versions.
Version 1.6 (September 17, 2012)
Implementation of additional functionality (23 new functions)...
- apaSSA.Signal(), apaSSA.Signal.Redrawn(), apaSSA.Components(), apaSSA.Spectrum() - several methods to conduct singular spectral analysis
- apaPriceSim.GBM(), apaPriceSim.GARCH11(), apaPriceSim.MN(), apaPriceSim.ARMA22(), apaPriceSim.JDLN - simulation of univaruate price processes; geometric Brownian motion, GARCH(1,1), Mmxed normal, ARMA(2,2) and Jump-Diffusion with lognormally distributed jumps
- apaPcdf(), apaPpdf(), apaPinv(), apaPrnd(), apaPsim() - implementation of the Poisson distribution
- apaUsim() - simulation of the uniform distribution, much faster and better than Excel's internal RAND()
- apaLognormalToNormal.Correlation(), apaLognormalToNormal.Covariance(), apaLognormalToNormal.Volatility(), apaLognormalToNormal.Mean() and apaNormalToLognormal.Correlation(), apaNormalToLognormal.Covariance(), apaNormalToLognormal.Volatility(), apaNormalToLognormal.Mean() - conversion of the first two moments and dependence between the normal and corresponding lognormal distributions
Enhancements and changes...
- Various minor enhancements affecting all functions or selected function groups
Version 1.5 (May 29, 2012)
Implementation of additional functionality (13 new functions)...
- apaWeights.RB, apaWeights.RB.FromCovars: Determine composition of the risk budgeting portfolio (i.e. portfolio with risk contributions that correspond to a given risk budget)
- apaSpeed.Set and apaSpeed.Get: Management of calculation speed and calculation accuracy
- apaReturn.Contributions: contributions to portrfolio return from portfolio constitutents
- apaSharpeRatio.Contributions: contributions to Sharpe Ratio from portfolio constitutents
- apaSharpeRatio.FromConst: calculate portfolio Sharpe Ratio directly from constituent exces returns and constituent weights
- apaIsValidCF: validates skeweness and kurtosis values for Cornish-Fisher expansion
- apaKMeans: k-means clustering algorithm
- apaCorrels.Analyze: analysis of the validity of a correlation matrix
- apaCorrels.Fixed: Makes a correlation matrix semi-positive definite (Eigenvalue method)
- apaWeights.MD.FromCovars: Maximum Diversification portfolio from covariances
- apaWeights.EVC.FromCovars: Equal Risk Contributiuon (Risk Parity) portfolio from covariances
Enhancements and changes...
- Simplified startup procedure resulting in faster startup times
- Increased secruity, the add-in only connects to our domain www.andreasssteiner.net
- More robust determination of maximum diversification and risk partiy portfolios
- Implemented a workaround for a multi-threading issue in Excel
Version 1.4
Implementation of additional functionality (13 new functions)...
- apaWeights.MD: determines the Most Diversified portfolio.
- apaCorrels.Implied: correlation matrix based on implied correlation coefficient,
- apaCorrel.Implied: Implied correlation coefficient.
- apaCorrels.IsValid: checks whether a matrix is a valid correlation matrix
- apaWeights.EVC.Robust: determines the robust risk parity portfolio.
- apaHPFilter: Hodrick-Prescott filter.
- apaMACD: Moving Average Convergence Divergence indicator (technical analysis).
- apaTradeProfile: impact analysis of trades on selected return, risk and risk-adjusted performance measures.
- apaSharpe.Incremental: incremental asset contributions to portfolio Sharpe Ratio.
- apaVolatility.Incremental: incremental asset contributions to portfolio volatility.
- apaTSGetRow: extract a row from a matrix.
- apaTurnover: calculates tunrover based on changes in precentage allocations
- apaVolatility.ExAnte.Contributions.FromCovars: ex ante volatility contributions from asset exposures and a covariance matrix.
Enhancements and changes....
- New argument IsCorrelOtherwiseCovar: All functions related to statistical factor modeling (apaStatFactors...) can now either target the correlation or the covariance matrix.
- Changed versioning: new format is Major.Minor(.Build)
- Set user agent to operate the function library / Excel add-in in high security environments.
Version 1.3.4
Implementation of additional functionality (1 new function)...
- apaWeights.MVE.Liabilities.Restricted.RiskTolerance: constituent weights of a portfolio on the mean-variance-liability efficient frontier,
Enhancements and changes....
- Web-based activation/licensing system
- Various minor performance enhancements affecting many functions indirectly
Version 1.3.3
Implementation of additional functionality (7 new functions)...
- apaWeights.EVC: Weights of the fully invested long-only equal-volatility-contribution portfolio.
- apaActivePassiveRatio: a portfolio's active-passive ratio
- apaGARCH11.Volatility.Conditional.Forward: GARCH(1,1) forward volatility
- apaGARCH11.Volatility.Conditional.ExpectedForward: GARCH(1,1) expected forward volatility
- apaCorrel.Average: Average correlation coefficient from returns
- apaCorrel.Dispersion: Dispersion of orrelation coefficient from returns
- apaCorrels.Dispersion: Dispersion of orrelation coefficient from correlations
Enhancements and changes....
- Name changes in all GARCh(1,1) functions
- Changes in GARCH(1,1) methodology: unconditional volatility is now set to the sample volatility of the return time series (volatility targeting)
- Various minor performance enhancements affecting many functions indirectly
- Generalized licensing algorithm
Version 1.3.2
Implementation of additional functionality (7 new functions)...
- apaWealthSimulation: Stochastic wealth simulation that can be used for financial planning purposes or asset/liability management
- apaSkewness.Contributions: Contributions to portfolio skewness
- apaKurtosis.Contributions: Contributions to portfolio kurtosis
- apaCorrels.Contributions: Contributions to correlation
- apaCFinv, apaCFrnd, apaCFsim: a partial implementation of the distribution based on the Cornish-Fisher Expansion for simulation purposes
Enhancements and changes....
- Introduction of a setup file, making the activcation process more user friendly
- apaTSGet() returns a zero value if no numerical values are found in a range
Version 1.3.1
Implementation of additional functionality (3 new functions)...
- apaStrategy.CPPI: CPPI strategy simulation
- apaVersion.Current: Latest available version number
- apaUrnd: Fast generation of a high-quality uniform random number
Enhancements and changes....
- Automatic version check and download whenever a new release is available
- Fast and high-quality random number generation with the Multiply-With-Carry method
- Various numerically intense functions were given an optional DoSwitchOff parameter (e.g. apaVaR.GP)
- Various numerically intense functions are not calcualted anymore in the Excel function wizard
- Renamed apaVersion to apaVersion.Installed
- Various minor performance enhancements affecting several functions
Version 1.3.0
Implementation of additional functionality (28 new function in total)...
- Automatically resize array formulas such that all results are shown
- Several functions related to empirical loss analysis (e.g. mean excess loss)
- Exceedance correlations
- Empirical tail dependence
- Generalized Pareto distribution: cdf, pdf, inv, simulation, estimation
- EVT VaR estimate based on the Generalized Pareto distribution
- Symetrized Joe-Clayton copula: cdf, pdf, simualtion, estimation
- Empirical copulas: pdf, cdf
- Simulation of the independence copula
- Ichimoku chart
- Diversification ratio
- Random allocations with restrictions and bias
Enhancements and changes....
- Requires the .NET 4.0 framework
- Returns low-level error messages, not just #VALUE anymore
- Various performance enhancement
- Faster and more accurate numerical optimization algorithm (Nelder-Mead)
- Renamed apaSystemPerformance() to apaSystem.Performance()
Version 1.2.6
Implementation of additional functionality (38 new functions in total)...
- Expected maximum drawdown of a Geometric Brownian Motion
- Z-Score, Modified Z-Score
- Outlier identification with Z-Score and Modified Z-Score
- Mean Absolute Deviation from Mean, Mean Absolute Deviation from Median
- Normal Mixture Distributions (two components): Cdf, pdf, maximum likelihood estimation, inv cdf, simulation, theoretical first four moments from distribution arguments
- Shrinking a valid correlation matrix towards a target (perfect correlation, zero correlation, minimium correlation)
- Parametric Value-At-Risk from conditional and unconditional GARCH(1,1) volatilities
- Non-linear serial dependency: autocorrelations calculated with Spearman's rank correlation coefficient
- Linear Multiple Regression (OLS): parameters, R-squared, adjusted R-squared, t-test and p-values
- Upper and Lower returns relative to a threshold
- Chow test for structural breaks
- Conversion of price series into return time series
- Resampling from time series with the option to preserve serial dependencies
- Linear or Non-Linear Dual Alpha / Dual Beta Single-Index Model
- Logistic distribution: cdf, pdf, inv cdf, moments, arguments from moments
- Tail risk attribution of Modified Value-At-Risk
Enhancements...
- Various minor changes enhancing stability (Excel crashes due to memory overflows)
- Different, more mainstream, formula for Clayton copula
- Renamed BiNormal and BiClayton simulation functions
- Rolling style analysis: the first n weights are not zero anymore, but N/A
Version 1.2.5
Implementation of additional functionality...
- Population versions of the third and fourth moment: apaKurtosis.Population, apaSkewness.Population
- Inverse percentile function: apaPercemtile.Inverse
- Lower and upper bounds on the entries in a valid correlation matrix: apaCorrels.Bounds
Enhancements...
- Various performance and stability enhancements
- Adjusted definition of CVaR and CVaG not to include VaR/VaG
- Introducing the license file
- Deleted the VaG function because it is redundant
- Changed CVaR, CDaR functions to accept confidence rather than a threshold
- Changed Conditiona Sharpe Ratio, Rachev Ratio and Generalized Rachev Ratio functions to accept confidence level rather than a threshold
Version 1.2.4
Implementation of additional functionality...
- Historical Interim Value-At-Risk
- Contributions to Ex Ante Tracking Error when asset returns in portfolio and benchmark are identical or different.
- Loading external CSV files as time series
- Calculation of all rolling returns with one function call
- Portfolio kurtosis/skewness from returns or cokurtosis/coskewness matrix
- Money-Weighted Return (IRR) and Time-Weighted Return (Original Dietz, Modified Dietz)
Enhancements...
- Several functions return #N/A values, which simplifies making charts
- The XLA component is not needed anymore
Version 1.2.3
Implementation of additional functionality...
- High quality random number generation with the Mersenne Twister algorithm
- Function to create unbiased restricted random weight
- Drawdown-At-Risk/Conditional Drawdown-At-Risk functions
- System Performance Test function
Version 1.2.2
Implementation of additional functionality...
- Nelson/Siegel/Svensson yield curve modeling functions
- Biased and unbiased functions to generate random weights
- Calculation of the weights of the maximum return portfolio on the mean-variance efficient frontier with inequality constraints on the weights.
Enhancements
- Performance increase of all functions related to empirical percentiles.
- Fixed a bug in the functions simulating random distributions (Normal, Multivariate Normal, NIG, T etc.)
Version 1.2.1
Implementation of additional functionality...
- Student T distribution: cdf, pdf, inv
- Time aggregation of returns
- Consolidation of segment data for performance attribution purpose