Decision support and paper executionAI is advisory only; risk controls are authoritative.
Live disabledAutonomous offLocal auth placeholder
ActionBUY
Confidence72%
Market regimebullish
Composite score0.72
Data age7m

Manual approval path

ready for review
Trade ticketADAUSDTSideBUYSuggested quantity529.38062467Reference price$0.1889

Risk validation

approved
RuleSeverityReason
No deterministic risk violations.

Provider visibility

primary data
ConfiguredcoinbaseActual latestcoinbaseLatest candleJul 05, 04:00 PM GMT+2StatussuccessLatency193 msLast eventJul 05, 04:07 PM GMT+2Last successJul 05, 04:00 PM GMT+2ErrorNoneProvider countscoinbase: 204

Latest price data

Jul 05, 04:00 PM GMT+2
Open$0.189
High$0.1891
Low$0.1885
Close$0.1889
Volume173,750.103448

Recommendation metadata

Jul 05, 03:22 PM GMT+2
Risk score34%Time horizonshort_termSuggested size+5.00%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, 04:00 PM GMT+2
timestamp2026-07-05T14:00:00+00:00
latest_price0.1889
change_24h_pct2.607279
change_7d_pct30.817175
volatility_pct1.133012
trenduptrend
sma_fast0.190315
sma_slow0.183988
rsi38.505747
macd0.001152
macd_signal0.002047
max_drawdown_pct6.609915
momentum_pct-2.073613

Deterministic signals

6 signals
moving_average_crossover:bullish:0.65market_regime:bullish:trend=0.55:volatility=0.17composite_score:0.72action_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.13751.00xbullish0.55Regime trend score adjusts the directional score.
volatility-0.01931.00xrisk_penalty0.1713Higher realized volatility reduces conviction.
drawdown-0.01981.00xrisk_penalty6.6099Larger recent drawdowns reduce the composite score.

Recommendation history

25 recent decisions
CreatedActionConfidenceRiskPriceStatusSummary
Jul 05, 03:22 PM GMT+2BUY72%34%$0.1879approved_by_riskModest BUY on ADA: the trend and composite score are bullish, but conviction is only moderate because short-term momentum is soft, so keep size conservative and risk tightly managed.
Jul 05, 02:22 PM GMT+2BUY67%41%$0.1856approved_by_riskADA has a modest bullish setup with trend support and mean-reversion appeal, but conflicting short-term momentum keeps conviction moderate, so a small BUY is appropriate.
Jul 05, 11:11 AM GMT+2BUY77%31%$0.1923approved_by_riskBullish trend and strong composite score support a cautious short-term BUY in ADA, sized modestly because momentum is not explosive and risk remains moderate.
Jul 05, 10:21 AM GMT+2BUY74%34%$0.1919approved_by_riskBullish trend and strong composite scoring support a modest ADA buy, but sizing is kept conservative because momentum is not explosive and risk is still moderate.
Jul 05, 07:57 AM GMT+2BUY76%33%$0.1891rejected_by_riskADA shows a constructive short-term bullish setup with a clean moving-average trend and strong recent gains, so a modest BUY is justified with conservative sizing and defined risk controls.
Jul 05, 07:51 AM GMT+2BUY74%31%$0.1888rejected_by_riskADA shows a bullish short-term setup with a strong composite score and neutral RSI, so a modest BUY is reasonable with tight risk controls.
Jul 05, 07:45 AM GMT+2BUY74%31%$0.1883rejected_by_riskBullish setup for ADA with fresh data and supportive trend signals; buy only with a conservative size because momentum is positive but not explosive and volatility/drawdown are not zero.
Jul 05, 07:40 AM GMT+2BUY76%31%$0.1891rejected_by_riskBullish trend structure and a strong composite score favor a modest BUY in ADA, but the position should stay conservative because momentum is not accelerating and risk remains moderate.
Jul 05, 07:34 AM GMT+2BUY78%34%$0.1893rejected_by_riskBullish trend and strong composite scoring justify a cautious short-term BUY in ADA with modest sizing and clear risk controls.
Jul 05, 07:28 AM GMT+2BUY77%32%$0.1897approved_by_riskBullish trend and strong composite score support a cautious short-term BUY in ADA, sized below the model hint due to neutral RSI and moderate risk.
Jul 05, 07:26 AM GMT+2BUY77%32%$0.1899approved_by_riskBullish trend and supportive composite scoring justify a modest ADA BUY with conservative sizing and defined risk controls.
Jul 05, 07:22 AM GMT+2BUY78%32%$0.1901approved_by_riskBullish trend and strong composite scoring support a cautious short-term BUY in ADA, sized modestly because momentum is not overextended and risk remains moderate.
Jul 05, 07:16 AM GMT+2BUY77%32%$0.19approved_by_riskADA has a bullish trend and strong composite score, so a cautious short-term BUY is justified with conservative sizing and a defined stop.
Jul 05, 07:10 AM GMT+2BUY76%31%$0.1894approved_by_riskADA shows a bullish short-term setup with supportive moving averages and positive recent performance, but conviction is moderated by neutral RSI and some volatility, so a conservative buy is warranted.
Jul 05, 07:05 AM GMT+2BUY78%34%$0.1896approved_by_riskBullish trend and strong composite score justify a conservative short-term BUY in ADA, sized below the model hint to account for moderate risk.
Jul 05, 06:58 AM GMT+2BUY86%30%$0.1905rejected_by_riskBullish trend and momentum support a cautious BUY in ADA with a modest 6% position size and defined risk controls.
Jul 05, 06:53 AM GMT+2BUY83%30%$0.1911rejected_by_riskADA shows a strong bullish setup with supportive trend and momentum, so a modest short-term BUY is reasonable with disciplined risk control.
Jul 05, 06:47 AM GMT+2BUY87%30%$0.1913rejected_by_riskBullish trend, positive momentum, and supportive regime data justify a conservative BUY of ADA, sized modestly given residual risk.
Jul 05, 06:41 AM GMT+2BUY86%31%$0.1917rejected_by_riskBullish trend and momentum support a cautious short-term BUY in ADA, sized below the model hint to account for moderate risk and recent volatility.
Jul 05, 06:35 AM GMT+2BUY86%30%$0.1919rejected_by_riskADA shows a credible short-term bullish setup with aligned trend and momentum signals, so a modest BUY is justified with disciplined risk controls.
Jul 05, 06:29 AM GMT+2BUY84%31%$0.1912approved_by_riskADA shows a fresh bullish trend with aligned momentum and moving-average signals; a moderate short-term BUY is justified, with disciplined risk controls.
Jul 05, 06:24 AM GMT+2BUY84%30%$0.1905approved_by_riskBullish trend and momentum support a conservative BUY in ADA, sized below the model hint to reflect moderate risk and preserve capital discipline.
Jul 05, 06:18 AM GMT+2BUY84%30%$0.1901approved_by_riskBullish trend, positive momentum, and supportive deterministic signals justify a conservative BUY with moderate sizing and defined risk controls.
Jul 05, 06:12 AM GMT+2BUY86%30%$0.1905approved_by_riskADA shows a clean bullish trend with strong momentum and supportive deterministic signals, so a cautious short-term BUY is justified with modest sizing and defined risk controls.
Jul 05, 06:06 AM GMT+2BUY86%31%$0.1904approved_by_riskBullish trend and momentum are aligned for ADA, so a conservative short-term BUY is justified with controlled sizing and a defined stop.

Outcome history

50 tracked recommendations
RecommendedActionEntryLater priceMoveResult
Jul 05, 03:22 PM GMT+2BUY$0.1879$0.1889+0.53%favorable
Jul 05, 02:22 PM GMT+2BUY$0.1856$0.1889+1.78%favorable
Jul 05, 11:11 AM GMT+2BUY$0.1923$0.1889-1.77%adverse
Jul 05, 10:21 AM GMT+2BUY$0.1919$0.1889-1.56%adverse
Jul 05, 07:57 AM GMT+2BUY$0.1891$0.1889-0.11%neutral
Jul 05, 07:51 AM GMT+2BUY$0.1888$0.1889+0.05%neutral
Jul 05, 07:45 AM GMT+2BUY$0.1883$0.1889+0.32%favorable
Jul 05, 07:40 AM GMT+2BUY$0.1891$0.1889-0.11%neutral
Jul 05, 07:34 AM GMT+2BUY$0.1893$0.1889-0.21%neutral
Jul 05, 07:28 AM GMT+2BUY$0.1897$0.1889-0.42%adverse
Jul 05, 07:26 AM GMT+2BUY$0.1899$0.1889-0.53%adverse
Jul 05, 07:22 AM GMT+2BUY$0.1901$0.1889-0.63%adverse
Jul 05, 07:16 AM GMT+2BUY$0.19$0.1889-0.58%adverse
Jul 05, 07:10 AM GMT+2BUY$0.1894$0.1889-0.26%adverse
Jul 05, 07:05 AM GMT+2BUY$0.1896$0.1889-0.37%adverse
Jul 05, 06:58 AM GMT+2BUY$0.1905$0.1889-0.84%adverse
Jul 05, 06:53 AM GMT+2BUY$0.1911$0.1889-1.15%adverse
Jul 05, 06:47 AM GMT+2BUY$0.1913$0.1889-1.25%adverse
Jul 05, 06:41 AM GMT+2BUY$0.1917$0.1889-1.46%adverse
Jul 05, 06:35 AM GMT+2BUY$0.1919$0.1889-1.56%adverse
Jul 05, 06:29 AM GMT+2BUY$0.1912$0.1889-1.20%adverse
Jul 05, 06:24 AM GMT+2BUY$0.1905$0.1889-0.84%adverse
Jul 05, 06:18 AM GMT+2BUY$0.1901$0.1889-0.63%adverse
Jul 05, 06:12 AM GMT+2BUY$0.1905$0.1889-0.84%adverse
Jul 05, 06:06 AM GMT+2BUY$0.1904$0.1889-0.79%adverse
Jul 05, 06:00 AM GMT+2BUY$0.1899$0.1889-0.53%adverse
Jul 05, 05:55 AM GMT+2BUY$0.1904$0.1889-0.79%adverse
Jul 05, 05:49 AM GMT+2BUY$0.1905$0.1889-0.84%adverse
Jul 05, 05:43 AM GMT+2BUY$0.1904$0.1889-0.79%adverse
Jul 05, 05:37 AM GMT+2BUY$0.1898$0.1889-0.47%adverse
Jul 05, 05:32 AM GMT+2BUY$0.1897$0.1889-0.42%adverse
Jul 05, 05:26 AM GMT+2BUY$0.1896$0.1889-0.37%adverse
Jul 05, 05:20 AM GMT+2BUY$0.1901$0.1889-0.63%adverse
Jul 05, 05:14 AM GMT+2BUY$0.1906$0.1889-0.89%adverse
Jul 05, 05:09 AM GMT+2BUY$0.1906$0.1889-0.89%adverse
Jul 05, 05:03 AM GMT+2BUY$0.1908$0.1889-1.00%adverse
Jul 05, 04:57 AM GMT+2BUY$0.191$0.1889-1.10%adverse
Jul 05, 04:52 AM GMT+2BUY$0.1907$0.1889-0.94%adverse
Jul 05, 04:46 AM GMT+2BUY$0.1899$0.1889-0.53%adverse
Jul 05, 04:40 AM GMT+2BUY$0.1901$0.1889-0.63%adverse
Jul 05, 04:35 AM GMT+2BUY$0.1904$0.1889-0.79%adverse
Jul 05, 04:29 AM GMT+2BUY$0.1893$0.1889-0.21%neutral
Jul 05, 04:23 AM GMT+2BUY$0.19$0.1889-0.58%adverse
Jul 05, 04:17 AM GMT+2BUY$0.1896$0.1889-0.37%adverse
Jul 05, 04:12 AM GMT+2BUY$0.1903$0.1889-0.74%adverse
Jul 05, 04:06 AM GMT+2BUY$0.1906$0.1889-0.89%adverse
Jul 05, 04:00 AM GMT+2BUY$0.191$0.1889-1.10%adverse
Jul 04, 09:23 PM GMT+2BUY$0.1947$0.1889-2.98%adverse
Jul 04, 03:12 PM GMT+2BUY$0.1773$0.1889+6.54%favorable
Jul 04, 03:01 PM GMT+2BUY$0.1777$0.1889+6.30%favorable

Backtest comparison

180 candles
StrategyStatusTotal returnBuy/holdTradesExposureAlignment
moving_average_crossoversucceeded+4.42%+30.46%3+89.92%supports
rsi_mean_reversionsucceeded+0.92%+30.46%3+11.76%supports
momentum_breakoutsucceeded+3.58%+30.46%4+79.83%supports

Audit trail

50 relevant events
CreatedEventActorEntity
Jul 05, 03:22 PM GMT+2recommendation.createdsystemrecommendation:1017
Jul 05, 02:22 PM GMT+2recommendation.createdsystemrecommendation:1010
Jul 05, 11:11 AM GMT+2recommendation.createdsystemrecommendation:1003
Jul 05, 10:21 AM GMT+2recommendation.createdsystemrecommendation:995
Jul 05, 07:57 AM GMT+2recommendation.createdsystemrecommendation:858
Jul 05, 07:51 AM GMT+2recommendation.createdsystemrecommendation:850
Jul 05, 07:45 AM GMT+2recommendation.createdsystemrecommendation:842
Jul 05, 07:40 AM GMT+2recommendation.createdsystemrecommendation:835
Jul 05, 07:34 AM GMT+2recommendation.createdsystemrecommendation:827
Jul 05, 07:28 AM GMT+2recommendation.createdsystemrecommendation:819
Jul 05, 07:26 AM GMT+2recommendation.createdsystemrecommendation:811
Jul 05, 07:22 AM GMT+2recommendation.createdsystemrecommendation:804
Jul 05, 07:16 AM GMT+2recommendation.createdsystemrecommendation:795
Jul 05, 07:10 AM GMT+2recommendation.createdsystemrecommendation:788
Jul 05, 07:05 AM GMT+2recommendation.createdsystemrecommendation:780
Jul 05, 06:58 AM GMT+2recommendation.createdsystemrecommendation:768
Jul 05, 06:53 AM GMT+2recommendation.createdsystemrecommendation:759
Jul 05, 06:47 AM GMT+2recommendation.createdsystemrecommendation:750
Jul 05, 06:41 AM GMT+2recommendation.createdsystemrecommendation:743
Jul 05, 06:35 AM GMT+2recommendation.createdsystemrecommendation:735
Jul 05, 06:29 AM GMT+2recommendation.createdsystemrecommendation:727
Jul 05, 06:24 AM GMT+2recommendation.createdsystemrecommendation:720
Jul 05, 06:18 AM GMT+2recommendation.createdsystemrecommendation:712
Jul 05, 06:12 AM GMT+2recommendation.createdsystemrecommendation:704
Jul 05, 06:06 AM GMT+2recommendation.createdsystemrecommendation:697
Jul 05, 06:00 AM GMT+2recommendation.createdsystemrecommendation:685
Jul 05, 05:55 AM GMT+2recommendation.createdsystemrecommendation:677
Jul 05, 05:49 AM GMT+2recommendation.createdsystemrecommendation:669
Jul 05, 05:43 AM GMT+2recommendation.createdsystemrecommendation:661
Jul 05, 05:37 AM GMT+2recommendation.createdsystemrecommendation:653
Jul 05, 05:32 AM GMT+2recommendation.createdsystemrecommendation:645
Jul 05, 05:26 AM GMT+2recommendation.createdsystemrecommendation:637
Jul 05, 05:20 AM GMT+2recommendation.createdsystemrecommendation:629
Jul 05, 05:14 AM GMT+2recommendation.createdsystemrecommendation:621
Jul 05, 05:09 AM GMT+2recommendation.createdsystemrecommendation:613
Jul 05, 05:03 AM GMT+2recommendation.createdsystemrecommendation:605
Jul 05, 04:57 AM GMT+2recommendation.createdsystemrecommendation:598
Jul 05, 04:52 AM GMT+2recommendation.createdsystemrecommendation:590
Jul 05, 04:46 AM GMT+2recommendation.createdsystemrecommendation:582
Jul 05, 04:40 AM GMT+2recommendation.createdsystemrecommendation:574
Jul 05, 04:35 AM GMT+2recommendation.createdsystemrecommendation:566
Jul 05, 04:29 AM GMT+2recommendation.createdsystemrecommendation:558
Jul 05, 04:23 AM GMT+2recommendation.createdsystemrecommendation:550
Jul 05, 04:17 AM GMT+2recommendation.createdsystemrecommendation:542
Jul 05, 04:12 AM GMT+2recommendation.createdsystemrecommendation:534
Jul 05, 04:06 AM GMT+2recommendation.createdsystemrecommendation:525
Jul 05, 04:00 AM GMT+2recommendation.createdsystemrecommendation:517
Jul 04, 09:23 PM GMT+2recommendation.createdsystemrecommendation:67
Jul 04, 03:12 PM GMT+2recommendation.createdsystemrecommendation:13
Jul 04, 03:01 PM GMT+2recommendation.createdsystemrecommendation:2

AI prompt sent

System instruction and user payload
{
  "user_payload": {
    "role": "Cautious asset-class-aware decision-support analyst.",
    "asset": {
      "name": "Cardano",
      "symbol": "ADA",
      "category": "digital_asset",
      "metadata": {
        "networks": [
          "cardano"
        ],
        "coingecko_id": "cardano",
        "binance_symbol": "ADAUSDT",
        "live_candidate": true,
        "coinbase_product_id": "ADA-USD"
      },
      "asset_type": "crypto",
      "base_currency": "ADA",
      "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:21.521949+00:00",
      "realized_pnl_usd": 0,
      "daily_realized_loss_usd": 0,
      "weekly_realized_loss_usd": 0
    },
    "indicators": {
      "rsi": 38.15028901734102,
      "macd": 0.0011715675598123199,
      "trend": "uptrend",
      "symbol": "ADA",
      "sma_fast": 0.19059,
      "sma_slow": 0.18357,
      "timestamp": "2026-07-05T13:00:00+00:00",
      "macd_signal": 0.0022540945561609466,
      "latest_price": 0.1879,
      "momentum_pct": -2.135416666666663,
      "change_7d_pct": 30.395558639833453,
      "change_24h_pct": 5.08948545861299,
      "volatility_pct": 1.3701967953372252,
      "max_drawdown_pct": 6.609914872308457
    },
    "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.7174,
      "regime": {
        "name": "bullish",
        "reasons": [
          "fast moving average is above slow moving average",
          "7d momentum is strongly positive",
          "short-term momentum is negative"
        ],
        "trend_score": 0.55,
        "risk_adjustment": 0.0771,
        "volatility_score": 0.1713
      },
      "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.1375,
          "signal_strength": 0.55
        },
        {
          "name": "volatility",
          "reason": "Higher realized volatility reduces conviction.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.0193,
          "signal_strength": 0.1713
        },
        {
          "name": "drawdown",
          "reason": "Larger recent drawdowns reduce the composite score.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.0198,
          "signal_strength": 6.6099
        }
      ],
      "confidence_hint": 0.7783,
      "risk_score_hint": 0.3138,
      "position_size_pct": 7.4312
    },
    "deterministic_signals": [
      "moving_average_crossover:bullish:0.65",
      "rsi_mean_reversion:neutral:0.20",
      "momentum_breakout:neutral:0.20",
      "market_regime:bullish:trend=0.55:volatility=0.17",
      "composite_score:0.72",
      "action_bias:BUY",
      "position_size_hint:7.43"
    ],
    "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": "ADA",
  "action": "BUY",
  "summary": "Modest BUY on ADA: the trend and composite score are bullish, but conviction is only moderate because short-term momentum is soft, so keep size conservative and risk tightly managed.",
  "confidence": 0.72,
  "risk_score": 0.34,
  "signals_used": [
    "moving_average_crossover:bullish:0.65",
    "market_regime:bullish:trend=0.55:volatility=0.17",
    "composite_score:0.72",
    "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 crosses back below slow SMA.",
    "7-day momentum reverses sharply negative while price loses recent gains.",
    "RSI becomes overbought and price action fails to confirm continuation.",
    "Composite score drops below the buy threshold or volatility expands materially.",
    "Market data quality deteriorates or becomes stale."
  ],
  "entry_rationale": [
    "Fresh market data is available and internally consistent with a bullish regime.",
    "Fast SMA is above slow SMA, supporting the bullish moving-average crossover signal.",
    "7-day performance is strongly positive, indicating favorable recent trend despite the small negative intraday momentum.",
    "RSI is neutral, so the asset is not obviously overbought at this level.",
    "Portfolio has ample cash and no existing ADA exposure, allowing a modest starter position."
  ],
  "exit_conditions": [
    "Exit or reduce if ADA closes below the slow SMA for multiple observations.",
    "Review if RSI moves above 70 and momentum weakens, indicating possible overextension.",
    "Exit if price falls more than the stop-loss threshold from entry.",
    "Reassess if the composite score falls materially or the regime shifts to sideways/bearish.",
    "Exit review if data becomes stale or a provider fallback is introduced."
  ],
  "take_profit_pct": 9,
  "scoring_explanation": {
    "score": 0.7174,
    "regime": {
      "name": "bullish",
      "reasons": [
        "fast moving average is above slow moving average",
        "7d momentum is strongly positive",
        "short-term momentum is negative"
      ],
      "trend_score": 0.55,
      "risk_adjustment": 0.0771,
      "volatility_score": 0.1713
    },
    "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.1375,
        "signal_strength": 0.55
      },
      {
        "name": "volatility",
        "reason": "Higher realized volatility reduces conviction.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.0193,
        "signal_strength": 0.1713
      },
      {
        "name": "drawdown",
        "reason": "Larger recent drawdowns reduce the composite score.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.0198,
        "signal_strength": 6.6099
      }
    ],
    "confidence_hint": 0.7783,
    "risk_score_hint": 0.3138,
    "position_size_pct": 7.4312
  },
  "suggested_position_size_pct": 5
}