quantitivecalc
Version:
A TypeScript library providing advanced quantitative finance functions for risk analysis, performance metrics, and technical indicators. (Currently in development)
46 lines (45 loc) • 1.96 kB
TypeScript
/**
* Portfolio Analysis Utilities
*
* Functions:
* - calculateCorrelationMatrix: Calculates asset correlation analysis between multiple assets
* - calculatePortfolioReturns: Calculates weighted returns for multiple assets in a portfolio
* - calculateRebalancing: Calculates portfolio weight adjustments over time
* - calculateRiskContribution: Calculates each asset's contribution to total portfolio risk
*
* The functions work with portfolio data containing multiple assets and their weights/returns.
*/
export interface AssetReturn {
date: string;
[assetName: string]: number | string;
}
export interface PortfolioWeight {
[assetName: string]: number;
}
export interface CorrelationMatrix {
[asset1: string]: {
[asset2: string]: number;
};
}
export interface RebalancingResult {
date: string;
currentWeights: PortfolioWeight;
targetWeights: PortfolioWeight;
driftFromTarget: PortfolioWeight;
rebalanceRequired: boolean;
trades: {
[assetName: string]: number;
};
}
export interface RiskContribution {
[assetName: string]: {
volatility: number;
marginalRisk: number;
componentRisk: number;
contributionPercent: number;
};
}
export declare function calculateCorrelationMatrix(data: AssetReturn[], assetColumns: string[], windowSize?: number): CorrelationMatrix[];
export declare function calculatePortfolioReturns(data: AssetReturn[], weights: PortfolioWeight, returnColumns: string[], portfolioReturnColumn?: string): Array<Record<string, any>>;
export declare function calculateRebalancing(data: Array<Record<string, any>>, priceColumns: string[], targetWeights: PortfolioWeight, rebalanceThreshold?: number, portfolioValue?: number, dateColumn?: string): RebalancingResult[];
export declare function calculateRiskContribution(returns: AssetReturn[], weights: PortfolioWeight, returnColumns: string[], windowSize?: number): RiskContribution;