PyneCore v6.5.6 released — a broad TradingView-parity batch: strategy margin/exit sizing,…

Fixes

  • Sub-lot margin calls now trim exactly one whole contract capped by position size, matching TradingView both at the bar open and intrabar.
  • strategy.exit qty/qty_percent legs are capped at the unreserved entry remainder and create no order when nothing is left, matching TV’s first-come-first-served leg reservation.
  • strategy.close/close_all(immediately=true) fills are deferred to after the script body, so position_size-gated plots no longer read the flat position one bar early (P&L bit-identical, only timing moves).
  • Gap-compact a same-TF cross-symbol request.security() child (e.g. TVC:US10Y@30 on BINANCE:BTCUSDT@30), freezing ta.ema/ta.atr state between real bars like TradingView.
  • Rolling ta.* (sma, wma, stdev, variance, correlation, change, roc, …) no longer collapse to na for length > 500.
  • Tuple-unpacked series (a, b = f()) and parent-scope series indexed only from a nested function now keep correct per-bar history.
  • session.islastbar_regular/islastbar now fire on 24/7 markets; a "0000-0000" session spans the full day; parse_datestring accepts seconds-less ISO and space-separated numeric dates.
  • request.seed() returns na (data unavailable to PyneCore); request.financial() honors ignore_invalid_symbol.
  • label.set_textcolor parameter renamed color -> textcolor and str.tostring fmt -> format to match Pine v6, fixing TypeError on named calls.
  • math.sum sliding-window resync and array.covariance Welford co-moment restore bit-exact TradingView identities.

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