@railpath/finance-toolkit
Version:
Production-ready finance library for portfolio construction, risk analytics, quantitative metrics, and ML-based regime detection
32 lines (31 loc) • 1.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PortfolioMetricsOptionsSchema = void 0;
const zod_1 = require("zod");
exports.PortfolioMetricsOptionsSchema = zod_1.z.object({
/**
* Portfolio values over time (e.g., [100000, 105000, 108000, 102000])
*/
portfolioValues: zod_1.z.array(zod_1.z.number().positive()).min(2),
/**
* Optional: Dates corresponding to each portfolio value
*/
dates: zod_1.z.array(zod_1.z.date()).optional(),
/**
* Optional: Cash flows (contributions/withdrawals) at each period
* Positive for contributions, negative for withdrawals
*/
cashFlows: zod_1.z.array(zod_1.z.number()).optional(),
/**
* Risk-free rate for risk-adjusted metrics
*/
riskFreeRate: zod_1.z.number().default(0.02),
/**
* Annualization factor (e.g., 252 for daily, 12 for monthly, 1 for annual)
*/
annualizationFactor: zod_1.z.number().positive().default(252),
/**
* Confidence level for Value at Risk calculations (e.g., 0.05 for 5%)
*/
confidenceLevel: zod_1.z.number().min(0).max(1).default(0.05),
});