The Chiarella model [1] describes the log-price $p$ of an asset traded by three kinds of agents. Working in logs makes price increments $dp$ returns, so the dynamics don’t depend on the price level; the simulation starts at $p = 0$, i.e. a price normalized to $e^0 = 1$.
- fundamentalists believe the asset is worth a fundamental value $V$, e.g. its discounted future cash flows. They buy when the price is below it and sell when it is above: their demand $-\kappa\delta$ corrects the mispricing $\delta = p - V$ at rate $\kappa$, closing a gap with half-life $\ln 2 / \kappa$ when acting alone.
- trend followers chase a trend signal $M$, a moving average of recent price changes with memory time $1/\alpha$. Their demand $\beta \tanh(\gamma M)$ saturates, because positions can’t grow without limit: the sensitivity $\gamma$ sets how strongly they react to a weak trend, and the strength $\beta$, read as their capital or market share, caps the drift they can impose at $\pm\beta$.
- noise traders add random order flow of volatility $\sigma_N$, unrelated to value or trend. It is the main source of short-term return volatility, and it also seeds spurious trends in $M$.
In the extended version of Majewski, Ciliberti and Bouchaud (2020) [2], the fundamental value itself follows a random walk with drift $g$ and volatility $\sigma_V$. It is exogenous: news moves $V$, but the market price never feeds back into it. The dynamics are
$$ \begin{aligned} dV &= g\,dt + \sigma_V\,dW_1, \\ dp &= \kappa (V - p)\,dt + \beta \tanh(\gamma M)\,dt + \sigma_N\,dW_2, \\ dM &= \alpha\,(dp - M\,dt), \end{aligned} $$
where $W_1$ and $W_2$ are independent Wiener processes: the news reaching fundamentals and the order flow of noise traders. The last line makes the trend signal an exponentially weighted average $M_t = \alpha \int_{-\infty}^{t} e^{-\alpha (t - s)}\,dp_s$, a return per unit time: $M > 0$ means prices have recently been rising. Noise-driven moves count too, since trend followers can’t tell a noise trade from a genuine trend. A large $\alpha$ is a short, jittery memory that chases the latest noise; a small $\alpha$ is a long, smooth one that reacts late.
The system is integrated with the Euler–Maruyama scheme [3] at time step $dt$, which is numerical rather than part of the model: smaller is more accurate but covers less simulated time per step, and tracking the continuous dynamics needs $\kappa\,dt \ll 1$ and $\alpha\,dt \ll 1$. Each animation frame runs a number of steps/frame, advancing simulated time by $\text{steps} \times dt$; every plot takes one sample per frame, so “returns” are price changes over that interval. Time units are arbitrary: if one unit is a trading day, then $\sigma_N$ is a daily volatility, $1/\alpha$ is a memory length in days, and so on.
The interesting variable is the mispricing $\delta$: $p$ and $V$ both wander without bound, but their difference does not. $\delta > 0$ means the asset is overvalued (the bubble side), $\delta < 0$ undervalued. Without noise, the state $(\delta, M) = (0, 0)$ is stable as long as
$$ \beta\gamma < 1 + \frac{\kappa}{\alpha}. $$
Only the product $\beta\gamma$ decides stability: it is the trend followers’ gain for small trends, since their demand is linear, $\approx \beta\gamma M$, for $|\gamma M| \ll 1$. Above the threshold, $\beta$ alone sets how large bubbles and crashes grow. Stronger fundamentalists (larger $\kappa$) raise the threshold $1 + \kappa/\alpha$, and so does a longer memory (smaller $\alpha$), which gives fundamentalists more time to act before a trend builds. Meanwhile, news shocks of size $\sigma_V$ keep disturbing the state: fundamentalists chase every jump, and trend followers amplify the resulting price moves.
Linearizing around the origin gives a Jacobian with determinant $\alpha\kappa > 0$ and trace $\alpha(\beta\gamma - 1) - \kappa$. When the trace turns positive, a Hopf bifurcation occurs: trend followers overpower fundamentalists and the mispricing locks into a limit cycle of bubbles and crashes. With noise on, the histogram of $\delta$ widens and becomes bimodal, since the price lingers on the overvalued or undervalued side of the cycle.
In a steadily growing market the trend signal settles at $M = g$, and the price settles at a constant offset $\delta^{\ast} = \left(\beta\tanh(\gamma g) - g\right)/\kappa$ from value. When trend followers are strong enough this is positive: a persistent, self-sustaining overvaluation. Every slider acts on the running simulation immediately. Push $\beta$ past the threshold to watch the phase portrait open into a cycle.
κ =
β =
γ =
α =
σN =
σV =
g =
dt =
Steps/frame =
βγ = vs 1+κ/α = → p = V = δ = M =
Phase portrait (δ, M)
Price p / fundamental V
Mispricing δ = p − V
Returns Δp per frame
Histogram of δ (range ±, samples)
References
- C. Chiarella, The dynamics of speculative behaviour, Annals of Operations Research 37, 101–123 (1992). doi:10.1007/BF02071051
- A. A. Majewski, S. Ciliberti, J.-P. Bouchaud, Co-existence of trend and value in financial markets: Estimating an extended Chiarella model, Journal of Economic Dynamics and Control 112, 103791 (2020). doi:10.1016/j.jedc.2019.103791
- G. Maruyama, Continuous Markov processes and stochastic equations, Rendiconti del Circolo Matematico di Palermo 4, 48–90 (1955). doi:10.1007/BF02846028
- J.-P. Bouchaud, M. Potters, Theory of Financial Risks: From Statistical Physics to Risk Management, (Cambridge University Press, 2000).
- R. N. Mantegna, H. E. Stanley, Introduction to Econophysics: Correlations and Complexity in Finance, (Cambridge University Press, 1999). doi:10.1017/CBO9780511755767
- H. E. Stanley, P. Gopikrishnan, V. Plerou, L. A. N. Amaral, Quantifying fluctuations in economic systems by adapting methods of statistical physics, Physica A: Statistical Mechanics and its Applications 287, 339–361 (2000). doi:10.1016/S0378-4371(00)00473-8