v0.13.1
Changes since v0.13.0
- chore(release): v0.13.1 (51cc4e8)
- docs(README): rewrite for the round-11 engine — brand-first, OSS-first, every number re-measured (622d653)
- docs(README): round-11 closed-test results and a full factual refresh (2ab2bfb)
- engine: an explicit zero-offset trail rides the raw running best once armed (round 10 family AC) — re-apply bde0911's engine change (c86c082)
- tests: replay 29 more family-AC tapes (pins3..pins5) on registry bars — 75 in total; the print-vs-level rule in the harness header (4ec05f2)
- engine: a zero-offset trail's arming open fills when its PRINT sits at the directionally snapped level, not only on the tick grid (round 10 family AC) (23f6ab0)
- engine: a zero-offset trail's arming open fills only when it is ON the tick grid (round 10 family AC) (f620c7c)
- tests: replay the 35 family-AC zero-offset trail tapes on registry bars; re-pin the one-shot fixtures (6eaa543)
- engine: a strategy.close co-queued with a rule-5-dropped all-in reversal still fills (round 11 family AG, OANDA:EURUSD@15) (36b500b)
- engine: the decline bar never arms a surviving trail leg, and a leg its open already sits past dies with the stop and limit (round 10 family AE, fast-scalper NASDAQ:AAPL@15) (cfc27b7)
- engine: the ten-significant-digit equity and the raw lot floor size every lot-stepped instrument, integer shares included (round 10 family AE, fast-scalper NASDAQ:AAPL@15) (fd5e9f5)
- engine: a declined reversal kills a bracket's stop and limit legs, never its trail leg, and only from the bar after the decline; the reversal is judged before the position's gapped stop (round 9 family X, fast-scalper AAPL/XAUUSD/F/NIFTY@15) (3aeb229)
- engine: a close-restarted trailing extreme skips the issuing bar's own high/low under process_orders_on_close (round 10 family Y, winthetrade ema-9-vwap) (d7f8934)
- engine.hpp: the ten-significant-digit money header names round 10 family AB's landing of rule 3 on main (docs only, round 9 family R port) (afc4872)
- engine: rules 2 and 5 judge a true-flat placement and a bare reversal on E_s; an entry that fills flat behind a same-bar strategy.close is not judged (round 9 family R follow-up) (49eb682)
- engine.hpp: rule 5 comment — the judged equity is the equity at the moment the broker judges the order (round 9 family R follow-up, docs only) (c166dff)
- engine: the equity a default market entry is judged against is the equity at the moment the broker judges it -- a from-flat fill uses the cash then (post-close for a close+entry pair), a bare reversal the signal close (round 9 family R follow-up) (5f388d9)
- engine: TradingView's whole-order drop band -- the fill-time margin check on the price scale with the tick-built price, and the raw lot floor (round 9 family R follow-up, OANDA:EURUSD@15) (2ab8bdf)
- engine: TradingView's broker carries money at ten significant digits -- rounded-equity sizing, rounded-cost admission with close-only reversals, the one-contract rounding margin call (round 8 family R, OANDA:EURUSD@15) (f689924)
- engine: a margin-100 long is margin-called one contract where the exact equity falls under the position value rounded to ten significant digits (round 10 family AB, anomaly-equity-mirror BINANCE:ETHUSDT.P@15 hard lane) (5239a36)
- tests: issue #177 — a limit exit whose level carries an FP residue must fill on the exact-touch bar (round 8 family T shape) (00e3a52)
- tests: the chart-close tracker rollback with a calc_on_order_fills recalc on every bar (issue #178, round 9 JOAT aureate) (6a2b96f)
- engine: the chart-close tracker rolls back with the calc_on_order_fills checkpoint (issue #178, JOAT aureate) (c32d3c6)
- engine: ta.atr / ta.tr read the true range against the previous CHART bar's close on a sparse call site (issue #178) (6a4c936)
- Merge commit '33bac5e' into round10/candidate-q (aa8852d)
- corpus: no account-currency FX — every USDT-quoted probe keeps its book in USDT (round 9) (209067a)
- strategy.exit: a re-issue that moves the trail's activation restarts the extreme; a changed offset or an identical re-issue keeps it (round 9 family Z, winthetrade NQ1!) (33bac5e)
- Merge commit 'a38d59e' into round9/famZ-shurben5 (9521716)
- strategy.exit: a trail re-issued for an unfilled from_entry does not restart the live position's extreme (round 9 family Z, shurben5 ETH@15) (cf86ca9)
- engine: an exchange session's last chart bar completes the singleton intraday HTF bucket it opened -- the early-close 12:00 CT hour (round 8 family U, CME_MINI:NQ1! 15m) (2185c9f)
- margin call: a reversal pair's close-time bracket hold cannot feed its own bar's cascade (round 9 family V, narrows M-2a) (8beee80)
- margin call: a dropped reversal's bracket revives at the extreme and fills there (round 7 family M mechanism 2a) (411f53f)
- Merge commit 'b313a4d' into round8/candidate-n (c0d5ede)
- engine: a resting stop/limit level snaps to the price grid within 0.01/pricescale^2 (round 8 family T, NYSE:F@15) (b313a4d)
- Merge commit '9391e34' into round8/candidate-m (b6696da)
- engine: TradingView's same-bar market transaction -- placement-frozen sizing, buys before sells, the strategy.close artifact lot (round 8 family S, CME_MINI:ES1! 15m) (9391e34)
- engine: under the range-start na-warmup epoch a coarser-than-chart W/M built from the chart's own dailies drops the bucket in progress at the epoch (round 8 family P, hungpixi BTC@1D) (2acb592)
- engine: an intraday HTF bucket completes on the chart bar whose close reaches its end, and on an exchange session's early-close bar (round 8 family P) (3db66ac)
- engine: a request.security series starts at the first bucket opening at/after the range start -- the bucket that traded before the run's first chart bar is absent (round 8 family P) (e32eb64)
- engine: a default-sized market order born in a calc_on_order_fills fill recalc is sized at its own fill (round 7 family M, JOAT COOF sizing) (6c1ec7f)
- engine: strategy.risk.max_intraday_loss is TradingView's day-scoped rule -- open P&L at the ticks, the closing fill's own P&L unbooked (round 7 family M, JOAT 02-06) (6bfe1b2)
- engine: a request.security at the chart's timeframe on the split feed reads the chart bars (round 7 family M, amanda vote) (e4641f6)
- engine: the futures D period is the native daily feed's own partition for time("D"), timeframe.change("1D"), ta.change and ta.vwap (round 7 family O) (1a3534b)
- engine: strategy.close(qty_percent) closes max(1 lot, floor(qty x pct)) on integer-lot symbols (round 7 family O) (631200e)
- Merge commit 'ac09de9' into round8/candidate-j (7564a9d)
- Merge remote-tracking branch 'origin/round7/m-admission-36' into round8/candidate-h (a1af33a)
- margin call: the pending-close stand-down needs an UNCONDITIONAL whole close (round 8 regression) (cb819ca)
- Merge remote-tracking branch 'origin/main' into round7/entry-bar-margin-path (35c8595)
- strategy.exit: layered legs armed on a reversal bar bind 50/50 at the fill (round 7 family N, M3) (a38d59e)
- margin call: a declined reversal on an open-slice bar leaves the brackets live; REVIVE-B closes a frozen full leg (round 7 family N, M2) (ac09de9)
- stop-entry admission: a reversal fill is admitted against realized equity plus the position it closes, marked at the fill (round 7 family M mechanism 6) (889cbc7)
- margin call: the default-sized short's entry-price affordability trim no longer needs a commission (round 7 family M mechanism 3) (1fb356d)
- margin call: the SHORT open slice marks at the tick-rounded open (round 7 family N, M1) (fecc314)
- Merge remote-tracking branch 'origin/round7/entry-bar-margin-path' into round7/candidate-g (3da0123)
- margin call: the entry bar is marked on the OHLC path AFTER the fill (round 7 family L) (34774de)
- Merge remote-tracking branch 'origin/round7/default-pct-stop-sizing' into round7/candidate-f (8e21d36)
- engine: a default percent_of_equity stop entry is sized at the tick-snapped level when placed, placement-checked at tick(close) and filled with that quantity at the fill price (round 7, family K default-percent stop sizing) (b59c2da)
- Merge remote-tracking branch 'origin/round7/f15-nearmiss' into round7/candidate-e (8d9ec8d)
- tests: pin the tuple request.security form on the native daily row (registry NYSE:F bars) (7415969)
- trail exits: test the activation against the tick-quantized bar (raw best kept) (c4cbe9f)
- ta.dmi: Pine's tolerant relational (|a-b| <= 1e-10 is equal) for up>down / down>up / up>0 (e76d406)
- Merge remote-tracking branch 'origin/round7/trail-fill-snap' into round7/candidate-d (84b83eb)
- fix: trail fills snap directionally at the open; activation on the tick grid; tolerant trail_points ceil (fa8fd0e)
- Merge remote-tracking branch 'origin/round7/sma-window-arithmetic' into round7/candidate-c (d9e15ab)
- engine: ta.sma / math.sum are TradingView's Kahan-compensated sliding sum (compensated addends in the ring, re-sum when the compensation is swallowed); ta.stoch multiplies first (round 7, family D) (506ca38)
- Merge remote-tracking branch 'origin/round7/hungpixi-weekly' into round7/candidate-b (607e742)
- engine: a coarser lookahead_on request.security leaks its period's final values on the split-feed path too, and a calendar bucket's last-input completion is not a boundary emission (round 7, family I hungpixi weekly) (6a0a86a)
- Merge remote-tracking branch 'origin/round7/market-admission-commission' into round7/candidate-b (d67cbdc)
- engine: a flat all-in market entry is admitted iff floored qty x fill <= equity, commission excluded -- the gap-reject drop now applies with a commission too (round 7 family H, market-entry-admission) (0b80cef)
- Merge remote-tracking branch 'origin/round7/ltf-lookahead-first-bucket' into round7/candidate (f68baed)
- engine: a na input to ta.crossover / crossunder / cross is transparent -- the next two-value bar compares with the last two-value bar (round 7, r7-ltf-lookahead) (48993dc)
- Merge remote-tracking branch 'origin/round7/stop-entry-placement-admission' into round7/candidate (bbfff01)
- engine: the stop-entry fill-time cost basis follows the placement partition -- a default percent_of_equity <= 100 stop keeps KI-62's bar-open basis (round 7, family E ahtisham regression) (03ecf36)
- Merge remote-tracking branch 'origin/round7/ltf-lookahead-first-bucket' into round7/candidate (0838fbe)
- engine: a finer lookahead_on request.security served by the auxiliary feed reads the calling chart bar's FIRST intrabar; ta.crossover / crossunder have no first-valid edge; a boundary-emitted lookahead_on bucket rewrites its slot (round 7, r7-ltf-lookahead) (bcf4436)
- Merge remote-tracking branch 'origin/round7/tv-entry-emit-window' into round7/candidate (2a2efac)
- harness: the emit window opens on the chart-feed bar preceding TradingView's first entry bar -- a Friday / last-bar signal filled after a gap is admitted (round 7, r7-no-trades mechanism 1) (be32f92)
- Merge remote-tracking branch 'origin/round7/stop-entry-placement-admission' into round7/candidate (96c8c89)
- engine: a stop entry is admitted at placement on tick(close) x floored qty vs strategy.equity and at the fill on the fill price, a rejected placement is dropped and cancels the same-id resting order (round 7, family E flatten-margin pin) (09fa1fe)
- engine: a finer-than-script request.security bucket still partial on the calling chart bar's last auxiliary bar is finalized and published there -- TV surfaces the last intrabar at the chart bar's close (round 7, r7-3commas-dca) (0336e34)
- engine: an OTC D/W/M bucket completes on the chart bar whose nominal close reaches the period's -- the 1D chart's early-close daily bar (round 6, engine-d-wm-regress re-pin) (c2032d1)
- engine: a shortened session completes a D/W/M bucket on its last chart bar only where TradingView's session template knows the early close -- OTC streams (OANDA cfd/forex) wait for the nominal close (round 6, engine-d-wm-regress) (6c387b6)
- Merge remote-tracking branch 'origin/main' into round6/candidate2 (b95c766)
- engine: request.security "D" periods are the native daily feed's own spans -- a CME holiday session merges into the next trade date's bar (round 6, es-daily-timing) (b29152c)
- engine: W/M request.security buckets from the native daily feed; D/W/M complete on the period's actual last chart bar (round 6, wm-security-buckets) (f725bc3)
Prebuilt libraries
Per-arch static-lib + headers tarballs are attached below (C ABI).
For the full PineScript -> backtest image, use ghcr.io/pineforge-4pass/pineforge-release.