Data Dictionary
Plain-English definitions of every field returned by the TradeWave API. All monetary returns are expressed as percentages. Raw prices and OHLCV data are never returned.
Core opportunity fields
| Field | Type | Definition |
| symbol |
string |
Ticker symbol (e.g. "AAPL"). Exactly as used by the market data provider. |
| market |
string |
Permanent market id ("0".."16"). See the Markets table below. Never renumbered. |
| direction |
string |
long - the seasonal pattern historically rises over the holding period. short - it historically falls. This is a historically derived seasonal pattern, not a recommendation. |
| entry_date |
date |
The calendar date the seasonal pattern entry window begins (ISO 8601, e.g. "2026-06-01"). |
| days_out |
integer |
The holding period in calendar days. The pattern's historical win/loss statistics are measured at this exit point. Example: 22 means the exit is 22 calendar days after entry. |
| years |
string |
The lookback window label - always a string (e.g. "10", "5"). Represents how many years of historical instances are included in the statistical summary. Kept as a string to preserve the exact label used in the platform. |
| sharpe_ratio |
number |
The Sharpe ratio of the seasonal pattern over the lookback window. Higher is better. Measures return per unit of volatility across the historical instances. Not annualized - it is specific to the holding period defined by days_out. |
| avg_profit_pct |
number |
Mean return (in percent) across all historical instances of this pattern. Positive = historically profitable on average. Example: 3.12 means the average instance returned +3.12%. |
| median_profit_pct |
number |
Median return (in percent) across historical instances. Less sensitive to outlier years than the mean. Useful when a single large year skews avg_profit_pct. |
| win_rate |
number (0..1) |
Fraction of historical instances that closed in the profitable direction at days_out. Example: 0.78 means 78% of past instances were winners. Does not account for position sizing or slippage. |
ML fields (all tiers, metered per day)
ML fields are available on every tier, metered per day: free 5/day, Dev 100/day, Pro/Business unlimited. ML fields are null when the daily limit is exhausted or the market is not ML-eligible. ML-eligible markets are ids 0, 1, 2, 3, 4, and 11; all other markets (ids 5, 6, 7, 8, 9, 10, 12, 13, and 16) are not ML-eligible.
| Field | Type | Definition |
| ml_score |
number |
Composite ML score from the 62-feature model (higher = stronger predicted edge). Not directly interpretable as a probability - use win_prob for that. |
| win_prob |
number (0..1) |
ML-estimated probability that this opportunity will be a winner at the exit date. Calibrated to historical out-of-sample results. Example: 0.81 = 81% predicted win probability. |
| pred_return |
number |
ML-predicted return in percent at the exit date. This is the model's point estimate of the expected percentage gain (long) or drop (short). |
| pred_mfe |
number |
Predicted Maximum Favorable Excursion in percent - the ML model's estimate of the best-case intra-period move in the favorable direction. Useful for sizing and stop placement, not a guarantee. |
Daily pick fields
| Field | Type | Definition |
| featured_date |
date |
The date this pick was published (ISO 8601). One pick is published each trading morning. |
| pattern_summary |
string |
A plain-English description of why this symbol was selected - the key stats and seasonal context. |
| return_pct |
number | null |
Realized return in percent at the exit date. Null while the trade is still open (result = "open"). |
| result |
string |
"win", "loss", or "open". "open" means the holding period has not yet elapsed. |
Seasonal chart fields
| Field | Type | Definition |
| seasonal_curve |
array |
The single year-averaged, normalized 0-100 seasonal index curve - one {date, index} point per calendar day. index is a relative shape (0-100), NEVER a price, and the series cannot be used to reconstruct prices. This is the typical within-year shape, not per-year paths. |
| per_year |
array |
On a Pattern Card's receipts: one row per lookback year as {year, return_pct, result} - the % return that year and whether it was a win or loss. No price series. |
Markets (ids 0 - 16)
Market ids are permanent resource keys. They are never renumbered. Ids 14 and 15 (Korea) were removed; the gap is intentional.
| ID | Market | ML eligible | Notes |
| 0 | DOW 30 STOCKS | Yes | |
| 1 | NASDAQ 100 STOCKS | Yes | |
| 2 | S&P 500 STOCKS | Yes | Free tier access |
| 3 | RUSSELL 1000 STOCKS | Yes | |
| 4 | WILSHIRE 5000 | Yes | |
| 5 | INDICES COMMON | No | |
| 6 | INDICES ALL | No | |
| 7 | FUTURES & COMMODITIES | No | |
| 8 | FOREX ALL | No | |
| 9 | FOREX LIQUID | No | |
| 10 | GOVERNMENT BONDS | No | |
| 11 | ETFs | Yes | |
| 12 | LONDON EXCHANGE | No | |
| 13 | TORONTO STOCKS | No | |
| 14 | Removed (Korea) - id reserved, never reused |
| 15 | Removed (Korea) - id reserved, never reused |
| 16 | CRYPTO CURRENCIES | No | |
No raw prices ever. The API never returns OHLCV data, last price, or price-by-date. All numeric return fields are percentages, measured from entry to exit over the holding window. This is by design and is an invariant of the API contract.