UNPKG

@railpath/finance-toolkit

Version:

Production-ready finance library for portfolio construction, risk analytics, quantitative metrics, and ML-based regime detection

37 lines (36 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PerformanceAttributionOptionsSchema = void 0; const zod_1 = require("zod"); exports.PerformanceAttributionOptionsSchema = zod_1.z.object({ /** * Portfolio returns for each period */ portfolioReturns: zod_1.z.array(zod_1.z.number()).min(1), /** * Benchmark returns for each period */ benchmarkReturns: zod_1.z.array(zod_1.z.number()).min(1), /** * Asset returns for each asset and period (asset x period matrix) */ assetReturns: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1), /** * Portfolio weights for each asset and period (asset x period matrix) */ portfolioWeights: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1), /** * Benchmark weights for each asset and period (asset x period matrix) */ benchmarkWeights: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1), /** * Attribution method * - 'brinson': Brinson attribution model * - 'arithmetic': Arithmetic attribution */ method: zod_1.z.enum(['brinson', 'arithmetic']).default('brinson'), /** * Annualization factor (e.g., 252 for daily, 12 for monthly, 1 for annual) */ annualizationFactor: zod_1.z.number().positive().default(252), });