Releases: MeridianAlgo/Javascript-Packages
v2.5.9
See CHANGELOG.md for details.
Full Changelog: v2.5.3...v2.5.9
v2.5.3
See CHANGELOG.md for details.
Full Changelog: v2.5.2...v2.5.3
v2.5.2
See CHANGELOG.md for details.
Full Changelog: v2.5.1...v2.5.2
v2.5.0 - Beta
Full Changelog: v2.0.1...v2.5.0
v2.0.0-Public
MeridianAlgo.js
A professional-grade quantitative finance framework for JavaScript and TypeScript, designed specifically for quantitative developers, researchers, and algorithmic traders.
Overview
MeridianAlgo is a comprehensive, modular quantitative finance framework that provides institutional-quality tools for algorithmic trading, quantitative research, and financial analysis. Built with TypeScript, it offers a complete suite of packages covering data ingestion, technical analysis, backtesting, risk management, portfolio optimization, machine learning, and execution.
IMPORTANT: Please read the DISCLAIMER before using this software. This framework is provided for educational and research purposes only.
Table of Contents
- Quick Start
- Installation
- Key Features
- Architecture
- Usage Examples
- Documentation
- Development
- Contributing
- License
Quick Start
# Install dependencies
npm install -g pnpm
pnpm install
# Build all packages
pnpm build
# Run examples
pnpm example:basic # Basic backtest
pnpm example:advanced # Advanced features
pnpm example:utils # Utilities demoInstallation
For End Users
Install individual packages as needed:
# Core packages
npm install @meridianalgo/core @meridianalgo/indicators @meridianalgo/data
# Strategy and backtesting
npm install @meridianalgo/strategies @meridianalgo/backtest
# Risk and portfolio management
npm install @meridianalgo/risk @meridianalgo/portfolio
# Machine learning
npm install @meridianalgo/models
# Live execution
npm install @meridianalgo/execution
# Utilities
npm install @meridianalgo/utils @meridianalgo/cliFor Contributors
# Clone the repository
git clone https://github.com/MeridianAlgo/Javascript-Packages.git
cd Javascript-Packages
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm testKey Features
Technical Indicators (100+)
Classic Indicators
- Moving Averages: SMA, EMA, WMA, DEMA, TEMA, HMA
- Momentum: RSI, MACD, Stochastic, Williams %R, CCI, ROC
- Volatility: Bollinger Bands, ATR, Keltner Channels, Donchian Channels
- Volume: OBV, MFI, VWAP, Volume Profile
- Trend: ADX, Aroon, Parabolic SAR, Supertrend
Advanced Indicators
- Volatility Models: GARCH, EWMA, Realized Volatility, Parkinson, Garman-Klass
- Regime Detection: Hidden Markov Models (HMM), Change Point Detection
- Market Microstructure: VPIN, Order Imbalance, Kyle's Lambda, Bid-Ask Spread Analysis
- Feature Engineering: PCA, Lagged Features, Rolling Statistics, Cross-sectional Ranks
- Seasonality: Day-of-week Effects, Month-end Effects, Holiday Analysis
Data Management
Supported Data Sources
- Yahoo Finance (fully implemented with caching)
- Polygon.io (with rate limiting and WebSocket support)
- Binance (REST and WebSocket streaming)
- Alpaca (paper and live trading integration)
- Extensible adapter pattern for custom data sources
Data Quality
- Automated quality validation and gap detection
- Corporate action handling (splits, dividends)
- Missing data interpolation and normalization
- Multi-timeframe resampling
- Efficient caching mechanisms
Trading Strategies
Pre-built Strategy Templates
- Trend Following (moving average crossovers, breakouts)
- Mean Reversion (Bollinger Band, RSI-based)
- Pairs Trading (cointegration-based statistical arbitrage)
- Momentum (relative strength, time-series momentum)
Strategy Composition
- Blend multiple strategies with custom weights
- Voting mechanisms for signal aggregation
- Regime-based strategy gating
- Dynamic position sizing (Kelly Criterion, Volatility Targeting, Drawdown-aware)
Backtesting Engine
Engine Types
- Time-based backtesting for bar-by-bar simulation
- Event-driven architecture for tick-level precision
- Walk-forward analysis for out-of-sample validation
- Multi-scenario testing for robustness checks
Realistic Simulation
- Configurable commission models (fixed, percentage, tiered)
- Slippage modeling (fixed, volume-based, volatility-based)
- Borrow fees for short positions
- Corporate action adjustments
- Margin and leverage constraints
Risk Management
Risk Metrics
- Value at Risk (VaR): Historical, Parametric, Monte Carlo
- Conditional Value at Risk (CVaR/Expected Shortfall)
- Maximum Drawdown and Drawdown Duration
- Volatility (realized, implied, conditional)
- Beta, Correlation, and Tracking Error
Performance Metrics
- Sharpe Ratio, Sortino Ratio, Calmar Ratio
- Information Ratio, Treynor Ratio
- Win Rate, Profit Factor, Payoff Ratio
- Risk-adjusted returns and attribution analysis
Risk Monitoring
- Real-time position monitoring
- Automated alert system
- Stress testing (scenario-based, historical, Monte Carlo)
- Performance attribution (Brinson model, factor exposure)
- Comprehensive reporting (PDF/HTML tear sheets)
Portfolio Optimization
Optimization Methods
- Mean-Variance Optimization (Markowitz)
- Black-Litterman Model (incorporating views)
- Risk Parity (equal risk contribution)
- Hierarchical Risk Parity (HRP)
- Minimum Variance, Maximum Sharpe, Maximum Diversification
Constraint Handling
- Weight constraints (min/max per asset)
- Long-only or long-short portfolios
- Leverage limits
- Sector and factor exposure limits
- Turnover constraints
Robustness Techniques
- Covariance shrinkage (Ledoit-Wolf)
- Resampled efficient frontier
- Robust optimization
- Multi-objective optimization
Machine Learning
Supported Models
- Tree-based: Random Forest, Gradient Boosting (XGBoost-style)
- Neural Networks: Feedforward, LSTM, GRU
- Time Series: ARIMA, VAR, State-Space Models, Kalman Filter
- Ensemble methods and model stacking
ML Infrastructure
- Hyperparameter tuning (Grid Search, Random Search, Bayesian Optimization)
- Cross-validation with time-series splits
- Feature selection and importance analysis
- Online learning with concept drift detection
- AutoML for automated model selection
- Labeling methods (Triple-Barrier, Meta-labeling)
Execution
Trading Modes
- Paper trading with realistic simulation
- Live trading via Alpaca API
- Backtesting mode for historical analysis
Order Management
- Market, Limit, Stop, Stop-Limit orders
- Bracket orders (with take-profit and stop-loss)
- Time-in-force options (DAY, GTC, IOC, FOK)
- Pre-trade risk checks
- Smart order routing
- Position and order tracking
Compliance
- Comprehensive audit logging
- Trade compliance checks
- Risk limit enforcement
- Regulatory reporting support
Developer Tools
Command-Line Interface
- Project initialization and scaffolding
- Automated backtesting workflows
- Parameter optimization utilities
- Live trading deployment
- Report generation
Utilities
- Mathematical functions (statistics, linear algebra)
- Time-series utilities (resampling, alignment)
- Market calendar (trading days, holidays)
- Logging and monitoring infrastructure
Architecture
MeridianAlgo is built as a monorepo with independent, composable packages:
meridianalgo-js/
├── packages/
│ ├── core/ # Core types, interfaces, and plugin system
│ ├── indicators/ # 100+ technical indicators
│ ├── data/ # Data adapters and management
│ ├── strategies/ # Trading strategy templates
│ ├── backtest/ # Backtesting engines
│ ├── risk/ # Risk metrics and monitoring
│ ├── portfolio/ # Portfolio optimization
│ ├── models/ # Machine learning models
│ ├── execution/ # Order execution and management
│ ├── optimize/ # Parameter optimization
│ ├── visualize/ # Charting and visualization
│ ├── pipeline/ # Workflow orchestration
│ ├── compliance/ # Audit and compliance
│ ├── cli/ # Command-line tools
│ └── utils/ # Shared utilities
├── examples/ # Example scripts and tutorials
├── docs/ # Comprehensive documentation
└── tests/ # Integration tests
Design Principles
- Modularity: Each package is independently usable
- Type Safety: Full TypeScript support with strict typing
- Extensibility: Plugin architecture for custom components
- Performance: Optimized for large-scale data processing
- Testing: Comprehensive test coverage
- Documentation: Extensive API documentation and examples
Usage Examples
Basic Backtest
import { YahooAdapter } from '@meridianalgo/data';
import { trendFollowing } from '@meridianalgo/strategies';
import { TimeBasedEngine } from '@meridianalgo/backtest';
async function runBacktest() {
// Fetch historical data
const yahoo = new YahooAdapter();
const bars = await yahoo.ohlcv('AAPL', {
start: '2023-01-01',
end: '2023-12-31',
interval: '1d'
});
// Create a trend-following strategy
const strategy = trendFollowing({
fastPeriod: 10,
slowPeriod: 30,
maType: 'ema'
});
// Run backtest
const engine = new Time...