@railpath/finance-toolkit
Version:
Production-ready finance library for portfolio construction, risk analytics, quantitative metrics, and ML-based regime detection
35 lines (34 loc) • 1.14 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PortfolioOptimizationOptionsSchema = void 0;
const zod_1 = require("zod");
exports.PortfolioOptimizationOptionsSchema = zod_1.z.object({
/**
* Array of expected returns for each asset
*/
expectedReturns: zod_1.z.array(zod_1.z.number()).min(2),
/**
* Covariance matrix (n x n) for the assets
*/
covarianceMatrix: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1),
/**
* Risk-free rate (optional, required for Sharpe ratio optimization)
*/
riskFreeRate: zod_1.z.number().optional(),
/**
* Target return (optional, required for target return optimization)
*/
targetReturn: zod_1.z.number().optional(),
/**
* Minimum weight per asset (optional, defaults to 0)
*/
minWeight: zod_1.z.number().min(0).default(0),
/**
* Maximum weight per asset (optional, defaults to 1)
*/
maxWeight: zod_1.z.number().max(1).default(1),
/**
* Whether weights should sum to 1 (portfolio constraint)
*/
sumTo1: zod_1.z.boolean().default(true),
});