UNPKG

@railpath/finance-toolkit

Version:

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

22 lines (21 loc) 998 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateMonteCarloVaR = calculateMonteCarloVaR; const calculateHistoricalVaR_1 = require("./calculateHistoricalVaR"); /** * Monte Carlo VaR - Simulates future returns */ function calculateMonteCarloVaR(returns, confidenceLevel, simulations) { const mean = returns.reduce((sum, val) => sum + val, 0) / returns.length; const variance = returns.reduce((sum, val) => sum + Math.pow(val - mean, 2), 0) / (returns.length - 1); const stdDev = Math.sqrt(variance); // Generate simulated returns using Box-Muller transform const simulatedReturns = []; for (let i = 0; i < simulations; i++) { const u1 = Math.random(); const u2 = Math.random(); const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2); simulatedReturns.push(mean + z * stdDev); } return (0, calculateHistoricalVaR_1.calculateHistoricalVaR)(simulatedReturns, confidenceLevel); }