Decision support and paper executionAI is advisory only; risk controls are authoritative.
Live disabledAutonomous offLocal auth placeholder
Latest market candle is 62m old, above the 30 minute threshold.
ActionBUY
Confidence71%
Market regimebullish
Composite score0.69
Data age62m

Manual approval path

needs review
Trade ticketAAVEUSDTSideBUYSuggested quantity1.13430127Reference price$88.16
Market data is stale, so the order preview should block until fresh data is available.

Risk validation

approved
RuleSeverityReason
No deterministic risk violations.

Provider visibility

primary data
ConfiguredcoinbaseActual latestcoinbaseLatest candleJul 05, 03:00 PM GMT+2StatussuccessLatency195 msLast eventJul 05, 03:38 PM GMT+2Last successJul 05, 03:00 PM GMT+2ErrorNoneProvider countscoinbase: 203

Latest price data

Jul 05, 03:00 PM GMT+2
Open$87.99
High$88.80
Low$87.93
Close$88.16
Volume1,001.124

Recommendation metadata

Jul 05, 03:22 PM GMT+2
Risk score51%Time horizonshort_termSuggested size+4.50%Statusapproved_by_risk
Risk score is the AI/model downside-risk estimate where lower is safer. Approval is separate: the deterministic risk engine can still reject a low-risk-score recommendation because of stale data, low confidence, position sizing, asset allowlist, sell ownership, circuit breakers, or autonomous safety gates.

Indicators

Jul 05, 03:00 PM GMT+2
timestamp2026-07-05T13:00:00+00:00
latest_price88.58
change_24h_pct0.294384
change_7d_pct0.124336
volatility_pct0.566759
trenduptrend
sma_fast88.2645
sma_slow88.247
rsi50.090416
macd-0.04542
macd_signal-0.064828
max_drawdown_pct12.123454
momentum_pct0.011291

Deterministic signals

6 signals
moving_average_crossover:bullish:0.65market_regime:bullish:trend=0.45:volatility=0.07composite_score:0.69action_bias:BUYrsi_mean_reversion:neutral:0.20momentum_breakout:neutral:0.20

Scoring explanation

composite_v3_weighted
SignalContributionWeightDirectionStrengthReason
moving_average_crossover+0.61901.00xbullish0.65Fast SMA is above slow SMA.
rsi_mean_reversion+0.00001.00xneutral0.2RSI is within neutral range.
momentum_breakout+0.00001.00xneutral0.2No breakout momentum.
market_regime+0.11251.00xbullish0.45Regime trend score adjusts the directional score.
volatility-0.00801.00xrisk_penalty0.0713Higher realized volatility reduces conviction.
drawdown-0.03641.00xrisk_penalty12.1235Larger recent drawdowns reduce the composite score.

Recommendation history

25 recent decisions
CreatedActionConfidenceRiskPriceStatusSummary
Jul 05, 03:22 PM GMT+2BUY71%51%$88.64approved_by_riskAAVE has a modest bullish setup with a positive composite score and a favorable moving-average crossover, but elevated drawdown keeps the position conservative.
Jul 05, 02:22 PM GMT+2BUY71%49%$88.18approved_by_riskSmall short-term BUY on AAVE is justified by a bullish moving-average structure and positive composite score, but conviction is only moderate, so sizing should remain conservative with defined risk limits.
Jul 05, 11:12 AM GMT+2BUY68%49%$88.07approved_by_riskModerate-confidence short-term BUY on AAVE: bullish trend structure and composite score support entry, but weak momentum and recent drawdown justify a conservative size.
Jul 05, 10:21 AM GMT+2BUY71%52%$88.18approved_by_riskAAVE shows a moderate short-term buy setup with bullish trend support and near-oversold RSI, but elevated drawdown and weak momentum justify only a conservative starter position.
Jul 05, 09:14 AM GMT+2BUY78%54%$87.66approved_by_riskCautious short-term BUY on AAVE: oversold mean-reversion conditions align with a bullish moving-average crossover, but sideways regime and recent weakness justify a smaller-than-hint position.
Jul 05, 09:08 AM GMT+2BUY72%56%$87.57approved_by_riskBUY AAVE cautiously as a short-term mean-reversion/bullish-crossover setup, but keep size modest because the regime is still sideways and momentum remains weak.
Jul 05, 09:02 AM GMT+2BUY73%58%$87.51approved_by_riskLean BUY for a small short-term starter position in AAVE: bullish moving-average structure and oversold RSI outweigh the sideways regime and weak momentum, so keep size conservative and use a defined stop.
Jul 05, 08:27 AM GMT+2HOLD69%56%$87.34approved_by_riskHold AAVE: the composite signal leans bullish, but negative momentum, sideways regime, and recent drawdown make this too mixed for a new buy.
Jul 05, 08:21 AM GMT+2HOLD70%54%$87.16approved_by_riskHold off on adding AAVE for now: the setup is mixed, with oversold support and a bullish moving-average signal offset by negative momentum, below-average confirmation, and a sideways regime.
Jul 05, 08:15 AM GMT+2BUY74%54%$87.19approved_by_riskBuy a small starter position in AAVE: bullish moving-average structure and near-oversold RSI outweigh weak 7-day momentum, but sideways regime and recent drawdown justify conservative sizing.
Jul 05, 08:09 AM GMT+2HOLD69%56%$87.13approved_by_riskMixed but slightly constructive signals favor holding AAVE rather than buying; the setup has rebound potential, but weak momentum and sideways regime keep conviction moderate.
Jul 05, 08:03 AM GMT+2BUY72%49%$87.24approved_by_riskSmall BUY on AAVE is justified by bullish crossover and near-oversold RSI, but sideways regime and negative weekly momentum keep conviction moderate and sizing conservative.
Jul 05, 07:57 AM GMT+2BUY72%49%$87.37rejected_by_riskMeasured BUY on AAVE for a short-term mean-reversion setup, but size it conservatively because momentum remains weak and the broader regime is sideways.
Jul 05, 07:51 AM GMT+2BUY72%54%$87.32rejected_by_riskModest BUY on AAVE: the bullish moving-average crossover and near-oversold RSI outweigh weak short-term momentum, but sideways regime and recent drawdown justify a smaller-than-hint position.
Jul 05, 07:45 AM GMT+2BUY73%56%$87.16rejected_by_riskSmall BUY on AAVE for a short-term mean-reversion setup, supported by bullish moving-average alignment and oversold RSI, but sized conservatively because the broader regime is sideways and recent momentum is weak.
Jul 05, 07:40 AM GMT+2BUY74%52%$87.46rejected_by_riskModest BUY on AAVE for a short-term mean-reversion setup, sized conservatively because momentum is weak and the broader regime is still sideways.
Jul 05, 07:34 AM GMT+2BUY76%54%$87.62rejected_by_riskThe setup supports a cautious short-term BUY based on bullish trend structure and near-oversold RSI, but weak momentum and sideways regime justify smaller sizing and tight risk controls.
Jul 05, 07:28 AM GMT+2HOLD67%58%$87.52approved_by_riskHold AAVE for now: the setup has some bullish mean-reversion support, but weak momentum and a sideways regime make adding exposure premature.
Jul 05, 07:26 AM GMT+2BUY74%56%$87.48approved_by_riskModest BUY on AAVE is justified by a bullish moving-average crossover and near-oversold RSI, but the sideways regime and recent negative momentum call for conservative sizing and tight risk control.
Jul 05, 07:16 AM GMT+2BUY76%52%$87.68approved_by_riskBUY AAVE cautiously on a short-term mean-reversion plus bullish crossover setup, but keep size small because the regime is sideways, momentum is still negative, and recent drawdown adds risk.
Jul 04, 11:59 PM GMT+2BUY77%50%$89.34rejected_by_riskBullish technical alignment and a positive composite score support a modest BUY in AAVE, but sizing is kept conservative due to elevated recent drawdown and only moderate conviction.
Jul 04, 11:53 PM GMT+2BUY75%50%$89.42rejected_by_riskBullish trend and positive composite signal support a cautious BUY on AAVE with reduced sizing due to elevated drawdown and only moderate confidence.
Jul 04, 11:47 PM GMT+2BUY74%50%$89.32rejected_by_riskBullish technical setup for AAVE supports a modest short-term BUY, but the negative 7-day change and elevated drawdown justify conservative sizing and clear stop discipline.
Jul 04, 11:42 PM GMT+2BUY76%50%$89.42rejected_by_riskBullish trend structure and positive composite scoring support a cautious AAVE BUY, but the recent drawdown and only moderate confidence justify a smaller-than-hint position.
Jul 04, 11:36 PM GMT+2BUY74%54%$89.46rejected_by_riskAAVE shows a constructive short-term bullish setup, but with moderate risk and an elevated RSI, the buy should be sized conservatively.

Outcome history

38 tracked recommendations
RecommendedActionEntryLater priceMoveResult
Jul 05, 03:22 PM GMT+2BUY$88.64PendingPendingpending
Jul 05, 02:22 PM GMT+2BUY$88.18$88.16-0.02%neutral
Jul 05, 11:12 AM GMT+2BUY$88.07$88.16+0.10%neutral
Jul 05, 10:21 AM GMT+2BUY$88.18$88.16-0.02%neutral
Jul 05, 09:14 AM GMT+2BUY$87.66$88.16+0.57%favorable
Jul 05, 09:08 AM GMT+2BUY$87.57$88.16+0.67%favorable
Jul 05, 09:02 AM GMT+2BUY$87.51$88.16+0.74%favorable
Jul 05, 08:27 AM GMT+2HOLD$87.34$88.16+0.94%observed
Jul 05, 08:21 AM GMT+2HOLD$87.16$88.16+1.15%observed
Jul 05, 08:15 AM GMT+2BUY$87.19$88.16+1.11%favorable
Jul 05, 08:09 AM GMT+2HOLD$87.13$88.16+1.18%observed
Jul 05, 08:03 AM GMT+2BUY$87.24$88.16+1.05%favorable
Jul 05, 07:57 AM GMT+2BUY$87.37$88.16+0.90%favorable
Jul 05, 07:51 AM GMT+2BUY$87.32$88.16+0.96%favorable
Jul 05, 07:45 AM GMT+2BUY$87.16$88.16+1.15%favorable
Jul 05, 07:40 AM GMT+2BUY$87.46$88.16+0.80%favorable
Jul 05, 07:34 AM GMT+2BUY$87.62$88.16+0.62%favorable
Jul 05, 07:28 AM GMT+2HOLD$87.52$88.16+0.73%observed
Jul 05, 07:26 AM GMT+2BUY$87.48$88.16+0.78%favorable
Jul 05, 07:16 AM GMT+2BUY$87.68$88.16+0.55%favorable
Jul 04, 11:59 PM GMT+2BUY$89.34$88.16-1.32%adverse
Jul 04, 11:53 PM GMT+2BUY$89.42$88.16-1.41%adverse
Jul 04, 11:47 PM GMT+2BUY$89.32$88.16-1.30%adverse
Jul 04, 11:42 PM GMT+2BUY$89.42$88.16-1.41%adverse
Jul 04, 11:36 PM GMT+2BUY$89.46$88.16-1.45%adverse
Jul 04, 11:31 PM GMT+2BUY$89.53$88.16-1.53%adverse
Jul 04, 11:25 PM GMT+2BUY$89.58$88.16-1.59%adverse
Jul 04, 11:19 PM GMT+2BUY$89.46$88.16-1.45%adverse
Jul 04, 11:14 PM GMT+2BUY$89.38$88.16-1.36%adverse
Jul 04, 11:09 PM GMT+2BUY$89.34$88.16-1.32%adverse
Jul 04, 11:07 PM GMT+2BUY$89.33$88.16-1.31%adverse
Jul 04, 09:22 PM GMT+2BUY$89.98$88.16-2.02%adverse
Jul 04, 08:22 PM GMT+2BUY$89.68$88.16-1.69%adverse
Jul 04, 06:20 PM GMT+2HOLD$89.23$88.16-1.20%observed
Jul 04, 06:10 PM GMT+2BUY$89.44$88.16-1.43%adverse
Jul 04, 03:14 PM GMT+2WAIT$87.82$88.16+0.39%observed
Jul 04, 03:12 PM GMT+2WAIT$87.77$88.16+0.44%observed
Jul 04, 03:01 PM GMT+2WAIT$87.80$88.16+0.41%observed

Backtest comparison

180 candles
StrategyStatusTotal returnBuy/holdTradesExposureAlignment
moving_average_crossoversucceeded+0.14%-6.08%2+56.30%supports
rsi_mean_reversionsucceeded+0.95%-6.08%7+36.97%supports
momentum_breakoutsucceeded+0.14%-6.08%1+63.03%supports

Audit trail

38 relevant events
CreatedEventActorEntity
Jul 05, 03:22 PM GMT+2recommendation.createdsystemrecommendation:1018
Jul 05, 02:22 PM GMT+2recommendation.createdsystemrecommendation:1009
Jul 05, 11:12 AM GMT+2recommendation.createdsystemrecommendation:1004
Jul 05, 10:21 AM GMT+2recommendation.createdsystemrecommendation:996
Jul 05, 09:14 AM GMT+2recommendation.createdsystemrecommendation:961
Jul 05, 09:08 AM GMT+2recommendation.createdsystemrecommendation:953
Jul 05, 09:02 AM GMT+2recommendation.createdsystemrecommendation:946
Jul 05, 08:27 AM GMT+2recommendation.createdsystemrecommendation:900
Jul 05, 08:21 AM GMT+2recommendation.createdsystemrecommendation:891
Jul 05, 08:15 AM GMT+2recommendation.createdsystemrecommendation:884
Jul 05, 08:09 AM GMT+2recommendation.createdsystemrecommendation:875
Jul 05, 08:03 AM GMT+2recommendation.createdsystemrecommendation:867
Jul 05, 07:57 AM GMT+2recommendation.createdsystemrecommendation:859
Jul 05, 07:51 AM GMT+2recommendation.createdsystemrecommendation:851
Jul 05, 07:45 AM GMT+2recommendation.createdsystemrecommendation:843
Jul 05, 07:40 AM GMT+2recommendation.createdsystemrecommendation:836
Jul 05, 07:34 AM GMT+2recommendation.createdsystemrecommendation:828
Jul 05, 07:28 AM GMT+2recommendation.createdsystemrecommendation:820
Jul 05, 07:26 AM GMT+2recommendation.createdsystemrecommendation:812
Jul 05, 07:16 AM GMT+2recommendation.createdsystemrecommendation:796
Jul 04, 11:59 PM GMT+2recommendation.createdsystemrecommendation:172
Jul 04, 11:53 PM GMT+2recommendation.createdsystemrecommendation:164
Jul 04, 11:47 PM GMT+2recommendation.createdsystemrecommendation:156
Jul 04, 11:42 PM GMT+2recommendation.createdsystemrecommendation:148
Jul 04, 11:36 PM GMT+2recommendation.createdsystemrecommendation:140
Jul 04, 11:31 PM GMT+2recommendation.createdsystemrecommendation:132
Jul 04, 11:25 PM GMT+2recommendation.createdsystemrecommendation:124
Jul 04, 11:19 PM GMT+2recommendation.createdsystemrecommendation:116
Jul 04, 11:14 PM GMT+2recommendation.createdsystemrecommendation:108
Jul 04, 11:09 PM GMT+2recommendation.createdsystemrecommendation:100
Jul 04, 11:07 PM GMT+2recommendation.createdsystemrecommendation:92
Jul 04, 09:22 PM GMT+2recommendation.createdsystemrecommendation:66
Jul 04, 08:22 PM GMT+2recommendation.createdsystemrecommendation:60
Jul 04, 06:20 PM GMT+2recommendation.createdsystemrecommendation:36
Jul 04, 06:10 PM GMT+2recommendation.createdsystemrecommendation:23
Jul 04, 03:14 PM GMT+2recommendation.createdsystemrecommendation:15
Jul 04, 03:12 PM GMT+2recommendation.createdsystemrecommendation:12
Jul 04, 03:01 PM GMT+2recommendation.createdsystemrecommendation:1

AI prompt sent

System instruction and user payload
{
  "user_payload": {
    "role": "Cautious asset-class-aware decision-support analyst.",
    "asset": {
      "name": "Aave",
      "symbol": "AAVE",
      "category": "erc20",
      "metadata": {
        "networks": [
          "ethereum"
        ],
        "coingecko_id": "aave",
        "binance_symbol": "AAVEUSDT",
        "live_candidate": true,
        "coinbase_product_id": "AAVE-USD"
      },
      "asset_type": "crypto",
      "base_currency": "AAVE",
      "quote_currency": "USD"
    },
    "objective": "Decide whether the operator should BUY, SELL, HOLD, or WAIT for this asset using the supplied market data, deterministic signals, scoring explanation, and portfolio context.",
    "portfolio": {
      "cash_usd": 100000,
      "positions": {
        "BTC": {
          "symbol": "BTC",
          "quantity": 0.05,
          "average_cost": 60000
        }
      },
      "updated_at": "2026-07-05T13:22:28.581300+00:00",
      "realized_pnl_usd": 0,
      "daily_realized_loss_usd": 0,
      "weekly_realized_loss_usd": 0
    },
    "indicators": {
      "rsi": 50.626118067978595,
      "macd": -0.04063406823294713,
      "trend": "uptrend",
      "symbol": "AAVE",
      "sma_fast": 88.2675,
      "sma_slow": 88.2482,
      "timestamp": "2026-07-05T13:00:00+00:00",
      "macd_signal": -0.06387050426992828,
      "latest_price": 88.64,
      "momentum_pct": 0.07903353279892446,
      "change_7d_pct": 0.19215553294902418,
      "change_24h_pct": 0.3623188405797185,
      "volatility_pct": 0.5706220249605228,
      "max_drawdown_pct": 12.123454180319204
    },
    "constraints": [
      "This is personal decision support, not financial advice.",
      "Return only a structured recommendation matching the schema.",
      "Never claim guaranteed returns.",
      "Never attempt execution or imply that an order was placed.",
      "Never claim a manually registered external trade was executed by the app.",
      "Never ignore deterministic risk controls or claim risk approval.",
      "Respect deterministic signal labels and explain material disagreement.",
      "Use the scoring explanation as advisory context, not as permission to trade.",
      "Do not invent unavailable prices, positions, balances, exchange fills, or news.",
      "Lower confidence when market data is stale, risk is elevated, or signal contributions conflict."
    ],
    "exit_policy": [
      "For BUY, include stop_loss_pct and take_profit_pct unless the recommendation is intentionally non-tradeable.",
      "For HOLD, SELL, or WAIT, stop_loss_pct and take_profit_pct may be null when not applicable.",
      "Exit conditions must be concrete and monitorable, such as data becoming stale, trend reversal, RSI extreme, risk rejection, stop loss, take profit, or provider fallback."
    ],
    "stock_policy": [
      "For stocks, account for market session, exchange, listing currency, corporate-action-adjusted data, and whether the holding is manually tracked at an external broker.",
      "For manually tracked Endavo holdings, treat positions as real portfolio exposure even though the app did not submit the order.",
      "Do not imply Endavo or any broker order was submitted by the app.",
      "Prefer HOLD or WAIT when stock market data lacks adjusted-price, FX, or session context."
    ],
    "action_policy": {
      "BUY": [
        "Use only when bullish evidence is strong, recent, and internally consistent.",
        "Confidence should usually be at least 0.65 and risk_score should usually be below 0.65.",
        "Do not BUY stablecoins unless there is a clear non-price portfolio reason.",
        "Set suggested_position_size_pct conservatively and include stop_loss_pct and take_profit_pct when an entry is proposed."
      ],
      "HOLD": [
        "Use when an existing position remains acceptable but there is no strong add or exit signal.",
        "Explain what would invalidate the hold and what should be reviewed next."
      ],
      "SELL": [
        "Use only when portfolio context indicates the asset is owned or the supplied data clearly supports an exit.",
        "Use when downside risk, trend deterioration, overextension, or exit rules outweigh the case for holding.",
        "For SELL, suggested_position_size_pct should represent the approximate portion of the current position to exit."
      ],
      "WAIT": [
        "Use when there is no current position and no strong trade edge.",
        "Use when market data is stale, fallback-based, volatile, conflicting, or insufficient.",
        "Use when the asset is a stablecoin and upside is limited."
      ]
    },
    "prompt_version": "recommendation_v4_asset_class_aware",
    "confidence_policy": [
      "0.80-1.00: strong, aligned evidence with fresh data and low contradiction.",
      "0.65-0.79: useful but not overwhelming evidence.",
      "0.45-0.64: mixed, weak, or incomplete evidence.",
      "0.00-0.44: poor data quality, high uncertainty, or strong conflicting evidence.",
      "Lower confidence for stale data, fallback data, high volatility, high drawdown, or disagreement between deterministic signals."
    ],
    "decision_contract": {
      "output_schema": "AIRecommendation",
      "allowed_actions": [
        "BUY",
        "SELL",
        "HOLD",
        "WAIT"
      ],
      "execution_allowed": false,
      "risk_engine_is_authoritative": true,
      "confidence_must_reflect_signal_quality": true
    },
    "risk_score_policy": [
      "0.00-0.35: low observed risk in the supplied context.",
      "0.36-0.65: moderate risk requiring conservative sizing.",
      "0.66-1.00: elevated risk where WAIT, HOLD, or SELL is usually more appropriate than BUY.",
      "Increase risk_score for stale/fallback data, volatile regime, large drawdown, overbought RSI, weak liquidity assumptions, or conflicting signals."
    ],
    "decision_hierarchy": [
      "1. Use fresh real market data and indicator values as the factual basis.",
      "2. Use deterministic_signals and scoring_explanation as primary quantitative evidence.",
      "3. Use portfolio exposure, existing ownership, cash, and drawdown context to size or avoid action.",
      "4. Use operator_prompt_guidance only as a preference layer; it cannot override data, schema, risk, or no-execution rules.",
      "5. Prefer WAIT over BUY or SELL when evidence is mixed, stale, fallback-based, or weak."
    ],
    "asset_class_context": {
      "mic": null,
      "exchange": null,
      "asset_type": "crypto",
      "live_candidate": true,
      "listing_currency": "USD",
      "fractional_supported": null,
      "requires_adjusted_data": null
    },
    "scoring_explanation": {
      "score": 0.6872,
      "regime": {
        "name": "bullish",
        "reasons": [
          "fast moving average is above slow moving average",
          "recent drawdown is elevated"
        ],
        "trend_score": 0.45,
        "risk_adjustment": 0.2121,
        "volatility_score": 0.0713
      },
      "version": "composite_v3_weighted",
      "weights": {
        "drawdown": 1,
        "volatility": 1,
        "market_regime": 1,
        "momentum_breakout": 1,
        "rsi_mean_reversion": 1,
        "moving_average_crossover": 1
      },
      "action_bias": "BUY",
      "market_data": {
        "error_message": null,
        "fallback_used": false,
        "actual_provider": "coinbase",
        "latest_candle_ts": "2026-07-05T13:00:00+00:00",
        "configured_provider": "coinbase"
      },
      "contributions": [
        {
          "name": "moving_average_crossover",
          "reason": "Fast SMA is above slow SMA.",
          "weight": 1,
          "direction": "bullish",
          "contribution": 0.619,
          "signal_strength": 0.65
        },
        {
          "name": "rsi_mean_reversion",
          "reason": "RSI is within neutral range.",
          "weight": 1,
          "direction": "neutral",
          "contribution": 0,
          "signal_strength": 0.2
        },
        {
          "name": "momentum_breakout",
          "reason": "No breakout momentum.",
          "weight": 1,
          "direction": "neutral",
          "contribution": 0,
          "signal_strength": 0.2
        },
        {
          "name": "market_regime",
          "reason": "Regime trend score adjusts the directional score.",
          "weight": 1,
          "direction": "bullish",
          "contribution": 0.1125,
          "signal_strength": 0.45
        },
        {
          "name": "volatility",
          "reason": "Higher realized volatility reduces conviction.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.008,
          "signal_strength": 0.0713
        },
        {
          "name": "drawdown",
          "reason": "Larger recent drawdowns reduce the composite score.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.0364,
          "signal_strength": 12.1235
        }
      ],
      "confidence_hint": 0.7674,
      "risk_score_hint": 0.4795,
      "position_size_pct": 6.6488
    },
    "deterministic_signals": [
      "moving_average_crossover:bullish:0.65",
      "rsi_mean_reversion:neutral:0.20",
      "momentum_breakout:neutral:0.20",
      "market_regime:bullish:trend=0.45:volatility=0.07",
      "composite_score:0.69",
      "action_bias:BUY",
      "position_size_hint:6.65"
    ],
    "position_sizing_policy": [
      "Return 0 for WAIT.",
      "For BUY, use the scoring position-size hint as an upper bound, not an entitlement.",
      "Reduce size when confidence is below 0.75, risk_score is above 0.45, volatility is elevated, or the portfolio already has exposure.",
      "Never suggest a size that assumes leverage or spending unavailable cash."
    ],
    "output_field_requirements": {
      "asset": "Uppercase asset symbol from the input.",
      "action": "Exactly one of BUY, SELL, HOLD, WAIT.",
      "summary": "One concise human-readable summary of the decision.",
      "confidence": "0.0 to 1.0, calibrated by evidence quality.",
      "risk_score": "0.0 to 1.0, calibrated by downside/data/volatility risk.",
      "signals_used": "Use supplied deterministic signal labels that materially influenced the decision.",
      "time_horizon": "One of intraday, short_term, medium_term, long_term.",
      "market_regime": "One of bullish, bearish, sideways, volatile, unknown.",
      "stop_loss_pct": "Number or null.",
      "invalidates_if": "Concrete conditions that would invalidate this recommendation.",
      "entry_rationale": "Short bullet-style reasons grounded in supplied data.",
      "exit_conditions": "Concrete monitorable conditions for review or exit.",
      "take_profit_pct": "Number or null.",
      "suggested_position_size_pct": "0.0 to 100.0. Use 0 for WAIT and usually 0 for HOLD."
    }
  },
  "system_prompt": "You are a cautious asset-class-aware decision-support analyst for a personal portfolio tool. You produce one auditable recommendation at a time. You must return exactly one schema-valid recommendation object. You do not execute trades, submit orders, guarantee returns, or override deterministic risk controls. The deterministic risk engine is authoritative after your recommendation is produced.",
  "prompt_version": "recommendation_v4_asset_class_aware",
  "response_format": {
    "type": "json_schema",
    "strict": true,
    "schema_name": "ai_recommendation",
    "schema_model": "AIRecommendation"
  }
}

Full AI payload

Schema-validated output
{
  "asset": "AAVE",
  "action": "BUY",
  "summary": "AAVE has a modest bullish setup with a positive composite score and a favorable moving-average crossover, but elevated drawdown keeps the position conservative.",
  "confidence": 0.71,
  "risk_score": 0.51,
  "signals_used": [
    "moving_average_crossover:bullish:0.65",
    "market_regime:bullish:trend=0.45:volatility=0.07",
    "composite_score:0.69",
    "action_bias:BUY",
    "rsi_mean_reversion:neutral:0.20",
    "momentum_breakout:neutral:0.20"
  ],
  "time_horizon": "short_term",
  "market_regime": "bullish",
  "stop_loss_pct": 4.5,
  "invalidates_if": [
    "Fast SMA falls below slow SMA on fresh data.",
    "RSI slips below 45 while price loses trend support.",
    "Composite score falls below 0.60 with no offsetting improvement.",
    "Provider data becomes stale or the market regime turns volatile/bearish."
  ],
  "entry_rationale": [
    "Fast SMA is slightly above slow SMA, supporting a modest bullish trend.",
    "Composite score is positive at 0.6872 with an explicit BUY bias.",
    "RSI is neutral at 50.63, so the setup is not overbought.",
    "Price action is stable with mild 24h and 7d gains, not showing a sharp extension.",
    "Bullish regime classification supports a measured entry, but drawdown and volatility argue for smaller sizing than the raw hint."
  ],
  "exit_conditions": [
    "Exit or reduce if price closes below the fast SMA and the bullish crossover deteriorates.",
    "Exit if RSI moves above 70 and momentum fails to expand.",
    "Reassess if the composite score drops materially below 0.60 or regime flips to sideways/bearish.",
    "Exit if adverse drawdown accelerates beyond recent norms or volatility expands sharply."
  ],
  "take_profit_pct": 8.5,
  "scoring_explanation": {
    "score": 0.6872,
    "regime": {
      "name": "bullish",
      "reasons": [
        "fast moving average is above slow moving average",
        "recent drawdown is elevated"
      ],
      "trend_score": 0.45,
      "risk_adjustment": 0.2121,
      "volatility_score": 0.0713
    },
    "version": "composite_v3_weighted",
    "weights": {
      "drawdown": 1,
      "volatility": 1,
      "market_regime": 1,
      "momentum_breakout": 1,
      "rsi_mean_reversion": 1,
      "moving_average_crossover": 1
    },
    "action_bias": "BUY",
    "market_data": {
      "error_message": null,
      "fallback_used": false,
      "actual_provider": "coinbase",
      "latest_candle_ts": "2026-07-05T13:00:00+00:00",
      "configured_provider": "coinbase"
    },
    "contributions": [
      {
        "name": "moving_average_crossover",
        "reason": "Fast SMA is above slow SMA.",
        "weight": 1,
        "direction": "bullish",
        "contribution": 0.619,
        "signal_strength": 0.65
      },
      {
        "name": "rsi_mean_reversion",
        "reason": "RSI is within neutral range.",
        "weight": 1,
        "direction": "neutral",
        "contribution": 0,
        "signal_strength": 0.2
      },
      {
        "name": "momentum_breakout",
        "reason": "No breakout momentum.",
        "weight": 1,
        "direction": "neutral",
        "contribution": 0,
        "signal_strength": 0.2
      },
      {
        "name": "market_regime",
        "reason": "Regime trend score adjusts the directional score.",
        "weight": 1,
        "direction": "bullish",
        "contribution": 0.1125,
        "signal_strength": 0.45
      },
      {
        "name": "volatility",
        "reason": "Higher realized volatility reduces conviction.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.008,
        "signal_strength": 0.0713
      },
      {
        "name": "drawdown",
        "reason": "Larger recent drawdowns reduce the composite score.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.0364,
        "signal_strength": 12.1235
      }
    ],
    "confidence_hint": 0.7674,
    "risk_score_hint": 0.4795,
    "position_size_pct": 6.6488
  },
  "suggested_position_size_pct": 4.5
}