Canonical User Journey
This page is the canonical end-to-end path for production-minded Java developers:
data -> strategy -> execution -> record -> analysis -> live operations
If you follow only one path through the ta4j docs, follow this one.
Journey map
flowchart LR
data[DataIngestion] --> strategy[StrategyDesign]
strategy --> backtest[BacktestExecution]
backtest --> record[TradingRecordAndFills]
record --> analysis[RiskAndPerformanceAnalysis]
analysis --> live[LiveOperations]
Step 1: Data ingestion and bar modeling
Goal: build a deterministic BarSeries that matches your intended market and timeframe semantics.
Start with:
Use examples:
ta4jexamples.Quickstartta4jexamples.backtesting.YahooFinanceBacktestta4jexamples.backtesting.CoinbaseBacktest
Exit criteria:
- You can reproduce the same bars for the same input range.
- You have clear timezone, interval, and gap-handling conventions.
Step 2: Strategy design and rule composition
Goal: build explicit entry, exit, and risk-gating logic with predictable semantics.
Read:
Use examples:
ta4jexamples.strategies.RSI2Strategyta4jexamples.strategies.ADXStrategyta4jexamples.strategies.NetMomentumStrategy
Exit criteria:
- Strategy logic is expressed in reusable rules.
- Warmup (
setUnstableBars) is explicitly configured.
Step 3: Backtest execution and realism
Goal: run realistic backtests with explicit execution assumptions and reproducible comparisons.
Read:
Use examples:
ta4jexamples.backtesting.TradingRecordParityBacktestta4jexamples.backtesting.SimpleMovingAverageRangeBacktestta4jexamples.backtesting.BacktestPerformanceTuningHarness
Exit criteria:
- Execution model and cost assumptions are documented.
- Ranking method (single criterion vs weighted) is intentional.
- Walk-forward or holdout validation exists for promoted strategies.
Step 4: Trading record and fill semantics
Goal: treat broker-confirmed fills as the source of truth while keeping strategy evaluation deterministic.
Read:
- Live Trading
- Backtesting (manual/fill-driven sections)
Use examples:
ta4jexamples.backtesting.TradeFillRecordingExampleta4jexamples.bots.TradingBotOnMovingBarSeries
Exit criteria:
- You separate signal decisions from fill recording.
- You can explain lot matching policy (
FIFO,LIFO,AVG_COST,SPECIFIC_ID).
Step 5: Risk and performance analysis
Goal: evaluate outcomes with criteria aligned to business objectives, not one metric in isolation.
Read:
Use examples:
ta4jexamples.analysis.StrategyAnalysista4jexamples.analysis.TradeCost
Exit criteria:
- You track return, drawdown, and at least one risk-adjusted measure.
- You understand the
Numprecision/performance tradeoff for your workload.
Step 6: Live operations and recovery
Goal: run safely in production with explicit operational safeguards and recovery practices.
Read:
Use examples:
ta4jexamples.bots.TradingBotOnMovingBarSeriesta4jexamples.backtesting.TradeFillRecordingExample
Exit criteria:
- Startup/restart/reconciliation procedures are documented.
- You have monitoring for ingestion gaps, stale signals, and order failures.