Documentation, examples and further information of the ta4j project
This project is maintained by ta4j Organization
Status: still proposed, not implemented in ta4j-core.
What exists today:
BarSeries does not expose getBaseSymbol() / getQuoteSymbol().BaseBarSeriesBuilder and ConcurrentBarSeriesBuilder do not provide withBaseSymbol(...) / withQuoteSymbol(...).Trade (org.ta4j.core.Trade#getInstrument), not series-level metadata.Add optional symbol metadata to BarSeries so a series can explicitly carry its
instrument identity without coupling ta4j to any external exchange library.
This PRD proposes two new fields:
baseSymbol (e.g., BTC, AAPL)quoteSymbol (e.g., USD, USDT, EUR)These values are simple String fields stored on the series (not on each bar),
and are intended to be optional and purely informational.
BarSeries name semantics (no forced renaming).BarSeries#getName().Add two optional getters:
String getBaseSymbol();
String getQuoteSymbol();
Default behavior: null if not set.
Add fields:
private final String baseSymbol;
private final String quoteSymbol;
Extend the builders to capture metadata:
BaseBarSeriesBuilder
withBaseSymbol(String baseSymbol)withQuoteSymbol(String quoteSymbol)withSymbolPair(String base, String quote)ConcurrentBarSeriesBuilder
BarSeries should forward these values.BaseBarSeries and ConcurrentBarSeries serialization should include the new
fields so round-trips preserve them.
BarSeries
BaseBarSeries
withBaseSymbol/withQuoteSymbol (and optional withSymbolPair).BaseBarSeries constructors.getSubSeries(...) retains metadata.BarSeries and BaseBarSeriesBuilder.ta4j-core/src/main/java/org/ta4j/core/BarSeries.javata4j-core/src/main/java/org/ta4j/core/BaseBarSeries.javata4j-core/src/main/java/org/ta4j/core/BaseBarSeriesBuilder.javata4j-core/src/main/java/org/ta4j/core/ConcurrentBarSeries.javata4j-core/src/main/java/org/ta4j/core/ConcurrentBarSeriesBuilder.javata4j-core/src/test/java/org/ta4j/core/...null symbols.getSubSeries() preserves symbols.null is allowed and does not fail.BarSeries exposes base/quote symbol getters.withSymbolPair(base, quote) be included for convenience?org.ta4j.core.BarSeries, BaseBarSeries, BaseBarSeriesBuilder, ConcurrentBarSeries, and ConcurrentBarSeriesBuilder.6cce8809 with no landed series-level symbol metadata.