PyneCore v6.8.9 released — closes the remaining gaps between PyneCore's numbers and…

Features

  • Constant expressions now fold at parse time with an fdlibm port (sin, cos, exp, asin, acos) and series-fed math.* runs an Intel-LIBM port at runtime — matching TradingView’s two math paths.
  • New PYNE_ALLOW_LOOKAHEAD measurement switch restores TradingView’s future-leaks so a script can be run both ways to detect repainting — a measurement switch, never a trading one.
  • Added calc_on_every_history_tick; a mid-bar body pass now sees the bar truncated to its own point instead of the completed bar, closing the calc_on_order_fills leak.
  • Broker: reversals now dispatch a symbol-wide close-then-open on every venue mode instead of folding into one oversized order.
  • Added strategy.position_entry_name (id of the oldest still-open entry, na when flat).

Fixes

  • Conditionally called ta.highest/ta.lowest now reproduce TradingView’s window buffer bit-exactly — “Leledc levels (IS)” (28302 bars) goes from 0.9536 to an exact match on every column.
  • Historical barmerge.lookahead_on no longer leaks the containing HTF bar’s final close; security(sym, "D", close[1], lookahead_on) stays TradingView-exact.
  • strategy.direction.all is now honoured (it previously rejected every entry).
  • ta.crossover/ta.crossunder follow the measured cross-state rule, so an exact-equality plateau no longer arms a cross.
  • Broker: hardened the reversal protocol against venue glitches (phantom opposite position, mislabelled close fill, retry storm on a declined close), compacted unsellable spot fee dust, and sized the partial-fill bracket amend from the fee-netted entry fill.

Full release notes: https://github.com/PyneSys/pynecore/releases/tag/v6.8.9