PineForge unreleased
Deterministic PineScript v6 backtest runtime — C ABI reference
Loading...
Searching...
No Matches
pineforge::metrics::TradeStatsAccumulator Class Reference

Report-only O(1) trade fold (DESIGN 3.3:515-533,547-553). More...

#include <metrics_stream.hpp>

Public Member Functions

 TradeStatsAccumulator (TradeFilter filter, double initial_capital)
 
 ~TradeStatsAccumulator ()
 
 TradeStatsAccumulator (const TradeStatsAccumulator &)
 
TradeStatsAccumulator & operator= (const TradeStatsAccumulator &)
 
void fold (const TradeC &trade)
 
pf_trade_stats_t finish () const
 

Detailed Description

Report-only O(1) trade fold (DESIGN 3.3:515-533,547-553).

One accumulator per existing TradeFilter ALL/LONG/SHORT. Initialization and filtering match compute_trade_stats; fold is exactly its loop body, finish exactly its tail. Sums are plain left folds from 0.0 in row order, with the existing NaN, positive-loss and even-trade conventions; no sort, compensation or reuse of the engine's differently seeded running counters.

Fold sealed rows first, then finish a COPY with the unsealed tail and the final, re-marked range-end rows (3.3:547-551). Copies preserve the prefix; finish() never consumes or mutates it, so repeated report reads agree. The implementations replace the old loop only in L7a; none are supplied here. Report state is added to the broker hash waiver list by that lane, not silently treated as new decision state (3.3:552-553).

Definition at line 34 of file metrics_stream.hpp.

Constructor & Destructor Documentation

◆ TradeStatsAccumulator() [1/2]

pineforge::metrics::TradeStatsAccumulator::TradeStatsAccumulator ( TradeFilter filter,
double initial_capital )

Referenced by operator=(), and TradeStatsAccumulator().

◆ ~TradeStatsAccumulator()

pineforge::metrics::TradeStatsAccumulator::~TradeStatsAccumulator ( )

◆ TradeStatsAccumulator() [2/2]

pineforge::metrics::TradeStatsAccumulator::TradeStatsAccumulator ( const TradeStatsAccumulator & )

Member Function Documentation

◆ operator=()

TradeStatsAccumulator & pineforge::metrics::TradeStatsAccumulator::operator= ( const TradeStatsAccumulator & )

◆ fold()

void pineforge::metrics::TradeStatsAccumulator::fold ( const TradeC & trade)

◆ finish()

pf_trade_stats_t pineforge::metrics::TradeStatsAccumulator::finish ( ) const

The documentation for this class was generated from the following file: