families

One family's track record

Returns one family's 20-year backtest record, the same block GET /families lists for it. An unknown family answers 404 unknown_family with the valid names in fix. No key is needed; keyless calls are limited per IP.

get/families/{family}/stats

Request

  • Base URL: https://api.tradingpal.io/api/v1
  • URL: https://api.tradingpal.io/api/v1/families/{family}/stats
  • Auth: one of:
    • none
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://api.tradingpal.io/oauth/authorize, token URL https://api.tradingpal.io/oauth/token, scopes: patterns)

Path parameters

family'rising_wedge' | 'falling_wedge' | 'bullish_pennant' | 'bearish_pennant' | 'triangle' required

One of the five family identifiers: rising_wedge, falling_wedge, bullish_pennant, bearish_pennant, triangle. Anything else answers 404 unknown_family.

Response

OK

api_version'v1' required

The contract version, always v1. Field names in v1 do not change, and v1 stays available at least 12 months after a v2 ships.

as_of_sessionstring date nullable required

The last trading session the data describes, as an ISO date. Setups change nightly, so say it when presenting data and do not cache setups across days. Null on routes that do not read a dated artifact (account, tickers, history, families, universe and the demo index).

data_versionstring nullable

Identifier of the stored artifact the answer came from: the candidate-book generation for patterns, the sealed manifest for family records. Null when the route reads no versioned artifact.

disclaimer'Educational breakout-pattern analysis from TradingPal, not investment advice. Past results do not guarantee future outcomes.' required

The educational-use disclaimer, constant on every response. Repeat it when presenting a setup as something the user might act on.

family'rising_wedge' | 'falling_wedge' | 'bullish_pennant' | 'bearish_pennant' | 'triangle'

Family identifier.

labelstring

Human-readable family name.

Example response

{
  "api_version": "v1",
  "family": "falling_wedge",
  "label": "Falling wedge",
  "track_record": {
    "scope": "family",
    "family": "falling_wedge",
    "symbol": null,
    "win_rate_pct": 54,
    "sample_size": 1287,
    "wins": 695,
    "losses": 592,
    "avg_win_pct": 8.1,
    "avg_loss_pct": -4.2,
    "median_win_pct": 6.3,
    "avg_trade_pct": 2.4,
    "avg_r": 0.41,
    "expected_r": 0.41,
    "profit_factor": 1.61,
    "avg_hold_bars": 11.2,
    "backtest_range": [
      "2006-09-25",
      "2026-09-25"
    ],
    "measured": "Every detector-confirmed breakout … open trades are excluded.",
    "summary": "Falling wedge: 1,287 resolved trades from 2006-09-25 to 2026-09-25; 54% reached the target, average win +8.1%, average loss -4.2%, median win +6.3%."
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.