Skip to main content
GET
/
v1
/
ghost
/
regime-performance
curl https://api.aioka.io/v1/ghost/regime-performance
{
  "regimes": [
    {
      "regime": "BULL_TRENDING",
      "trades": 12,
      "wins": 10,
      "losses": 2,
      "win_rate": 0.833,
      "avg_pnl_pct": 1.24,
      "total_pnl": 847.50
    },
    {
      "regime": "WHALE_ACCUMULATION",
      "trades": 4,
      "wins": 3,
      "losses": 1,
      "win_rate": 0.75,
      "avg_pnl_pct": 0.92,
      "total_pnl": 312.10
    },
    {
      "regime": "SAFE_HAVEN_DEMAND",
      "trades": 2,
      "wins": 2,
      "losses": 0,
      "win_rate": 1.0,
      "avg_pnl_pct": 1.85,
      "total_pnl": 124.40
    }
  ],
  "total_trades": 18,
  "assets_included": ["BTC", "ETH", "SOL", "ADA", "TAO", "GOLD", "EURUSD"],
  "since": "2026-04-12",
  "generated_at": "2026-05-13T10:00:00Z",
  "cached": false,
  "cache_ttl_seconds": 300
}

Documentation Index

Fetch the complete documentation index at: https://docs.aioka.io/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Returns Ghost Trader performance aggregated by market regime across all 7 councils — BTC, ETH, SOL, ADA, TAO, Gold, EUR/USD. Each validated closed trade carries the regime label that was persisted at entry time; the endpoint UNIONs every per-asset table and groups by regime so the aioka.io “Performance by Regime” widget can paint a single chart spanning the whole system. Tier: Public ✅ — No API key required Cache TTL: 300 seconds (5 min) Rate limit: 60 calls / IP / minute
Only validated closed trades with a non-NULL regime are counted. Legacy rows that lack a regime label simply do not appear in any bucket — they do not break the response. Each asset writes its own native regime: BTC / ETH / SOL / ADA / TAO read from regime_history; Gold writes Gold-native regimes (SAFE_HAVEN_DEMAND, INFLATION_HEDGE, …) via its dedicated detector; EUR/USD writes the same way.

Response Fields

FieldTypeDescription
regimesarrayPer-regime rows, sorted by trades DESC, then win_rate DESC
total_tradesintegerSum of trades across all regimes (excludes NULL-regime trades)
assets_includedarray of stringsAsset tables that contributed (["BTC","ETH","SOL","ADA","TAO","GOLD","EURUSD"])
sincestringClean-slate cutoff date ("2026-04-12")
generated_atstringUTC ISO timestamp
cachedbooleanWhether response was served from cache
cache_ttl_secondsintegerCache TTL

Per-regime row

FieldTypeDescription
regimestringRegime label (e.g. BULL_TRENDING, SAFE_HAVEN_DEMAND)
tradesintegerTotal trades closed in this regime
winsintegerTrades with pnl > 0
lossesintegerTrades with pnl <= 0
win_ratefloatFraction 0.0–1.0 (e.g. 0.833 = 83.3%)
avg_pnl_pctfloatMean PnL per trade as percentage points (1.24 = +1.24%)
total_pnlfloatCumulative USD PnL within this regime
win_rate is a fraction (0.0–1.0), not a percentage (0–100). Multiply by 100 for display. This differs from /v1/regime/stats which returns the percentage form for BTC-only.
curl https://api.aioka.io/v1/ghost/regime-performance
{
  "regimes": [
    {
      "regime": "BULL_TRENDING",
      "trades": 12,
      "wins": 10,
      "losses": 2,
      "win_rate": 0.833,
      "avg_pnl_pct": 1.24,
      "total_pnl": 847.50
    },
    {
      "regime": "WHALE_ACCUMULATION",
      "trades": 4,
      "wins": 3,
      "losses": 1,
      "win_rate": 0.75,
      "avg_pnl_pct": 0.92,
      "total_pnl": 312.10
    },
    {
      "regime": "SAFE_HAVEN_DEMAND",
      "trades": 2,
      "wins": 2,
      "losses": 0,
      "win_rate": 1.0,
      "avg_pnl_pct": 1.85,
      "total_pnl": 124.40
    }
  ],
  "total_trades": 18,
  "assets_included": ["BTC", "ETH", "SOL", "ADA", "TAO", "GOLD", "EURUSD"],
  "since": "2026-04-12",
  "generated_at": "2026-05-13T10:00:00Z",
  "cached": false,
  "cache_ttl_seconds": 300
}

Response

Multi-asset regime performance aggregation

regimes
GhostRegimePerformanceItem · object[]
required
total_trades
integer
required
assets_included
string[]
required
since
string
required
generated_at
string<date-time>
required
cached
boolean
required
cache_ttl_seconds
integer
required