PyneCore v6.8.12 released — the strategy statistics surface is complete and the equity…

Features

  • The last missing statistics variables are in: strategy.avg_trade_percent, avg_winning_trade_percent, avg_losing_trade_percent, grossprofit_percent, grossloss_percent, max_contracts_held_all/long/short, max_runup_percent, closedtrades.first_index
  • New strategy.default_entry_qty() — the quantity a default-sized entry would buy at a given fill price, snapped to the tick and lot grids

Fixes

  • strategy.max_drawdown and strategy.max_runup rebuilt on the measured law: gross mark, realized-equity high-water anchor, no whole-bar range for a leg closed mid-bar
  • A closed trade’s profit_percent, max_drawdown_percent and max_runup_percent divide by the total entry cost, and the excursion is measured from the trade’s own entry price; strategy.avg_losing_trade divides the published gross loss
  • Dispatched builtin machines (ta.highest, ta.lowest, the percentile machines) no longer lose their window on a discarded re-execution — under calc_on_order_fills that was every fill bar
  • math.round at precision 0 no longer applies the decimal tie tolerance, matching TradingView’s rounding
  • ta.pivothigh() / ta.pivotlow() accept a zero leftbars / rightbars, as TradingView does
  • OHLC relation check got a magnitude-scaled ULP slack for TradingView spread symbols
  • Broker: a venue OCA auto-cancel of a bracket leg arriving ahead of the sibling leg’s fill no longer quarantines the sync engine

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