Skip to content

Monte-Neo

Fast local research for trading strategies on Apple Silicon
Fee-aware next-bar economics · Monte Carlo · paper OMS

PyPI CI License: MIT Python 3.11+ Apple Silicon

Install

pip install monte-neo
# Apple Silicon extras (MLX / Metal bindings):
pip install "monte-neo[apple]"

Or isolated CLI: brew install pipx && pipx install "monte-neo[apple]"

What it is

Lane Role
Research bar Primary speed path — fee-aware next-bar grids on Mac
Monte Carlo Research helpers for robustness checks
Paper OMS Validation semantics — not a live-bot claim

Job: on an Apple Silicon Mac, iterate strategy hypotheses in minutes with economics you can re-check (export API + golden vectors).

Not a goal: replace full event-driven production or live multi-venue bot platforms.

When Monte-Neo fits (and when it does not)

Warm honesty beats a feature dump. Use this as a job-fit check.

Fits well

  • Grid research on a Mac — roughly 10²–10⁴ fee-aware next-bar combos (SMA / parametric sweeps), not a single one-off script
  • Apple Silicon without Docker/cloud — Metal economics + Numba, 16GB-safe planner, no-hang gate → cpu_numba fallback
  • Re-checkable results — export API + golden vectors before any timing claim
  • Research → paper OMS — research bar first; paper OMS is a validation lane, not live ops
  • MIT + local — core loop on your machine, no license gate and no mandatory cloud

Usually not the right tool

  • Full live multi-venue / brokerage OMS — production event-driven stacks are a different job
  • Bot operations — Telegram, exchange dry-run/live wiring, strategy marketplaces
  • Cloud institutional multi-asset stacks — cloud Docker-based institutional pipelines elsewhere
  • One 50-line teaching backtest — a tiny teaching tool is simpler for that
  • Portfolio weight allocator / pipeline-bundle workflows — different question than bar research

See also FAQ.

Why Monte-Neo

  • Local Apple Silicon speed — Metal economics + Numba (MLX optional)
  • Fee-aware research bar — next-bar fills, costs (bps), honest checklist
  • Export API — export_single / export_batch / export_sma_sweep + golden vectors
  • 16GB-safe — memory planner + no-hang Metal gate → cpu_numba fallback
  • MIT — use, fork, ship

Quick example

from monte_neo.backtest import export_sma_sweep
import numpy as np

n = 50_000
close = 100 + np.cumsum(np.random.randn(n) * 0.1)
open_ = close  # demo: flat OHLC
high = close + 0.2
low = close - 0.2

result = export_sma_sweep(
    open_=open_, high=high, low=low, close=close,
    fast=[5, 10, 20],
    slow=[50, 100],
    device="auto",  # Metal when safe, else cpu_numba
)
print(result["device"], result.get("ok"), len(result.get("rows", result)))

See also: examples/export_sma_sweep_quickstart.py

Demos

Next steps