| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ta4j-core-0.24.0-javadoc.jar | 2026-08-08 | 5.7 MB | |
| ta4j-core-0.24.0-sources.jar | 2026-08-08 | 1.1 MB | |
| ta4j-core-0.24.0-tests.jar | 2026-08-08 | 2.7 MB | |
| ta4j-core-0.24.0.jar | 2026-08-08 | 2.1 MB | |
| ta4j-examples-0.24.0-javadoc.jar | 2026-08-08 | 943.8 kB | |
| ta4j-examples-0.24.0-sources.jar | 2026-08-08 | 2.9 MB | |
| ta4j-examples-0.24.0.jar | 2026-08-08 | 3.4 MB | |
| 0.24.0 source code.tar.gz | 2026-08-08 | 6.0 MB | |
| 0.24.0 source code.zip | 2026-08-08 | 7.1 MB | |
| README.md | 2026-08-08 | 15.6 kB | |
| Totals: 10 Items | 32.0 MB | 5 | |
0.24.0 (2026-08-08)
Added
- Dynamic and forecast-ready Kalman indicators:
KalmanFilterIndicatornow accepts causal per-bar process and measurement noise throughKalmanNoiseIndicatorwhile preserving its same-bar smoothing API and legacy serialized descriptors. New constant-velocityKinematicKalmanFilterIndicatorstate can be projected throughforecast()orforecast(horizon)into analytic Gaussian price distributions that compose with forecast point adapters and rolling conformal calibration.KinematicKalmanForecastExampledemonstrates ATR- and CHOP-derived dynamic noise, shared multi-horizon forecasts, and conformal evaluation over an ossified S&P 500 weekly series. - Reusable rolling Hurst estimation: Added
HurstExponentIndicatorfor close prices or any numeric indicator, with a default bounded ten-lag log-variogram regression, explicit maximum-lag tuning, causal full-window warm-up, and dimensionless[0, 1]output.RoughVolatilityForecastStateIndicatornow composes this first-class statistic while retaining its stricter rough-volatility bounds. - Unified recent highs/lows with a canonical default: Added
RecentSwingIndicatorspaired factories for fractal, ATR ZigZag, adaptive ZigZag, slope-change, prominence, and consensus methods. The canonical default is an OHLC-aware ATR(14) ZigZag, while a separate status-aware point view exposes forming terminal extremes without changing confirmed-only indicator semantics. New bounded prominence indicators and detector support identify structurally salient peaks/troughs, swing detectors/configuration records live underorg.ta4j.core.analysis.elliott.swinginstead of the first-class indicator namespace, and ossified Coinbase ETH/USD fixtures compare every method from five-minute through daily bars. - Concise strategy JSON authoring with
Strategy.fromJson(...)(CF-113): You can now hand ta4j an opt-inversion: 2strategy envelope instead of writing the full descriptor tree, which makes quick SMA/EMA crossover setups, RSI threshold rules, stop-gain/stop-loss exits, and short-starting strategies much easier to generate or edit. The bounded shorthand acceptsentryRule/exitRule,AndRule/OrRule, shorthand indicators likeClosePrice,SMA(...),EMA(...), andRSI(...), then validates inputs strictly and normalizes everything back to canonical descriptor JSON internally. - Unified named-asset shorthand for v2 serialization: Added immutable
NamedAssetRegistry/NamedAssetProviderAPIs and compact function-call shorthand for indicators, rules, strategies, and analysis criteria. Existing canonicaltoJson()output remains unchanged, while opt-in helpers such asStrategy#toCompactJson(),Strategy#fromExpression(...),Rule#fromExpression(...),Indicator#fromExpression(...), andAnalysisCriterion#fromExpression(...)support compact authoring and CLI-friendly criterion names likeNetProfitandSharpeRatio. - Lossless analysis criterion descriptors:
AnalysisCriterion#toJson()now preserves supported constructor state such as return representation and boolean flags, and rejects unsupported stateful criteria instead of silently serializing them as default instances. - Bayesian online change-point return state: Added
OnlineChangePointForecastStateIndicatorwith constructor-first defaults, canonical constant-hazard run-length inference, Normal-Inverse-Gamma/Student-t updates in log space, deterministic typed posterior summaries, reset-aware warm-up, and window-qualified feature schemas for analog composition. Its operator-facingrecentChangeProbabilitycarries the configured recent run-length window instead of mislabeling the constant reset hazard as a responsive signal. - Trade-sampled risk ratios and borrowing-cost side selection:
SamplingFrequency.TRADEnow letsSharpeRatioCriterionandSortinoRatioCriterionsample one return per included position interval, andLinearBorrowingCostModelcan apply borrowing costs to short positions, long positions, or both sides while keeping its existing short-only default. - Rough-volatility return state: Added
RoughVolatilityForecastStateIndicatorwith constructor-first defaults, shared EWMA return moments, bounded log-variogram Hurst estimation, log-volatility vol-of-vol, deterministic cumulative horizon variances, and a fixed representation-aware feature schema for analog composition. The accompanying BTC daily example compares default EWMA and rough state without making performance claims. - State-conditioned analog and rolling conformal forecasts: Added
AnalogReturnProjectionIndicatorwith matured-neighbor guards, training-only feature standardization, deterministic weighted empirical summaries, andRollingConformalForecastProjectionIndicatorfor finite-sample tail calibration over generic realized values or semantically typed cumulative log returns. Calibration refuses tail-less base forecasts rather than reporting a stable no-op, and a runnable ossified BTC daily example demonstrates the paired workflow. - Causal LPPL residuals expose a regular numeric indicator and rich fit diagnostics: Added
LPPLResidualIndicatorfor normalized one-step log-price residuals andLPPLFitIndicatorfor inspecting and reusing the underlying LPPLS calibration. Fits end before the evaluated bar to avoid look-ahead, invalid or unqualified models returnNaN, finite high-precision prices remain supported, and immutableLPPLCalibrationProfiletuning keeps advanced construction readable. - Forecast distributions now carry explicit support provenance: Added
ForecastSupportfor unavailable, empirical, and named analytic distributions, a validated summary builder, safe affine transforms, and representation-aware feature schemas with allocation-free extraction. - Return estimators share one validated moment component: Added minimal
ForecastStatelifecycle, composableReturnMomentStateandReturnMoments, canonical variance-derived volatility, and typedReturnForecastStateIndicator<S>composition for EWMA and richer state models. - Summary-only price conversion is explicit: Added
LognormalApproximationPriceForecastIndicatorfor operators who intentionally want one coherent moment-matched analytic price distribution.
Removed
- 0.24.0 deprecation cleanup: Removed the scheduled compatibility shims for the moved drawdown criteria,
MACDVIndicator, and legacy Gson JSON serialization types. Useorg.ta4j.core.criteria.drawdown.*,org.ta4j.core.indicators.macd.MACDVIndicator, andJsonFileBarSeriesDataSourceinstead.
Changed
- Snapshot verification bypasses stale CDN metadata: The isolated Maven consumer now fetches cache-busted timestamped coordinates directly from the snapshot repository before resolving artifacts, so post-deploy verification compares the newly published build instead of a cached older
-SNAPSHOTmapping. - AI release scheduling now uses direct OpenAI Responses API inference:
release-scheduler.ymlno longer depends on the retired GitHub Models service; it preflights the exactgpt-5.6-lunamodel, sends the existing SemVer dossier with reasoning efforthigh, disables provider-side response storage, omits reasoning output from audit artifacts, and records provider-aware request and failure diagnostics while preserving probe/full/skip and dry-run safety. Manual dispatches now default toaiMode=fullafter the validated probe rollout. - Test runtime guidance now protects the contributor feedback loop: Maintainers are directed to track the Surefire top five, iterate with focused module tests without repeated
clean, keepBarSeriesand fold fixtures minimal, reuse immutable parsed data, and retain only one exhaustive sweep per behavior. - CHOP uses explicit output representation without breaking legacy scales:
ChopIndicatornow defaults to conventional percentage output, acceptsReturnRepresentation.DECIMALorPERCENTAGE, uses composed rolling ATR totals and nativeNumlogarithms, and returns unavailable values for incomplete or undefined windows. Its integer-scale constructor remains as a deprecated compatibility adapter, including arbitrary custom scales and lossless descriptor/JSON reconstruction. - Intraday Elliott trading now requires empirical precedent: Added a causal nearest-analog Elliott phase forecast for one-minute and five-minute bars that remains unstable until prior bullish impulse structures exist. The
HighRewardElliottWaveStrategyexample now enters only at confirmed wave 1/2/4 turns, exits at wave 1/3/5 peaks or through a fixed/target/trailing/ATR/timeout protection stack, and removes its unused legacy serialized-label, direction, oscillator, and risk/reward interfaces. - Elliott Wave analysis now supports live intraday swing counts:
ElliottLogicProfile.INTRADAY_LIVEuses causal ATR-scaled ZigZag detection without macro percentage-of-history or percentage-of-price gates, andElliottAnalysisResult.WaveCountseparates confirmed waves from the optional forming terminal wave.ElliottWaveAnalysisRunner.Builder#includeProvisionalTerminalSwing(false)provides confirmed-only scenario generation for trading rules, while result helpers identify scenarios that use the compatible forming-wave projection. The high-reward Elliott example now reuses the core scenario indicator, acceptsSUB_MINUETTEstrategy configuration, and no longer discards minute-bar swings behind its former 10%-of-price threshold. - Forecast API corrected before further state-estimation phases:
Forecastis now Num-only,map(...)and positionalofSummary(...)were replaced by safe affine operations andForecast.builder(...), missing quantiles returnNaN.NaN,ForecastProjectionIndicatordeclares its horizon,ReturnForecastStatecomposesReturnMoments, and feature extractors publish durable names, units, versions, and return representation. This deliberately breaks the forecast API first released in 0.23.0; see the README and wiki migration guide for exact replacements. - New snapshots are externally consumable before publication reports green: Every
masterpush still starts snapshot publication immediately, concurrent snapshot runs now queue instead of cancelling an active deploy, and release-PR publishing no longer dispatches a duplicate run. The snapshot workflow uses an isolated Maven consumer to resolve the exact timestamped parent/core/examples artifacts and checksum-match the newly deployed core/examples JARs, while release health retrieves the exact version-level core POM/JAR instead of treating lag-prone top-level metadata or Portal browsing as proof. - Shared local and hosted quality gates:
scripts/run-full-build-quiet.shand its PowerShell counterpart now run repository script fixtures, actionlint validation, and the all-non-demo test scope used by pull-request CI. The local default repairs license headers and formatting before verification, while hosted workflows reuse the entrypoint with--validate-onlyto reject omitted repairs without modifying the checkout. Workflow, script-contract, integration-test, SpotBugs, and JaCoCo findings now use the same underlying gate before and after push. - Quiet quality gates complete faster without losing checks: Repository script fixtures now run in parallel under the quiet build preflight, metadata validation fixtures fake Maven effective-model lookups instead of launching Maven repeatedly, and structural backtest-result tests avoid duplicate numeric-factory parameterization while execution-sensitive coverage remains cross-factory. The shell quiet build now keeps successful fixture chatter and Maven INFO banners out of stdout, passing through only WARN/ERROR-level log lines before a compact elapsed-time, test, coverage, and log-path footer.
Fixed
- Recent swing results remain causal and recover under live revisions: Confirmation indexes now prevent later-discovered pivots from leaking into historical queries, terminal-bar replacement rewinds swing tracking, and dynamic ZigZag candidates formed during ATR warm-up pin the first finite threshold instead of remaining permanently unconfirmable.
- Recent swing detector adapters preserve detector prices: Custom detector-backed recent swing indicators now report the detector's
SwingPivot.price()for confirmed pivot values, and prominence swing unstable bars now reflect the causal partial-baseline confirmation boundary instead of requiring the full prominence lookback. - Quiet full-build watchdog respects active Maven progress: The Bash quiet build keeps the default 180-second watchdog as the earliest timeout boundary, but now lets a resource-constrained Maven reactor continue when output is still progressing and reports no-output stall evidence when it terminates a genuinely stalled build.
- Release-freeze PR checks retry transient GitHub API outages: The
Release Merge Freezeworkflow now retries temporary GitHub API failures while listing open master PRs, so a short503from GitHub does not incorrectly fail otherwise healthy pull requests. - Quiet full-build skip and coverage summaries are now clean by default: ATR/volatility stop rules now preserve constructor inputs for rule serialization round trips, benchmark and display-dependent checks use explicit opt-in tags, headless-safe chart assertions run in the normal build, and the quiet build footer reports only the active checkout's module JaCoCo CSV files instead of stale nested worktree reports.
- Indicator serialization round-trips now preserve constructor state across the CF-232 / CF-277-CF-286 inventory: Oscillator, composite, channel, trend, volume, VWAP, Ichimoku, SuperTrend, ADX, and candlestick indicators now serialize durable constructor inputs instead of rebuilt helper graphs, while stricter descriptor reconstruction rejects unconsumed child components or parameters.
- Quiet build works under system Bash with no extra Maven args: The default
scripts/run-full-build-quiet.shpath now preserves the hosted non-demo test tag without expanding an empty pass-through argument array under macOS/bin/bash, so maintainers can run the local gate directly without an earlyEXTRA_MAVEN_ARGS[@]: unbound variableexit. - Serialization validation now fails at the authored boundary: Malformed descriptor JSON now reports JSON syntax errors instead of becoming a label-only descriptor, canonical indicator/rule/criterion numeric constructor arguments use finite JSON-number validation with exact integer conversion, and strategy v2 rejects custom indicator aliases that produce non-numeric indicator values inside numeric comparison rules.
- Rolling variance stays coherent at low Decimal precision:
VarianceIndicatornow uses an anchored one-pass recurrence, so constant transcendental values retain zero dispersion without doubling source reads for every rolling window. - Monte Carlo price summaries describe the simulated paths exactly:
MonteCarloPriceForecastIndicatornow transforms every terminal cumulative-return path to price before calculating mean, median, standard deviation, quantiles, and empirical support. Nonlinear summary-only conversion no longer creates hybrid distributions. - Forecast numeric boundaries preserve factory configuration: State, summary, adapter, and sample boundaries now coerce through the owning
NumFactory, including differingDecimalNumprecision contexts and factory-correct zero dispersion.