← ClaudeAtlas

lib-nautilus-traderlisted

Event-driven Rust-core engine with the strongest execution modelling in open source, gated to Python 3.12-3.14, where a wrong ts_init silently makes every bar visible one interval early. TRIGGER - import nautilus_trader, pip install nautilus_trader, BacktestEngine, BacktestNode, TradingNode, Strategy.on_bar, ts_init, ts_event, FillModel, prob_fill_on_limit, prob_slippage, LatencyModel, base_latency_nanos, RiskEngine, OmsType NETTING HEDGING, BookType.L1_MBP, bar_execution, bar_adaptive_high_low_ordering, high-precision build, ClientOrderId; "could not find a version that satisfies nautilus_trader", a Rust source build on an Intel Mac or Alpine. Memory is stale here: 1.231.0 shipped 2026-08-02, a 2.0 line is in release candidates that moves the fill model to nautilus_trader.execution, and the licence is LGPL-3.0-or-later. SKIP for choosing among engines generally (backtesting-engines). SKIP when the question is WHICH library to choose, or names no library at all - both belong to the domain skill.
howard-lynn-ye/fin-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill howard-lynn-ye/fin-skills
# nautilus_trader The strongest execution modelling in open source, and the only engine where the **same strategy object** runs the backtest and the live session — but it will not even install on Python 3.11. | | | |---|---| | pip / import | `pip install nautilus_trader` · `import nautilus_trader` | | Version | **1.231.0 (2026-08-02)** · ⚠️ a **2.0.0** line is in RC (`v2.0.0rc4`, 2026-09-02) | | Licence | 🚨 **LGPL-3.0-or-later** (declared and classified), CLA required for contributors | | Status | ✅ Very active, bi-weekly across `develop`/`nightly`/`master`. 28,367★, pushed 2026-09-04 | ## The trap that costs you money 🚨 **`ts_init` must be the bar's CLOSE.** Look-ahead protection here is *structural* — orders submitted inside `on_bar()` arrive after that bar finishes processing — and that protection depends entirely on this one field. **Vendor bars are very often timestamped at their open.** Load them unchanged and every bar becomes visible one interval early. The engine does not complain; it **silently makes bars visible early**, and every metric looks better for it. ```python INTERVAL_NS = 60 * 1_000_000_000 # 1-minute bars, in nanoseconds bar = Bar( bar_type, Price(o, 2), Price(h, 2), Price(l, 2), Price(c, 2), Quantity(v, 0), ts_event=ts_open, # when the bar's period began ts_init=ts_open + INTERVAL_NS, # 🚨 the CLOSE — not ts_open ) ``` ## 🚨 The install gate nobody reads `requires_python` is