| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ta4j-core-0.23.0-javadoc.jar | 2026-07-13 | 5.3 MB | |
| ta4j-core-0.23.0-sources.jar | 2026-07-13 | 1.0 MB | |
| ta4j-core-0.23.0-tests.jar | 2026-07-13 | 2.4 MB | |
| ta4j-core-0.23.0.jar | 2026-07-13 | 1.8 MB | |
| ta4j-examples-0.23.0-javadoc.jar | 2026-07-13 | 940.2 kB | |
| ta4j-examples-0.23.0-sources.jar | 2026-07-13 | 2.9 MB | |
| ta4j-examples-0.23.0.jar | 2026-07-13 | 3.4 MB | |
| 0.23.0 source code.tar.gz | 2026-07-13 | 5.7 MB | |
| 0.23.0 source code.zip | 2026-07-13 | 6.8 MB | |
| README.md | 2026-07-13 | 5.6 kB | |
| Totals: 10 Items | 30.3 MB | 4 | |
0.23.0 (2026-07-13)
Added
- Causal swing detection for sharp, rounded, and consensus-confirmed turns: Added
SwingDetectors.slopeChange(window)with balanced persistence and half-ATR filtering plusSwingDetectors.consensus(...)for tolerant quorum agreement, while ZigZag detection now locates pivots from intrabar highs/lows, confirms reversals from closes with pivot-anchored thresholds, derives matching high/low swing sources directly from state, and resolves fractal plateaus to one deterministic midpoint. - CF-289: Forecast predictions for forward price estimates: Added a ta4j-core forecast indicator layer with
Forecastsummaries, aReturnIndicatorsemantic contract, constructor-first EWMA and Monte Carlo price forecasts, explicit return projections for advanced tuning,forecast.state,forecast.projection, andforecast.adapterssubpackages for framework contracts and conversion bridges, non-throwing forecast quantile lookup withhasQuantile(...), and projection methods for quantiles, medians, means, and standard deviations as regularIndicator<Num>values. - EW snapshots can publish five-outlook live macro reports: The manual
EW Snapshot Analysisworkflow now runsElliottWavePresetDemofor configurable daily instruments and exchanges, writes dynamic run summaries plus embedded-chart HTML, and uploads charts, scenario-outlook JSON, cached provider responses, and the full demo log for public monitoring. - Dynamic backtest sizing: You can now pass a
PositionSizerintoBarSeriesManager,BacktestExecutor, top-K strategy ranking, and walk-forward execution to size each entry from the signal bar while exits automatically close the currently open amount. Starter factories cover fixed units, realized-balance max sizing with entry-fee awareness, and Kelly sizing with optional fractional or levered coefficients (CF-90). - Pluggable execution-target estimation for dynamic sizing: Added
TradeExecutionModel#estimateEntryTarget(...)so custom execution models can provide sizing-aware fill timing and pricing. Dynamic sizing now defaults to conservative next-open estimation for models that do not override this API, and falls back safely when no target is resolvable to keep runs defined.
Changed
- Retained bar series can resume at their absolute index:
BaseBarSeriesBuilderandConcurrentBarSeriesBuildernow acceptwithBeginIndex(int), allowing persisted windows to append, prune, create subseries, and serialize without rebasing their surviving bars to zero;BarSeries.clear()resets a restored series for intentional reinitialization while preserving its configuration. - Finite
Numvalidation is reusable across indicators: AddedNum.isFinite(...)for indicator-safe checks that reject null, NaN, and primitive-backed infinities without misclassifying finite high-precisionDecimalNumvalues whosedoubleValue()overflows; internal indicator code now uses this shared contract directly, andIndicatorUtils.isInvalid(...)is deprecated as a compatibility shim. - Elliott anchor calibration is harness-only: Long BTC anchor calibration now lives behind
ElliottWaveAnchorCalibrationHarnessas a dedicated CLI/job entrypoint, while the remaining harness unit tests exercise registry, windowing, report, and artifact contracts with synthetic inputs. Active docs warn that full anchor calibration can run for 8+ hours. - Daily live Elliott preset runs now use the generic macro snapshot path:
ElliottWavePresetDemoroutes any daily live instrument through the macro-cycle preset so non-BTC symbols receive the same base case plus four alternate outlooks with instrument-aware filenames and scenario-outlook JSON. - EW snapshot outputs are easier to consume from automation:
ElliottWavePresetDemonow has help/status-code handling for invalid CLI usage, and live macro scenario JSON includes portable chart and report file names for artifact viewers that do not preserve absolute paths. - Quiet Maven verify stays focused on failures:
ta4j-coretest logging now keeps intentionalTimeBarBuildermissing-bar warnings and invalidReturnRepresentationparse warnings out ofmvn verify -qoutput while preserving explicit log-capture assertions for those expected paths. - Cached indicator stress coverage is less scheduler-sensitive:
CachedIndicatorTestnow waits for a bounded minimum-read signal before ending the concurrent mutation phase, so the full-build gate continues to exercise cache invalidation under contention without failing because reader threads were scheduled late.
Fixed
- Day-of-week rule descriptors are deterministic:
DayOfWeekRulenow canonicalizes its configured enum set so descriptor and JSON serialization round trips cannot fail or change output when hash iteration order varies between runs. - Source position labels remain accurate in isolated chart renders: Trading-record chart callers can now provide a 1-based source position start, so position bands and buy/sell annotations retain their original ordinal when a focused chart contains only a later source position (CF-299).
- CF-207/208/209/210/211/236 SpotBugs closure: Cleared the historical SpotBugs baseline across constructor safety, cache concurrency, representation ownership, examples IO/reporting, serialization, indicator/rule/backtest accessors, and Elliott analysis paths; Maven
verify, standalone SpotBugs scans, and GitHub CI now run SpotBugs without an exclude filter and fail on new findings.