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

Manual approval path

needs review
Trade ticketLINKUSDTSideBUYSuggested quantity12.64382349Reference price$7.909
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+2StatussuccessLatency170 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$7.915
High$7.929
Low$7.90
Close$7.909
Volume4,846.47

Recommendation metadata

Jul 05, 03:22 PM GMT+2
Risk score29%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, 03:00 PM GMT+2
timestamp2026-07-05T13:00:00+00:00
latest_price7.925
change_24h_pct-0.126024
change_7d_pct9.310345
volatility_pct0.447182
trenduptrend
sma_fast7.9438
sma_slow7.93762
rsi39.067055
macd-0.014543
macd_signal-0.009794
max_drawdown_pct4.650851
momentum_pct-0.9375

Deterministic signals

6 signals
moving_average_crossover:bullish:0.65market_regime:bullish:trend=0.75:volatility=0.06composite_score:0.79action_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.18751.00xbullish0.75Regime trend score adjusts the directional score.
volatility-0.00631.00xrisk_penalty0.0559Higher realized volatility reduces conviction.
drawdown-0.01401.00xrisk_penalty4.6509Larger recent drawdowns reduce the composite score.

Recommendation history

25 recent decisions
CreatedActionConfidenceRiskPriceStatusSummary
Jul 05, 03:22 PM GMT+2BUY78%29%$7.924approved_by_riskLINK has a bullish composite setup with a modest pullback, neutral RSI, and positive weekly trend, so a small controlled BUY is reasonable.
Jul 05, 02:22 PM GMT+2BUY79%34%$7.887approved_by_riskBUY LINK with a conservative starter size: bullish trend and oversold RSI outweigh weak momentum, but sizing stays modest because MACD is still negative and recent volatility/drawdown add risk.
Jul 05, 11:11 AM GMT+2BUY73%34%$7.917approved_by_riskBullish trend and oversold RSI support a cautious short-term BUY in LINK, but the position should be modest because momentum is not yet confirmed and volatility/drawdown remain non-trivial.
Jul 05, 10:21 AM GMT+2BUY79%34%$7.923approved_by_riskBullish setup with strong deterministic support and a mild pullback, so a cautious short-term BUY is reasonable at reduced size.
Jul 05, 09:32 AM GMT+2BUY82%29%$7.892rejected_by_riskLINK shows a strong bullish composite setup with oversold mean-reversion support; buy a conservative starter position and manage risk tightly.
Jul 05, 09:26 AM GMT+2BUY68%38%$7.881approved_by_riskBUY LINK cautiously with a small short-term allocation: the trend and mean-reversion signals are supportive, but negative momentum and mixed MACD behavior justify conservative sizing and defined exits.
Jul 05, 09:20 AM GMT+2HOLD63%41%$7.875approved_by_riskLINK shows a bullish medium structure but mixed short-term signals; with no existing LINK position provided, the prudent choice is to wait rather than initiate a new trade.
Jul 05, 09:14 AM GMT+2HOLD62%49%$7.88approved_by_riskLINK has a mildly bullish longer-structure but conflicting short-term momentum, so the prudent choice is to hold and wait for clearer confirmation before adding risk.
Jul 05, 09:08 AM GMT+2BUY67%34%$7.884approved_by_riskBUY LINK cautiously for a small short-term allocation: the bullish trend and mean-reversion setup outweigh the weaker momentum, but the position should be sized conservatively because signals are mixed.
Jul 05, 09:02 AM GMT+2BUY67%41%$7.888approved_by_riskModerate-risk BUY on LINK: trend and mean-reversion signals support a small long entry, but bearish short-term momentum limits conviction.
Jul 05, 08:56 AM GMT+2BUY78%32%$7.882rejected_by_riskBUY LINK cautiously for a short-term mean-reversion/trend-follow-through setup, using reduced size because short-term momentum is weak and volatility is non-trivial.
Jul 05, 08:50 AM GMT+2BUY74%31%$7.882rejected_by_riskBuy a small LINK starter position: the trend and mean-reversion signals are supportive, but the negative short-term momentum keeps conviction moderate and sizing conservative.
Jul 05, 08:44 AM GMT+2BUY78%34%$7.878rejected_by_riskBUY LINK cautiously: the trend and mean-reversion signals are aligned bullish, but short-term momentum is soft, so size modestly and use a tight risk plan.
Jul 05, 08:38 AM GMT+2BUY74%33%$7.873rejected_by_riskBullish setup overall, but momentum is not yet confirming, so this is a cautious starter BUY with moderate risk controls.
Jul 05, 08:32 AM GMT+2BUY77%37%$7.878rejected_by_riskLINK shows a bullish setup with a strong composite score and oversold RSI, so a cautious short-term BUY is reasonable with reduced sizing and defined risk controls.
Jul 05, 08:27 AM GMT+2BUY77%34%$7.869approved_by_riskBullish trend structure and oversold RSI support a cautious short-term BUY, but the short-term momentum dip and MACD weakness justify reduced sizing.
Jul 05, 08:21 AM GMT+2BUY78%33%$7.869approved_by_riskLINK shows a bullish setup with oversold RSI and positive trend structure, so a modest BUY is justified, but sizing stays conservative because short-term momentum is still weak.
Jul 05, 08:15 AM GMT+2BUY77%34%$7.865approved_by_riskBUY a small LINK starter position on bullish trend structure and oversold conditions, but keep sizing conservative because short-term momentum is still negative.
Jul 05, 08:09 AM GMT+2BUY78%34%$7.863approved_by_riskSmall short-term BUY in LINK is justified by a strong composite bullish score and oversold RSI, but bearish momentum divergence and recent negative short-term momentum warrant conservative sizing and tight risk controls.
Jul 05, 08:03 AM GMT+2BUY76%38%$7.862approved_by_riskBullish trend and oversold RSI support a cautious starter BUY in LINK, but momentum is mixed enough to keep size below the model hint.
Jul 05, 07:57 AM GMT+2BUY77%39%$7.871rejected_by_riskBullish setup with an oversold pullback inside an uptrend justifies a cautious BUY, but weak short-term momentum warrants reduced sizing and disciplined risk controls.
Jul 05, 07:51 AM GMT+2BUY81%38%$7.862rejected_by_riskBUY LINK cautiously as a short-term bullish mean-reversion trade, but keep size below the model hint because intraday momentum is still negative.
Jul 05, 07:45 AM GMT+2BUY78%34%$7.854rejected_by_riskBUY LINK cautiously: the trend is bullish, RSI is deeply oversold, and deterministic signals strongly favor a small short-term entry, but momentum is still negative so size should stay modest.
Jul 05, 07:39 AM GMT+2BUY76%34%$7.88rejected_by_riskBullish trend and oversold RSI support a cautious short-term BUY in LINK, but negative short-term momentum justifies reduced sizing.
Jul 05, 07:33 AM GMT+2BUY74%41%$7.885rejected_by_riskBuy LINK cautiously with a small starter position because the deterministic model is strongly bullish, but short-term momentum is still weak and the RSI-based rebound setup is not fully confirmed.

Outcome history

50 tracked recommendations
RecommendedActionEntryLater priceMoveResult
Jul 05, 03:22 PM GMT+2BUY$7.924PendingPendingpending
Jul 05, 02:22 PM GMT+2BUY$7.887$7.909+0.28%favorable
Jul 05, 11:11 AM GMT+2BUY$7.917$7.909-0.10%neutral
Jul 05, 10:21 AM GMT+2BUY$7.923$7.909-0.18%neutral
Jul 05, 09:32 AM GMT+2BUY$7.892$7.909+0.22%neutral
Jul 05, 09:26 AM GMT+2BUY$7.881$7.909+0.36%favorable
Jul 05, 09:20 AM GMT+2HOLD$7.875$7.909+0.43%observed
Jul 05, 09:14 AM GMT+2HOLD$7.88$7.909+0.37%observed
Jul 05, 09:08 AM GMT+2BUY$7.884$7.909+0.32%favorable
Jul 05, 09:02 AM GMT+2BUY$7.888$7.909+0.27%favorable
Jul 05, 08:56 AM GMT+2BUY$7.882$7.909+0.34%favorable
Jul 05, 08:50 AM GMT+2BUY$7.882$7.909+0.34%favorable
Jul 05, 08:44 AM GMT+2BUY$7.878$7.909+0.39%favorable
Jul 05, 08:38 AM GMT+2BUY$7.873$7.909+0.46%favorable
Jul 05, 08:32 AM GMT+2BUY$7.878$7.909+0.39%favorable
Jul 05, 08:27 AM GMT+2BUY$7.869$7.909+0.51%favorable
Jul 05, 08:21 AM GMT+2BUY$7.869$7.909+0.51%favorable
Jul 05, 08:15 AM GMT+2BUY$7.865$7.909+0.56%favorable
Jul 05, 08:09 AM GMT+2BUY$7.863$7.909+0.59%favorable
Jul 05, 08:03 AM GMT+2BUY$7.862$7.909+0.60%favorable
Jul 05, 07:57 AM GMT+2BUY$7.871$7.909+0.48%favorable
Jul 05, 07:51 AM GMT+2BUY$7.862$7.909+0.60%favorable
Jul 05, 07:45 AM GMT+2BUY$7.854$7.909+0.70%favorable
Jul 05, 07:39 AM GMT+2BUY$7.88$7.909+0.37%favorable
Jul 05, 07:33 AM GMT+2BUY$7.885$7.909+0.30%favorable
Jul 05, 07:28 AM GMT+2BUY$7.885$7.909+0.30%favorable
Jul 05, 07:26 AM GMT+2BUY$7.883$7.909+0.33%favorable
Jul 05, 07:22 AM GMT+2BUY$7.892$7.909+0.22%neutral
Jul 05, 07:16 AM GMT+2BUY$7.896$7.909+0.16%neutral
Jul 05, 07:10 AM GMT+2BUY$7.885$7.909+0.30%favorable
Jul 05, 07:04 AM GMT+2BUY$7.889$7.909+0.25%favorable
Jul 05, 06:59 AM GMT+2BUY$7.901$7.909+0.10%neutral
Jul 05, 06:53 AM GMT+2BUY$7.902$7.909+0.09%neutral
Jul 05, 06:47 AM GMT+2BUY$7.907$7.909+0.03%neutral
Jul 05, 06:41 AM GMT+2BUY$7.917$7.909-0.10%neutral
Jul 05, 06:35 AM GMT+2BUY$7.91$7.909-0.01%neutral
Jul 05, 06:29 AM GMT+2BUY$7.908$7.909+0.01%neutral
Jul 05, 06:24 AM GMT+2BUY$7.901$7.909+0.10%neutral
Jul 05, 06:18 AM GMT+2BUY$7.894$7.909+0.19%neutral
Jul 05, 06:12 AM GMT+2BUY$7.891$7.909+0.23%neutral
Jul 05, 06:06 AM GMT+2BUY$7.884$7.909+0.32%favorable
Jul 05, 06:00 AM GMT+2BUY$7.882$7.909+0.34%favorable
Jul 05, 05:55 AM GMT+2BUY$7.888$7.909+0.27%favorable
Jul 05, 05:49 AM GMT+2BUY$7.887$7.909+0.28%favorable
Jul 05, 05:43 AM GMT+2BUY$7.886$7.909+0.29%favorable
Jul 05, 05:37 AM GMT+2BUY$7.884$7.909+0.32%favorable
Jul 05, 05:32 AM GMT+2BUY$7.879$7.909+0.38%favorable
Jul 05, 05:26 AM GMT+2BUY$7.883$7.909+0.33%favorable
Jul 05, 05:20 AM GMT+2BUY$7.894$7.909+0.19%neutral
Jul 05, 05:15 AM GMT+2BUY$7.912$7.909-0.04%neutral

Backtest comparison

180 candles
StrategyStatusTotal returnBuy/holdTradesExposureAlignment
moving_average_crossoversucceeded+1.21%+8.95%2+76.47%supports
rsi_mean_reversionsucceeded+0.03%+8.95%1+8.40%supports
momentum_breakoutsucceeded+1.11%+8.95%1+75.63%supports

Audit trail

50 relevant events
CreatedEventActorEntity
Jul 05, 03:22 PM GMT+2recommendation.createdsystemrecommendation:1015
Jul 05, 02:22 PM GMT+2recommendation.createdsystemrecommendation:1006
Jul 05, 11:11 AM GMT+2recommendation.createdsystemrecommendation:998
Jul 05, 10:21 AM GMT+2recommendation.createdsystemrecommendation:990
Jul 05, 09:32 AM GMT+2recommendation.createdsystemrecommendation:983
Jul 05, 09:26 AM GMT+2recommendation.createdsystemrecommendation:977
Jul 05, 09:20 AM GMT+2recommendation.createdsystemrecommendation:969
Jul 05, 09:14 AM GMT+2recommendation.createdsystemrecommendation:962
Jul 05, 09:08 AM GMT+2recommendation.createdsystemrecommendation:954
Jul 05, 09:02 AM GMT+2recommendation.createdsystemrecommendation:947
Jul 05, 08:56 AM GMT+2recommendation.createdsystemrecommendation:934
Jul 05, 08:50 AM GMT+2recommendation.createdsystemrecommendation:926
Jul 05, 08:44 AM GMT+2recommendation.createdsystemrecommendation:918
Jul 05, 08:38 AM GMT+2recommendation.createdsystemrecommendation:910
Jul 05, 08:32 AM GMT+2recommendation.createdsystemrecommendation:902
Jul 05, 08:27 AM GMT+2recommendation.createdsystemrecommendation:894
Jul 05, 08:21 AM GMT+2recommendation.createdsystemrecommendation:886
Jul 05, 08:15 AM GMT+2recommendation.createdsystemrecommendation:878
Jul 05, 08:09 AM GMT+2recommendation.createdsystemrecommendation:870
Jul 05, 08:03 AM GMT+2recommendation.createdsystemrecommendation:862
Jul 05, 07:57 AM GMT+2recommendation.createdsystemrecommendation:854
Jul 05, 07:51 AM GMT+2recommendation.createdsystemrecommendation:846
Jul 05, 07:45 AM GMT+2recommendation.createdsystemrecommendation:838
Jul 05, 07:39 AM GMT+2recommendation.createdsystemrecommendation:830
Jul 05, 07:33 AM GMT+2recommendation.createdsystemrecommendation:822
Jul 05, 07:28 AM GMT+2recommendation.createdsystemrecommendation:814
Jul 05, 07:26 AM GMT+2recommendation.createdsystemrecommendation:806
Jul 05, 07:22 AM GMT+2recommendation.createdsystemrecommendation:798
Jul 05, 07:16 AM GMT+2recommendation.createdsystemrecommendation:790
Jul 05, 07:10 AM GMT+2recommendation.createdsystemrecommendation:782
Jul 05, 07:04 AM GMT+2recommendation.createdsystemrecommendation:774
Jul 05, 06:59 AM GMT+2recommendation.createdsystemrecommendation:770
Jul 05, 06:53 AM GMT+2recommendation.createdsystemrecommendation:761
Jul 05, 06:47 AM GMT+2recommendation.createdsystemrecommendation:752
Jul 05, 06:41 AM GMT+2recommendation.createdsystemrecommendation:745
Jul 05, 06:35 AM GMT+2recommendation.createdsystemrecommendation:737
Jul 05, 06:29 AM GMT+2recommendation.createdsystemrecommendation:729
Jul 05, 06:24 AM GMT+2recommendation.createdsystemrecommendation:722
Jul 05, 06:18 AM GMT+2recommendation.createdsystemrecommendation:715
Jul 05, 06:12 AM GMT+2recommendation.createdsystemrecommendation:707
Jul 05, 06:06 AM GMT+2recommendation.createdsystemrecommendation:700
Jul 05, 06:00 AM GMT+2recommendation.createdsystemrecommendation:688
Jul 05, 05:55 AM GMT+2recommendation.createdsystemrecommendation:679
Jul 05, 05:49 AM GMT+2recommendation.createdsystemrecommendation:671
Jul 05, 05:43 AM GMT+2recommendation.createdsystemrecommendation:663
Jul 05, 05:37 AM GMT+2recommendation.createdsystemrecommendation:655
Jul 05, 05:32 AM GMT+2recommendation.createdsystemrecommendation:647
Jul 05, 05:26 AM GMT+2recommendation.createdsystemrecommendation:639
Jul 05, 05:20 AM GMT+2recommendation.createdsystemrecommendation:631
Jul 05, 05:15 AM GMT+2recommendation.createdsystemrecommendation:623

AI prompt sent

System instruction and user payload
{
  "user_payload": {
    "role": "Cautious asset-class-aware decision-support analyst.",
    "asset": {
      "name": "Chainlink",
      "symbol": "LINK",
      "category": "erc20",
      "metadata": {
        "networks": [
          "ethereum"
        ],
        "coingecko_id": "chainlink",
        "binance_symbol": "LINKUSDT",
        "live_candidate": true,
        "coinbase_product_id": "LINK-USD"
      },
      "asset_type": "crypto",
      "base_currency": "LINK",
      "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:14.170982+00:00",
      "realized_pnl_usd": 0,
      "daily_realized_loss_usd": 0,
      "weekly_realized_loss_usd": 0
    },
    "indicators": {
      "rsi": 38.888888888888935,
      "macd": -0.014622929614048985,
      "trend": "uptrend",
      "symbol": "LINK",
      "sma_fast": 7.94375,
      "sma_slow": 7.9376,
      "timestamp": "2026-07-05T13:00:00+00:00",
      "macd_signal": -0.009810352313545984,
      "latest_price": 7.924,
      "momentum_pct": -0.9499999999999953,
      "change_7d_pct": 9.296551724137936,
      "change_24h_pct": -0.1386263390044012,
      "volatility_pct": 0.4469888831132536,
      "max_drawdown_pct": 4.650851092346875
    },
    "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.7863,
      "regime": {
        "name": "bullish",
        "reasons": [
          "fast moving average is above slow moving average",
          "7d momentum is strongly positive"
        ],
        "trend_score": 0.75,
        "risk_adjustment": 0.0251,
        "volatility_score": 0.0559
      },
      "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.1875,
          "signal_strength": 0.75
        },
        {
          "name": "volatility",
          "reason": "Higher realized volatility reduces conviction.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.0063,
          "signal_strength": 0.0559
        },
        {
          "name": "drawdown",
          "reason": "Larger recent drawdowns reduce the composite score.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.014,
          "signal_strength": 4.6509
        }
      ],
      "confidence_hint": 0.8031,
      "risk_score_hint": 0.2509,
      "position_size_pct": 8
    },
    "deterministic_signals": [
      "moving_average_crossover:bullish:0.65",
      "rsi_mean_reversion:neutral:0.20",
      "momentum_breakout:neutral:0.20",
      "market_regime:bullish:trend=0.75:volatility=0.06",
      "composite_score:0.79",
      "action_bias:BUY",
      "position_size_hint:8.00"
    ],
    "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": "LINK",
  "action": "BUY",
  "summary": "LINK has a bullish composite setup with a modest pullback, neutral RSI, and positive weekly trend, so a small controlled BUY is reasonable.",
  "confidence": 0.78,
  "risk_score": 0.29,
  "signals_used": [
    "moving_average_crossover:bullish:0.65",
    "market_regime:bullish:trend=0.75:volatility=0.06",
    "composite_score:0.79",
    "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 drops below slow SMA on the next confirmed update.",
    "Price loses recent support and daily/7-day momentum turns materially negative.",
    "Volatility or drawdown expands enough to push the composite score below the buy threshold.",
    "A new update reveals stale, missing, or fallback market data."
  ],
  "entry_rationale": [
    "Deterministic composite score is strongly positive at 0.7863 with an explicit BUY bias.",
    "Fast SMA is above slow SMA, supporting the existing uptrend despite the small price pullback.",
    "7-day performance is positive (+9.30%), indicating constructive recent follow-through.",
    "RSI is neutral at 38.9, so the asset is not overbought and has room to extend.",
    "Portfolio has ample cash and no existing LINK exposure, so a small starter position is feasible."
  ],
  "exit_conditions": [
    "Exit or reduce if LINK closes back below the slow SMA and the crossover turns bearish.",
    "Reassess if RSI falls below 30 with continued price weakness or if momentum keeps deteriorating.",
    "Take partial profits if price advances sharply and momentum turns positive while RSI approaches overbought territory.",
    "Exit if the next data update shows a significant regime deterioration or sharp drawdown expansion."
  ],
  "take_profit_pct": 9,
  "scoring_explanation": {
    "score": 0.7863,
    "regime": {
      "name": "bullish",
      "reasons": [
        "fast moving average is above slow moving average",
        "7d momentum is strongly positive"
      ],
      "trend_score": 0.75,
      "risk_adjustment": 0.0251,
      "volatility_score": 0.0559
    },
    "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.1875,
        "signal_strength": 0.75
      },
      {
        "name": "volatility",
        "reason": "Higher realized volatility reduces conviction.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.0063,
        "signal_strength": 0.0559
      },
      {
        "name": "drawdown",
        "reason": "Larger recent drawdowns reduce the composite score.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.014,
        "signal_strength": 4.6509
      }
    ],
    "confidence_hint": 0.8031,
    "risk_score_hint": 0.2509,
    "position_size_pct": 8
  },
  "suggested_position_size_pct": 5
}