PyneCore v6.8.4 released — computed ta lengths now truncate exactly like TradingView,…

Fixes

  • A computed length such as R / 8 is now truncated where an integer is required, matching TradingView: ta.cog, ta.highest, ta.linreg, ta.lowest, ta.pivothigh, ta.pivotlow, ta.sma and ta.valuewhen were affected, and ta.sma was additionally dividing a truncated window by the untruncated length.
  • A reconnect hook that fails during a live run is retried before streams resume, and stays quarantined until the handshake succeeds — including across market close and reopen.
  • A nested call inside a callee chain (f().g(), a[f()].g()) now gets its own call site, and a callee expression that runs code is evaluated once instead of twice.
  • A stateful call inside a comprehension iterable no longer emits code Python rejects.
  • flush() on the CSV writer waits for the rows to actually reach the file, close(timeout=...) raises TimeoutError instead of hanging, and a dying worker releases its waiters.
  • CCXTProvider lost a broken duplicate helper that referenced an undefined name.

Features

  • New --no-plot switch for pyne run, for live runs where the plot CSV would grow without bound.

Performance

  • ta.dev, ta.linreg, ta.wma and through them ta.cci and ta.hma read their window without a per-bar rebind: 23.2% faster over 525,600 bars on a script combining them, byte-identical output.
  • Overload dispatch, per-bar library writes and series appends: a further 1.8-3.8% on the same benchmark, output unchanged.

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