Author: Will Hammond Advisor: Alan Kahn Started: March 2026
How do the relative proportions of three behaviorally-distinct trader populations determine whether a market converges to fair value, and what observable signatures characterize each regime?
Agents who estimate fundamental value from observable data and trade mean-revertingly toward it. In the limit where 100% of the population is Type I, the market should converge to fair value (the EMH limit).
Modeling approach: Demand proportional to (V* - P), where V* is the estimated fair value. Ornstein-Uhlenbeck-like dynamics with heterogeneous estimation horizons.
Agents driven by behavioral factors: momentum-chasing, loss aversion (prospect theory), herding/sentiment contagion, and fear/greed cycles. Unlike Chiarella's mechanical trend followers, these agents exhibit asymmetric behavior — they panic-sell faster than they FOMO-buy, and their strategies are contagious across the population.
Modeling approach: Demand driven by recent returns (momentum) + sentiment field (mean-field herding) + prospect-theoretic value function (Kahneman-Tversky). Asymmetric response to gains vs. losses.
Zero-intelligence agents contributing pure noise to order flow. No information, no strategy.
Modeling approach: Standard Brownian motion demand. Can also explore Levy-stable noise for fat tails, or simple Poisson arrival of random orders.
The state space is the 2-simplex: p = (p1, p2, p3) with p1 + p2 + p3 = 1.
Key questions at each point in the simplex:
- Convergence: Does the market price converge to fair value?
- Excess volatility: How much larger is realized vol vs. fundamental vol?
- Mispricing distribution: Unimodal (efficient) or bimodal (bubble/crash prone)?
- Price impact: What is the GK multiplier M as a function of p?
Map the simplex into regions:
- Efficient zone: Price tracks fair value, low excess vol
- Momentum zone: Trend-following dominates, bubble/crash dynamics
- Noise zone: Random walk dominates, high vol, no convergence
- Critical boundaries: Phase transitions between regimes
- Analytical: Mean-field limit as N → ∞, derive conditions on p for convergence
- Numerical: Monte Carlo simulation across the simplex
- Empirical: Calibrate to real data, infer population proportions
src/ # Python analysis, calibration, visualization
rust_core/ # Rust simulation engine (via PyO3)
notebooks/ # Exploratory analysis and figures
papers/ # PDFs of key references
data/ # Market data for calibration
docs/ # Paper drafts and notes
tests/ # Unit tests for both Python and Rust
- Simulation: Rust (via PyO3 → Python bindings)
- Analysis: Python (NumPy, SciPy, pandas)
- Visualization: matplotlib, plotly
- Calibration: scipy.optimize, optuna
- Data: yfinance, FRED
- Bouchaud (2021) — "The Inelastic Market Hypothesis: A Microstructural Interpretation" [arXiv:2108.00242]
- Kurth, Majewski & Bouchaud (2026) — "Revisiting the excess volatility puzzle through the lens of the Chiarella model" [PLoS ONE]
- Maitrier, Loeper & Bouchaud (2025) — "The Subtle Interplay between Square-root Impact, Order Imbalance & Volatility II: An Artificial Market Generator" [arXiv:2509.05065]
- Bouchaud (2024) — "The self-organized criticality paradigm in economics & finance" [SSRN]
- Bouchaud, Bonart, Donier & Gould (2018) — "Trades, Quotes and Prices: Financial Markets Under the Microscope" [Cambridge UP]
- Bouchaud et al. (2020) — "Co-impact: Crowding effects in institutional trading activity" [Quantitative Finance]
- Bouchaud et al. (2020) — "The multivariate Kyle model: More is different" [SIAM]
- Bouchaud (2021) — "Radical Complexity" [Entropy]
- Chiarella (1992) — "The dynamics of speculative behaviour" [Annals of Operations Research] (the original model)
- Gabaix & Koijen (2021) — "In Search of the Origins of Financial Fluctuations: The Inelastic Markets Hypothesis"
- Kahneman & Tversky (1979) — Prospect Theory
- Cont & Bouchaud (2000) — "Herd Behavior and Aggregate Fluctuations in Financial Markets"
- Hommes (2006) — "Heterogeneous Agent Models in Economics and Finance"
- Behaviorally-grounded Type II agents: Not just mechanical trend followers — incorporates prospect theory, sentiment contagion, and asymmetric response. This can generate phenomena (panic cascades, FOMO bubbles) that Chiarella's framework can't.
- Full simplex analysis: Chiarella papers typically vary one parameter at a time. We map the entire population simplex to find phase boundaries.
- Population inference: Can we infer p from market observables? If so, this is directly useful to trading firms — it tells you what regime the market is in.
- Rust simulation engine: Enables large-scale Monte Carlo that would be impractical in pure Python.
- Jane Street / Jump / HRT / GTS: Understanding market regimes and participant composition is core to their alpha. If you can infer population mix from tape data, that's actionable.
- Interview signal: Shows you think about markets as complex adaptive systems, not just statistical patterns. The Rust + Python stack shows engineering maturity. The Bouchaud literature connection shows you read serious research.
- Paper potential: Extends a 2026 Bouchaud paper with novel behavioral agents and full simplex analysis. Publishable in Quantitative Finance if calibration is strong.