PyneCore v6.8.8 released — stateful ta builtin variables now advance once per bar like…

Fixes

  • ta.accdist, ta.nvi, ta.obv, ta.pvi, ta.pvt, ta.wad and ta.vwap are evaluated once per bar instead of once per reference site, so a read inside an if matches an unconditional one
  • The hoist follows TradingView’s measured scope rules: the engine-global set is rewired inside user functions too, ta.vwap/ta.accdist only in main’s body, and in libraries the line is drawn at export
  • ta.tr() inside a conditional branch read the previous call’s close instead of close[1]
  • array.every() returns false for an empty array, matching TradingView
  • Partial date strings are accepted: "2025", "2025-06" (and its / and . spellings), "Jan 2025"
  • A Series parameter of main — what input(close, ...) compiles to — was value-passed into a nested function, so src[i] there raised 'float' object is not subscriptable
  • A library file run directly as the script executed its main twice per bar
  • Broker: a pyramid parent consumed by its own bracket fill is retired instead of stranding its exit intent; replayed partial bracket legs with no parent in the run drop per intent instead of aborting the sync loop; a rejected exit modify over a parent with no open trade retires the stale tracking
  • Broker: native fail-safe state transitions, DEGRADED entry-gate engagement and external-edit detection are logged unconditionally, not only through an event sink

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

PyneComp v6.0.58 — converting older Pine scripts with multi-line functions no longer produces a script that fails to compile

Fixes

  • Converting a v4 or v5 script whose multi-line function body starts with a comment line produced output that Pine rejected — the body lines kept an indentation the language reads as a continuation of the function header. The comment is now skipped when the body’s indentation is determined, so the converted function comes out correct.
  • A one-line function body written as a padded parenthesized expression (f() => ( x < (0 - b) )) lost only the parentheses and kept the space inside them, leaving the line one column off and again breaking the parse. Both the comparison and the non-comparison form now come out at the right indentation, matching what TradingView’s own converter emits.