Skip to content

Releases: blechturm/ledgr

v0.2.1.0 Equity Corporate Actions and Strategy Workflow

Choose a tag to compare

@blechturm blechturm released this 01 Oct 14:39

ledgr 0.2.1.0 models equity corporate actions from sealed point-in-time facts, gives strategies one helper pipeline that behaves the same in dense and availability-aware runs, prints results on one screen, and reads CSV files through one path.

Highlights

  • Corporate-action facts (dividends, acquisitions, spin-offs) are sealed into the snapshot with their dates, completeness and provenance. Gross cash distributions post as CASHFLOW events, and positions ended by a corporate action close through a new DISPOSITION event. A declared policy (ledgr_corporate_actions()) governs the treatment, and ledgr_corporate_action_summary() reports what was modeled.
  • Snapshots declare their price basis ("split_adjusted" or "distribution_adjusted"), which is part of experiment identity.
  • The strategy helper pipeline (signal, selection, target) scores the full universe and carries eligibility explicitly. Trusted strategy recovery (ledgr_run_strategy(trust = TRUE)) can rerun strategies that use ledgr's helpers.
  • print(bt) fits on one screen, with the corporate-action and price-basis lines; summary(bt) shows the metrics first. ledgr_run_completion() reports whether a run completed and, if not, why.
  • ledgr_snapshot_from_csv() is the single CSV path, read by DuckDB.

Upgrading

  • Requires R 4.6.0 or later and duckdb 1.5.6 or later.
  • Breaking renames and removals: ctx$vec$positions becomes ctx$vec$position; ledgr_select_argmax()/argmin() become ledgr_rule_argmax()/argmin(); ledgr_pulse_snapshot(initial_cash = ) becomes cash; the CSV importers are replaced by ledgr_snapshot_from_csv(). New experiments record a corporate-action policy, so config hashes differ from 0.2.0.1. See NEWS.md for the full list.

Not claimed

Corporate actions are not complete in this release. It does not claim corporate-action completeness, broker-exact settlement, net cash, tax correctness or exact recipient exposure. Exact quantity settlement, such as new shares from a split or a spin-off, is not modeled, and bars declared distribution-adjusted are refused as execution bars.

Windows and Ubuntu checks, coverage and pkgdown passed on the release branch, on main and on the release tag. Full details are in NEWS.md.

v0.2.0.1 Availability Performance

Choose a tag to compare

@blechturm blechturm released this 18 Sep 22:22

This release productionizes the availability-performance work: a prepared point-in-time provider, typed diagnostic blocks, linear event buffers, prepared fold-time valuation, linear seal validators, and atomic resumed-run equity finalization. It also corrects the peer-benchmark boundary so memory-backed rows use public sweep workflows. Compatibility: ledgr now requires collapse 2.1.8 or later; there is no 2.1.7 fallback. No public API, schema, hash, run-identity, accounting-policy, or availability-policy contract changes. On the accepted full fixture, the availability path measured 119.11 seconds cold and a 17.55-second warm median; the corrected public canonical and compiled memory sweeps measured 30.96 and 16.63 seconds, while durable ledgr measured 58.23 seconds. These are fixture-specific records, not universal speed claims. Windows and Ubuntu checks, pkgdown, and coverage passed on the release branch, main, and the release tag. Full details are in NEWS.md and the v0.2.0.1 release closeout.

v0.2.0.0 Point-in-Time Asset Availability

Choose a tag to compare

@blechturm blechturm released this 14 Sep 06:12
cb3047b

This release adds ledgr's first point-in-time asset-availability workflow: dated membership and status facts, complete session clocks, dynamic member-plus-held universes, strict gap handling, stale-mark valuation, controlled incomplete outcomes, and an executable survivorship-bias article. It also hardens the core API with eager fill reads, corrected reversal-fee allocation, durable run locators, restored sweep-review lineage, and a mechanically split run coordinator. Compatibility: corrected availability timing and new schema and identity versions mean affected runs may have different pulses, fills, and hashes; rerun them before equivalence comparisons. Legacy retained artifacts remain inspectable under their recorded conventions. Windows and Ubuntu package checks, pkgdown, and the 85.9 percent coverage gate passed. Full details are in NEWS.md and the v0.2.0.0 release closeout.

v0.1.9.7 Selection Integrity and Eligibility

Choose a tag to compare

@blechturm blechturm released this 06 Sep 12:29

ledgr v0.1.9.7 turns selection-integrity diagnostics into explicit, inspectable eligibility evidence without allowing filtering to become ranking, selection, or promotion.

Highlights:

  • Adds ledgr_return_panel() as a source-neutral input for PBO/CSCV, MinTRL, DSR, and effective-trial diagnostics, with a deterministic evidence-only panel_hash.
  • Adds opt-in retained closed-trade evidence through ledgr_sweep_trades().
  • Adds classed, serializable, hashable business objectives and seven eligibility criteria, plus ledgr_sweep_filter(), whose default output retains every evaluated candidate and criterion result.
  • Adds native K-Ratio and a warning-only guard when intraday observations are paired with daily annualization assumptions.
  • Rebuilds the Selection Integrity article around visible inputs, executed cautionary examples, interpretation, and limits.

Compatibility:

  • The pre-release diagnostic names were simplified with no aliases: ledgr_sweep_pbo() -> ledgr_pbo(), ledgr_sweep_min_track_record() -> ledgr_min_track_record(), ledgr_sweep_dsr() -> ledgr_dsr(), and ledgr_sweep_cluster() -> ledgr_effective_trials().
  • Diagnostics accept a ledgr_return_panel or retained sweep; raw matrices are rejected. Construct a panel explicitly with ledgr_return_panel().

Eligibility remains evidence only. This release does not add automatic winner selection, promotion, objective-filtered walk-forward identity, or a future-profitability guarantee.

v0.1.9.6 Validation Substrate And Selection Integrity

Choose a tag to compare

@blechturm blechturm released this 16 Jun 16:16

v0.1.9.6 ships the validation substrate and evidence-only selection-integrity diagnostics: canonical single-run returns, retained-return panels/projections, native PBO/CSCV after the spike, MinTRL, DSR/effective-trial clustering, and the Selection Integrity article. It also records the intraday-readiness audit and current-surface peer benchmark redo. Business-objective filtering, purging/embargo/CPCV, intraday runtime, public benchmark claims, and compiled spot-FIFO default changes remain deferred.

v0.1.9.5 Naming and teaching consolidation

Choose a tag to compare

@blechturm blechturm released this 13 Jun 22:56

v0.1.9.5 consolidates the public API naming surface after the cost, sweep persistence, target-risk, and walk-forward feature arc. It adds the ledgr_candidate() extraction generic, sweep/store review helpers, refreshed teaching articles, maintainer manual traces, and scheduled hardening from the v0.1.9.4 audits. Validation-toolkit statistics, paper/live trading, OMS behavior, and default compiled execution remain future work.

v0.1.9.4 Walk-forward Evaluation

Choose a tag to compare

@blechturm blechturm released this 11 Jun 22:20
72ad06c

v0.1.9.4 ships the first walk-forward evaluation surface: calendar-time fold definitions, train-window scalar selection, selected-candidate test runs, walk-forward session identity, compact persistence, inspection helpers, degradation table output, and promotion-ready candidate extraction. Cost identity from v0.1.9.1, sweep retention from v0.1.9.2, and risk-chain identity from v0.1.9.3 are now wired into the walk-forward spine. Selection-integrity diagnostics, PBO/CSCV/CPCV, benchmark-relative metrics, all-candidate test retention, OMS/paper/live behavior, and ML-first tooling remain deliberately deferred.

v0.1.9.3

Choose a tag to compare

@blechturm blechturm released this 09 Jun 22:39
7ac6dda

v0.1.9.3 ships the first target-risk layer for ledgr.\n\nHighlights:\n- Adds classed target-risk constructors: ledgr_risk_none(), ledgr_risk_chain(), ledgr_risk_long_only(), and ledgr_risk_max_weight().\n- Threads risk identity through config hashes, committed runs, sweeps, saved sweeps, promotion context, and reopened candidates via risk_chain_hash and risk_plan_json.\n- Inserts the bounded risk slot between strategy target validation and fill timing while preserving one shared fold core.\n- Adds documentation, examples, NEWS, pkgdown reference indexing, and the v0.1.9.3 release closeout.\n\nNon-scope remains explicit: no affordability enforcement, liquidity/capacity policy, OMS behavior, broker-grade margin/shorting, arbitrary risk callbacks, walk-forward implementation, or compiled-core architecture changes.\n\nVerification: local release gate passed; branch CI, PR CI, main CI, pkgdown deploy, and tag CI are green.

v0.1.9.2

Choose a tag to compare

@blechturm blechturm released this 08 Jun 01:59
654c049

v0.1.9.2 ships sweep artifact persistence.

Highlights:

  • Durable saved-sweep artifacts via ledgr_sweep_save(), ledgr_sweep_open(), ledgr_sweep_list(), and ledgr_sweep_info().
  • Optional retained net equity/return series for completed sweep candidates via ledgr_sweep_retention(), ledgr_sweep_returns(), and ledgr_sweep_returns_wide().
  • Reopened-sweep candidate compatibility and promotion by re-execution from the reproduction key.
  • Public sweep row identity now uses candidate_id and candidate_row.
  • Documentation, NEWS, pkgdown reference indexing, release closeout, and v0.1.9.2 planning records are updated.

Non-scope remains explicit: no automatic ranking, benchmark-relative diagnostics, signal decay, gross-vs-net attribution, schema migration machinery, or walk-forward integration in this packet.

Release validation:

  • Local full testthat, README cold-start, R CMD build/check, coverage, pkgdown, WSL schema/persistence smoke, and stale-claim scans passed.
  • Branch CI, PR CI, main CI, main pkgdown, and tag CI are green.

v0.1.9.1 Cost API

Choose a tag to compare

@blechturm blechturm released this 06 Jun 00:36
6264be7

ledgr v0.1.9.1 ships the first public transaction-cost model API.

Highlights:

  • Added classed ledgr_cost_*() constructors, ordered ledgr_cost_chain() composition, cost inspection helpers, explicit ledgr_timing_next_open(), and deterministic cost identity through cost_model_hash plus cost_plan_json.
  • Breaking pre-CRAN compatibility change: legacy fill_model inputs are replaced by explicit timing_model plus required cost_model; zero-cost runs now use ledgr_cost_zero() intentionally.
  • Fixed bounded identity issues from the v0.1.8.11 auditr review: config hashes no longer depend on DuckDB store path, and alias-map identity is separated from concrete feature-set identity.
  • Refreshed cost/timing documentation, runnable examples, condition-class docs, disclaimer resolution, and sweep docs that keep cost models fixed at the experiment level for v1.

Release-gate note: Ubuntu coverage initially exposed covr trace-shard instability around mirai-backed parallel sweep tests. Normal CI still runs those tests; coverage instrumentation now skips only those worker-backed cases. Branch, main, and tag CI are green for the final tag commit.