# NDK_PORTFOLIO_COVARIANCE

 int __stdcall NDK_PORTFOLIO_COVARIANCE ( double * weights1, double * weights2, size_t nAssets, double ** covar, double * retVal )

Calculates the covariance between two portfolios.

Returns
status code of the operation
Return values
 NDK_SUCCESS Operation successful NDK_FAILED Operation unsuccessful. See Macros for full list.
Remarks
1. For uncorrelated assets, the covariance matrix is zero for all off-diagnonal elements. In this case, the covariance matrix (V) can be passed as an array of only variances (a one dimensional array).
2. The weights array size must equal to the number of risky assets.
3. The assets order in must be identical in the covariance and assets weights arrays.
4. By definition, the covariance matrix is a square symmetric matrix with order equals to number of assets in the portfolio.
5. The number of unique elements in the covariance matrix is equal to: $\frac{N \times (N+1)}{2}$ Where: $$N$$ is the number of risky assets in the portfolio.
Requirements