@railpath/finance-toolkit
Version:
Production-ready finance library for portfolio construction, risk analytics, quantitative metrics, and ML-based regime detection
178 lines (177 loc) • 23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.vectorSubtract = exports.vectorAdd = exports.vectorNorm = exports.solveQuadraticProgram = exports.inverseErf = exports.getZScore = exports.calculateTrackingError = exports.calculateInformationRatio = exports.calculateRiskMetrics = exports.calculateReturns = exports.calculateEqualWeightPortfolio = exports.calculatePortfolioRebalancing = exports.calculatePortfolioOptimization = exports.calculatePerformanceAttribution = exports.calculatePortfolioMetrics = exports.calculateMoneyWeightedReturn = exports.calculateTimeWeightedReturn = exports.calculateVolatility = exports.calculateVaR99 = exports.calculateVaR95 = exports.calculateVaR = exports.calculateStandardDeviation = exports.calculateSortinoRatio = exports.calculateSkewness = exports.calculateSharpeRatio = exports.calculateSemideviation = exports.calculatePortfolioVolatility = exports.calculateParkinsonVolatility = exports.calculateParametricVaR = exports.calculateParametricExpectedShortfall = exports.calculateMonteCarloVaR = exports.calculateMaxDrawdown = exports.calculateKurtosis = exports.calculateHistoricalVaR = exports.calculateHistoricalExpectedShortfall = exports.calculateGarmanKlassVolatility = exports.calculateEWMAVolatility = exports.calculateCovarianceMatrix = exports.calculateCorrelationMatrix = exports.calculateCalmarRatio = exports.calculateBeta = exports.calculateAlpha = exports.calculateATR = exports.calculateBollingerBands = exports.calculateWilliamsR = exports.calculateStochastic = exports.calculateRSI = exports.calculateMACD = exports.calculateEMA = exports.calculateSMA = void 0;
exports.standardize = exports.calculateVariance = exports.calculateMean = exports.logGaussianPDF = exports.gaussianPDF = exports.addNoise = exports.normalizeArray = exports.normalizeRows = exports.logSumExp = exports.baumWelch = exports.viterbi = exports.backward = exports.forward = exports.initializeHMM = exports.extractFeatures = exports.trainHMM = exports.detectRegime = exports.isSolutionFeasible = exports.calculateInequalityConstraintViolation = exports.calculateEqualityConstraintViolation = exports.projectGradientOntoNonNegativityConstraints = exports.projectGradientOntoEqualityConstraints = exports.projectOntoSimplex = exports.projectOntoBoxConstraints = exports.projectOntoNonNegativityConstraints = exports.projectOntoEqualityConstraints = exports.matrixConditionNumber = exports.isMatrixInvertible = exports.luDecomposition = exports.matrixDeterminant = exports.solveMultipleLinearSystems = exports.solveLinearSystem = exports.matrixFrobeniusNorm = exports.matrixDiagonal = exports.createZeroMatrix = exports.createIdentityMatrix = exports.isMatrixPositiveDefinite = exports.isMatrixSymmetric = exports.matrixTrace = exports.matrixMatrixMultiply = exports.matrixTranspose = exports.matrixVectorMultiply = exports.createConstantVector = exports.createZeroVector = exports.vectorEquals = exports.vectorDistance = exports.vectorNormalize = exports.vectorCross = exports.vectorDot = exports.vectorScale = void 0;
exports.validateNumStates = exports.validateHMMParameters = exports.validateFeatureMatrix = exports.validatePriceArray = exports.logMultivariateGaussianPDF = exports.multivariateGaussianPDF = void 0;
// Technical Indicators - Trend
var calculateSMA_1 = require("./indicators/trend/calculateSMA");
Object.defineProperty(exports, "calculateSMA", { enumerable: true, get: function () { return calculateSMA_1.calculateSMA; } });
var calculateEMA_1 = require("./indicators/trend/calculateEMA");
Object.defineProperty(exports, "calculateEMA", { enumerable: true, get: function () { return calculateEMA_1.calculateEMA; } });
var calculateMACD_1 = require("./indicators/trend/calculateMACD");
Object.defineProperty(exports, "calculateMACD", { enumerable: true, get: function () { return calculateMACD_1.calculateMACD; } });
// Technical Indicators - Momentum
var calculateRSI_1 = require("./indicators/momentum/calculateRSI");
Object.defineProperty(exports, "calculateRSI", { enumerable: true, get: function () { return calculateRSI_1.calculateRSI; } });
var calculateStochastic_1 = require("./indicators/momentum/calculateStochastic");
Object.defineProperty(exports, "calculateStochastic", { enumerable: true, get: function () { return calculateStochastic_1.calculateStochastic; } });
var calculateWilliamsR_1 = require("./indicators/momentum/calculateWilliamsR");
Object.defineProperty(exports, "calculateWilliamsR", { enumerable: true, get: function () { return calculateWilliamsR_1.calculateWilliamsR; } });
// Technical Indicators - Volatility
var calculateBollingerBands_1 = require("./indicators/volatility/calculateBollingerBands");
Object.defineProperty(exports, "calculateBollingerBands", { enumerable: true, get: function () { return calculateBollingerBands_1.calculateBollingerBands; } });
var calculateATR_1 = require("./indicators/volatility/calculateATR");
Object.defineProperty(exports, "calculateATR", { enumerable: true, get: function () { return calculateATR_1.calculateATR; } });
// Risk Metrics
var calculateAlpha_1 = require("./risk/calculateAlpha");
Object.defineProperty(exports, "calculateAlpha", { enumerable: true, get: function () { return calculateAlpha_1.calculateAlpha; } });
var calculateBeta_1 = require("./risk/calculateBeta");
Object.defineProperty(exports, "calculateBeta", { enumerable: true, get: function () { return calculateBeta_1.calculateBeta; } });
var calculateCalmarRatio_1 = require("./risk/calculateCalmarRatio");
Object.defineProperty(exports, "calculateCalmarRatio", { enumerable: true, get: function () { return calculateCalmarRatio_1.calculateCalmarRatio; } });
var calculateCorrelationMatrix_1 = require("./risk/calculateCorrelationMatrix");
Object.defineProperty(exports, "calculateCorrelationMatrix", { enumerable: true, get: function () { return calculateCorrelationMatrix_1.calculateCorrelationMatrix; } });
var calculateCovarianceMatrix_1 = require("./risk/calculateCovarianceMatrix");
Object.defineProperty(exports, "calculateCovarianceMatrix", { enumerable: true, get: function () { return calculateCovarianceMatrix_1.calculateCovarianceMatrix; } });
var calculateEWMAVolatility_1 = require("./risk/calculateEWMAVolatility");
Object.defineProperty(exports, "calculateEWMAVolatility", { enumerable: true, get: function () { return calculateEWMAVolatility_1.calculateEWMAVolatility; } });
var calculateGarmanKlassVolatility_1 = require("./risk/calculateGarmanKlassVolatility");
Object.defineProperty(exports, "calculateGarmanKlassVolatility", { enumerable: true, get: function () { return calculateGarmanKlassVolatility_1.calculateGarmanKlassVolatility; } });
var calculateHistoricalExpectedShortfall_1 = require("./risk/calculateHistoricalExpectedShortfall");
Object.defineProperty(exports, "calculateHistoricalExpectedShortfall", { enumerable: true, get: function () { return calculateHistoricalExpectedShortfall_1.calculateHistoricalExpectedShortfall; } });
var calculateHistoricalVaR_1 = require("./risk/calculateHistoricalVaR");
Object.defineProperty(exports, "calculateHistoricalVaR", { enumerable: true, get: function () { return calculateHistoricalVaR_1.calculateHistoricalVaR; } });
var calculateKurtosis_1 = require("./risk/calculateKurtosis");
Object.defineProperty(exports, "calculateKurtosis", { enumerable: true, get: function () { return calculateKurtosis_1.calculateKurtosis; } });
var calculateMaxDrawdown_1 = require("./risk/calculateMaxDrawdown");
Object.defineProperty(exports, "calculateMaxDrawdown", { enumerable: true, get: function () { return calculateMaxDrawdown_1.calculateMaxDrawdown; } });
var calculateMonteCarloVaR_1 = require("./risk/calculateMonteCarloVaR");
Object.defineProperty(exports, "calculateMonteCarloVaR", { enumerable: true, get: function () { return calculateMonteCarloVaR_1.calculateMonteCarloVaR; } });
var calculateParametricExpectedShortfall_1 = require("./risk/calculateParametricExpectedShortfall");
Object.defineProperty(exports, "calculateParametricExpectedShortfall", { enumerable: true, get: function () { return calculateParametricExpectedShortfall_1.calculateParametricExpectedShortfall; } });
var calculateParametricVaR_1 = require("./risk/calculateParametricVaR");
Object.defineProperty(exports, "calculateParametricVaR", { enumerable: true, get: function () { return calculateParametricVaR_1.calculateParametricVaR; } });
var calculateParkinsonVolatility_1 = require("./risk/calculateParkinsonVolatility");
Object.defineProperty(exports, "calculateParkinsonVolatility", { enumerable: true, get: function () { return calculateParkinsonVolatility_1.calculateParkinsonVolatility; } });
var calculatePortfolioVolatility_1 = require("./risk/calculatePortfolioVolatility");
Object.defineProperty(exports, "calculatePortfolioVolatility", { enumerable: true, get: function () { return calculatePortfolioVolatility_1.calculatePortfolioVolatility; } });
var calculateSemideviation_1 = require("./risk/calculateSemideviation");
Object.defineProperty(exports, "calculateSemideviation", { enumerable: true, get: function () { return calculateSemideviation_1.calculateSemideviation; } });
var calculateSharpeRatio_1 = require("./risk/calculateSharpeRatio");
Object.defineProperty(exports, "calculateSharpeRatio", { enumerable: true, get: function () { return calculateSharpeRatio_1.calculateSharpeRatio; } });
var calculateSkewness_1 = require("./risk/calculateSkewness");
Object.defineProperty(exports, "calculateSkewness", { enumerable: true, get: function () { return calculateSkewness_1.calculateSkewness; } });
var calculateSortinoRatio_1 = require("./risk/calculateSortinoRatio");
Object.defineProperty(exports, "calculateSortinoRatio", { enumerable: true, get: function () { return calculateSortinoRatio_1.calculateSortinoRatio; } });
var calculateStandardDeviation_1 = require("./risk/calculateStandardDeviation");
Object.defineProperty(exports, "calculateStandardDeviation", { enumerable: true, get: function () { return calculateStandardDeviation_1.calculateStandardDeviation; } });
var calculateVaR_1 = require("./risk/calculateVaR");
Object.defineProperty(exports, "calculateVaR", { enumerable: true, get: function () { return calculateVaR_1.calculateVaR; } });
var calculateVaR95_1 = require("./risk/calculateVaR95");
Object.defineProperty(exports, "calculateVaR95", { enumerable: true, get: function () { return calculateVaR95_1.calculateVaR95; } });
var calculateVaR99_1 = require("./risk/calculateVaR99");
Object.defineProperty(exports, "calculateVaR99", { enumerable: true, get: function () { return calculateVaR99_1.calculateVaR99; } });
var calculateVolatility_1 = require("./risk/calculateVolatility");
Object.defineProperty(exports, "calculateVolatility", { enumerable: true, get: function () { return calculateVolatility_1.calculateVolatility; } });
// Portfolio Performance Metrics
var calculateTimeWeightedReturn_1 = require("./portfolio/calculateTimeWeightedReturn");
Object.defineProperty(exports, "calculateTimeWeightedReturn", { enumerable: true, get: function () { return calculateTimeWeightedReturn_1.calculateTimeWeightedReturn; } });
var calculateMoneyWeightedReturn_1 = require("./portfolio/calculateMoneyWeightedReturn");
Object.defineProperty(exports, "calculateMoneyWeightedReturn", { enumerable: true, get: function () { return calculateMoneyWeightedReturn_1.calculateMoneyWeightedReturn; } });
var calculatePortfolioMetrics_1 = require("./portfolio/calculatePortfolioMetrics");
Object.defineProperty(exports, "calculatePortfolioMetrics", { enumerable: true, get: function () { return calculatePortfolioMetrics_1.calculatePortfolioMetrics; } });
var calculatePerformanceAttribution_1 = require("./portfolio/calculatePerformanceAttribution");
Object.defineProperty(exports, "calculatePerformanceAttribution", { enumerable: true, get: function () { return calculatePerformanceAttribution_1.calculatePerformanceAttribution; } });
var calculatePortfolioOptimization_1 = require("./portfolio/calculatePortfolioOptimization");
Object.defineProperty(exports, "calculatePortfolioOptimization", { enumerable: true, get: function () { return calculatePortfolioOptimization_1.calculatePortfolioOptimization; } });
var calculatePortfolioRebalancing_1 = require("./portfolio/calculatePortfolioRebalancing");
Object.defineProperty(exports, "calculatePortfolioRebalancing", { enumerable: true, get: function () { return calculatePortfolioRebalancing_1.calculatePortfolioRebalancing; } });
var calculateEqualWeightPortfolio_1 = require("./portfolio/calculateEqualWeightPortfolio");
Object.defineProperty(exports, "calculateEqualWeightPortfolio", { enumerable: true, get: function () { return calculateEqualWeightPortfolio_1.calculateEqualWeightPortfolio; } });
var calculateReturns_1 = require("./portfolio/calculateReturns");
Object.defineProperty(exports, "calculateReturns", { enumerable: true, get: function () { return calculateReturns_1.calculateReturns; } });
var calculateRiskMetrics_1 = require("./portfolio/calculateRiskMetrics");
Object.defineProperty(exports, "calculateRiskMetrics", { enumerable: true, get: function () { return calculateRiskMetrics_1.calculateRiskMetrics; } });
var calculateInformationRatio_1 = require("./portfolio/calculateInformationRatio");
Object.defineProperty(exports, "calculateInformationRatio", { enumerable: true, get: function () { return calculateInformationRatio_1.calculateInformationRatio; } });
var calculateTrackingError_1 = require("./portfolio/calculateTrackingError");
Object.defineProperty(exports, "calculateTrackingError", { enumerable: true, get: function () { return calculateTrackingError_1.calculateTrackingError; } });
// Utility Functions
var getZScore_1 = require("./utils/getZScore");
Object.defineProperty(exports, "getZScore", { enumerable: true, get: function () { return getZScore_1.getZScore; } });
var inverseErf_1 = require("./utils/inverseErf");
Object.defineProperty(exports, "inverseErf", { enumerable: true, get: function () { return inverseErf_1.inverseErf; } });
var solveQuadraticProgram_1 = require("./utils/solveQuadraticProgram");
Object.defineProperty(exports, "solveQuadraticProgram", { enumerable: true, get: function () { return solveQuadraticProgram_1.solveQuadraticProgram; } });
// Vector Operations
var vectorOperations_1 = require("./utils/vectorOperations");
Object.defineProperty(exports, "vectorNorm", { enumerable: true, get: function () { return vectorOperations_1.vectorNorm; } });
Object.defineProperty(exports, "vectorAdd", { enumerable: true, get: function () { return vectorOperations_1.vectorAdd; } });
Object.defineProperty(exports, "vectorSubtract", { enumerable: true, get: function () { return vectorOperations_1.vectorSubtract; } });
Object.defineProperty(exports, "vectorScale", { enumerable: true, get: function () { return vectorOperations_1.vectorScale; } });
Object.defineProperty(exports, "vectorDot", { enumerable: true, get: function () { return vectorOperations_1.vectorDot; } });
Object.defineProperty(exports, "vectorCross", { enumerable: true, get: function () { return vectorOperations_1.vectorCross; } });
Object.defineProperty(exports, "vectorNormalize", { enumerable: true, get: function () { return vectorOperations_1.vectorNormalize; } });
Object.defineProperty(exports, "vectorDistance", { enumerable: true, get: function () { return vectorOperations_1.vectorDistance; } });
Object.defineProperty(exports, "vectorEquals", { enumerable: true, get: function () { return vectorOperations_1.vectorEquals; } });
Object.defineProperty(exports, "createZeroVector", { enumerable: true, get: function () { return vectorOperations_1.createZeroVector; } });
Object.defineProperty(exports, "createConstantVector", { enumerable: true, get: function () { return vectorOperations_1.createConstantVector; } });
// Matrix Operations
var matrixOperations_1 = require("./utils/matrixOperations");
Object.defineProperty(exports, "matrixVectorMultiply", { enumerable: true, get: function () { return matrixOperations_1.matrixVectorMultiply; } });
Object.defineProperty(exports, "matrixTranspose", { enumerable: true, get: function () { return matrixOperations_1.matrixTranspose; } });
Object.defineProperty(exports, "matrixMatrixMultiply", { enumerable: true, get: function () { return matrixOperations_1.matrixMatrixMultiply; } });
Object.defineProperty(exports, "matrixTrace", { enumerable: true, get: function () { return matrixOperations_1.matrixTrace; } });
Object.defineProperty(exports, "isMatrixSymmetric", { enumerable: true, get: function () { return matrixOperations_1.isMatrixSymmetric; } });
Object.defineProperty(exports, "isMatrixPositiveDefinite", { enumerable: true, get: function () { return matrixOperations_1.isMatrixPositiveDefinite; } });
Object.defineProperty(exports, "createIdentityMatrix", { enumerable: true, get: function () { return matrixOperations_1.createIdentityMatrix; } });
Object.defineProperty(exports, "createZeroMatrix", { enumerable: true, get: function () { return matrixOperations_1.createZeroMatrix; } });
Object.defineProperty(exports, "matrixDiagonal", { enumerable: true, get: function () { return matrixOperations_1.matrixDiagonal; } });
Object.defineProperty(exports, "matrixFrobeniusNorm", { enumerable: true, get: function () { return matrixOperations_1.matrixFrobeniusNorm; } });
// Linear System Solver
var linearSystemSolver_1 = require("./utils/linearSystemSolver");
Object.defineProperty(exports, "solveLinearSystem", { enumerable: true, get: function () { return linearSystemSolver_1.solveLinearSystem; } });
Object.defineProperty(exports, "solveMultipleLinearSystems", { enumerable: true, get: function () { return linearSystemSolver_1.solveMultipleLinearSystems; } });
Object.defineProperty(exports, "matrixDeterminant", { enumerable: true, get: function () { return linearSystemSolver_1.matrixDeterminant; } });
Object.defineProperty(exports, "luDecomposition", { enumerable: true, get: function () { return linearSystemSolver_1.luDecomposition; } });
Object.defineProperty(exports, "isMatrixInvertible", { enumerable: true, get: function () { return linearSystemSolver_1.isMatrixInvertible; } });
Object.defineProperty(exports, "matrixConditionNumber", { enumerable: true, get: function () { return linearSystemSolver_1.matrixConditionNumber; } });
// Constraint Projection
var constraintProjection_1 = require("./utils/constraintProjection");
Object.defineProperty(exports, "projectOntoEqualityConstraints", { enumerable: true, get: function () { return constraintProjection_1.projectOntoEqualityConstraints; } });
Object.defineProperty(exports, "projectOntoNonNegativityConstraints", { enumerable: true, get: function () { return constraintProjection_1.projectOntoNonNegativityConstraints; } });
Object.defineProperty(exports, "projectOntoBoxConstraints", { enumerable: true, get: function () { return constraintProjection_1.projectOntoBoxConstraints; } });
Object.defineProperty(exports, "projectOntoSimplex", { enumerable: true, get: function () { return constraintProjection_1.projectOntoSimplex; } });
Object.defineProperty(exports, "projectGradientOntoEqualityConstraints", { enumerable: true, get: function () { return constraintProjection_1.projectGradientOntoEqualityConstraints; } });
Object.defineProperty(exports, "projectGradientOntoNonNegativityConstraints", { enumerable: true, get: function () { return constraintProjection_1.projectGradientOntoNonNegativityConstraints; } });
Object.defineProperty(exports, "calculateEqualityConstraintViolation", { enumerable: true, get: function () { return constraintProjection_1.calculateEqualityConstraintViolation; } });
Object.defineProperty(exports, "calculateInequalityConstraintViolation", { enumerable: true, get: function () { return constraintProjection_1.calculateInequalityConstraintViolation; } });
Object.defineProperty(exports, "isSolutionFeasible", { enumerable: true, get: function () { return constraintProjection_1.isSolutionFeasible; } });
// Machine Learning - Regime Detection
var detectRegime_1 = require("./ml/hmm/detectRegime");
Object.defineProperty(exports, "detectRegime", { enumerable: true, get: function () { return detectRegime_1.detectRegime; } });
var hmm_1 = require("./ml/hmm");
Object.defineProperty(exports, "trainHMM", { enumerable: true, get: function () { return hmm_1.trainHMM; } });
Object.defineProperty(exports, "extractFeatures", { enumerable: true, get: function () { return hmm_1.extractFeatures; } });
Object.defineProperty(exports, "initializeHMM", { enumerable: true, get: function () { return hmm_1.initializeHMM; } });
Object.defineProperty(exports, "forward", { enumerable: true, get: function () { return hmm_1.forward; } });
Object.defineProperty(exports, "backward", { enumerable: true, get: function () { return hmm_1.backward; } });
Object.defineProperty(exports, "viterbi", { enumerable: true, get: function () { return hmm_1.viterbi; } });
Object.defineProperty(exports, "baumWelch", { enumerable: true, get: function () { return hmm_1.baumWelch; } });
// Machine Learning - Utils (for Power Users)
var utils_1 = require("./ml/utils");
Object.defineProperty(exports, "logSumExp", { enumerable: true, get: function () { return utils_1.logSumExp; } });
Object.defineProperty(exports, "normalizeRows", { enumerable: true, get: function () { return utils_1.normalizeRows; } });
Object.defineProperty(exports, "normalizeArray", { enumerable: true, get: function () { return utils_1.normalizeArray; } });
Object.defineProperty(exports, "addNoise", { enumerable: true, get: function () { return utils_1.addNoise; } });
Object.defineProperty(exports, "gaussianPDF", { enumerable: true, get: function () { return utils_1.gaussianPDF; } });
Object.defineProperty(exports, "logGaussianPDF", { enumerable: true, get: function () { return utils_1.logGaussianPDF; } });
Object.defineProperty(exports, "calculateMean", { enumerable: true, get: function () { return utils_1.calculateMean; } });
Object.defineProperty(exports, "calculateVariance", { enumerable: true, get: function () { return utils_1.calculateVariance; } });
Object.defineProperty(exports, "standardize", { enumerable: true, get: function () { return utils_1.standardize; } });
Object.defineProperty(exports, "multivariateGaussianPDF", { enumerable: true, get: function () { return utils_1.multivariateGaussianPDF; } });
Object.defineProperty(exports, "logMultivariateGaussianPDF", { enumerable: true, get: function () { return utils_1.logMultivariateGaussianPDF; } });
Object.defineProperty(exports, "validatePriceArray", { enumerable: true, get: function () { return utils_1.validatePriceArray; } });
Object.defineProperty(exports, "validateFeatureMatrix", { enumerable: true, get: function () { return utils_1.validateFeatureMatrix; } });
Object.defineProperty(exports, "validateHMMParameters", { enumerable: true, get: function () { return utils_1.validateHMMParameters; } });
Object.defineProperty(exports, "validateNumStates", { enumerable: true, get: function () { return utils_1.validateNumStates; } });