PyneCore v6.8.0 released — most of the ta.* rolling machines, the math.sum accumulator,…

Features

  • Pine’s tolerant float comparison (absolute 1e-10 at every magnitude) now applies to comparison operators in Pyne code and to the builtins measured to compare tolerantly
  • OHLCV v2 stores the symbol’s tick grid in the header; delta-decoded prices snap back onto it, so 65399.99 no longer reads as 65399.990000000224
  • Atomic file publication and file locking now work on Windows

Fixes

  • math.sum, ta.sma, ta.ema, ta.rma, ta.wma, ta.hma, ta.variance, ta.stdev, ta.correlation, ta.linreg, ta.mfi, ta.stoch, ta.rci, ta.percentile_*, ta.change and math.avg are bit-exact with TradingView; ta.atr, ta.rsi, ta.macd, ta.tsi and ta.dmi follow
  • str.tostring and str.format print TradingView’s digits
  • ta.cross no longer short-circuits, so a crossunder right after a crossover is not missed
  • A limit order the bar gaps past no longer takes market slippage (#74)
  • strategy.position_avg_price re-weights correctly when pyramiding, and the cash_per_order commission reaches the closed trade’s own profit
  • Volume from a v2 feed is used as served instead of being truncated by legacy float32 clean-up, which had diverged ta.vwap

Performance

  • ta.wma, ta.linreg and ta.dev about 5x cheaper per bar at length 500
  • ta.percentile_nearest_rank and ta.percentile_linear_interpolation 2.5x-100x faster
  • One ta.sma call: 1811 ns -> 686 ns

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