Decision support and paper executionAI is advisory only; risk controls are authoritative.
Live disabledAutonomous offLocal auth placeholder
Latest market candle is 58m old, above the 30 minute threshold.
ActionWAIT
Confidence83%
Market regimebearish
Composite score-0.75
Data age58m

Manual approval path

needs review
Trade ticketPOLUSDTSideN/ASuggested quantityN/AReference price$0.0729
This recommendation is not an executable BUY or SELL decision. Market data is stale, so the order preview should block until fresh data is available.
Only BUY and SELL recommendations can be opened as trade tickets.Open manual trading

Risk validation

approved
RuleSeverityReason
No deterministic risk violations.

Provider visibility

primary data
ConfiguredcoinbaseActual latestcoinbaseLatest candleJul 05, 03:00 PM GMT+2StatussuccessLatency153 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$0.073
High$0.0732
Low$0.0729
Close$0.0729
Volume27,020.57

Recommendation metadata

Jul 05, 03:22 PM GMT+2
Risk score48%Time horizonshort_termSuggested size+0.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_price0.0732
change_24h_pct-0.408163
change_7d_pct2.664797
volatility_pct0.390861
trenddowntrend
sma_fast0.073185
sma_slow0.07337
rsi43.333333
macd-0.000149
macd_signal-0.000149
max_drawdown_pct5.131761
momentum_pct-0.543478

Deterministic signals

6 signals
moving_average_crossover:bearish:0.65rsi_mean_reversion:neutral:0.20momentum_breakout:neutral:0.20market_regime:bearish:trend=-0.45:volatility=0.05composite_score:-0.75action_bias:SELL

Scoring explanation

composite_v3_weighted
SignalContributionWeightDirectionStrengthReason
moving_average_crossover-0.61901.00xbearish0.65Fast SMA is below 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.00xbearish0.45Regime trend score adjusts the directional score.
volatility-0.00551.00xrisk_penalty0.0489Higher realized volatility reduces conviction.
drawdown-0.01541.00xrisk_penalty5.1318Larger recent drawdowns reduce the composite score.

Recommendation history

25 recent decisions
CreatedActionConfidenceRiskPriceStatusSummary
Jul 05, 03:22 PM GMT+2WAIT83%48%$0.0732approved_by_riskWait on POL: the bearish moving-average structure and negative composite score outweigh the neutral RSI and modest 7-day gain, so there is no strong buy edge now.
Jul 05, 02:22 PM GMT+2SELL79%25%$0.073rejected_by_riskBearish technical structure dominates, so the cautious call is to SELL any POL exposure rather than hold or add.
Jul 05, 10:21 AM GMT+2BUY80%31%$0.073rejected_by_riskBullish short-term setup with strong deterministic support and low-to-moderate risk; take a conservative starter BUY rather than a full-size allocation.
Jul 05, 09:32 AM GMT+2BUY72%41%$0.0727rejected_by_riskSmall short-term BUY on POL: the setup is technically constructive and oversold, but the sideways regime and weak momentum justify conservative sizing and defined risk.
Jul 05, 09:26 AM GMT+2BUY77%39%$0.0727approved_by_riskSmall BUY is justified by a strong composite signal and oversold mean-reversion setup, but the sideways regime and negative momentum warrant conservative sizing and tight risk controls.
Jul 05, 09:20 AM GMT+2BUY78%31%$0.0729approved_by_riskBullish setup with oversold mean-reversion and a mild moving-average crossover supports a cautious short-term BUY, sized below the hint due to mixed momentum and MACD weakness.
Jul 05, 09:14 AM GMT+2BUY78%34%$0.0728rejected_by_riskBullish setup with a modest oversold/reversion edge and supportive moving-average structure, so a conservative BUY is warranted.
Jul 05, 09:08 AM GMT+2BUY81%31%$0.0728rejected_by_riskBullish short-term setup with strong composite support, so a modest BUY is justified; size conservatively due to only moderate conviction and some residual volatility.
Jul 05, 09:02 AM GMT+2BUY78%39%$0.0728rejected_by_riskBullish trend and oversold RSI support a modest short-term BUY in POL, but the position should stay small because momentum is still weak and MACD remains negative.
Jul 05, 08:56 AM GMT+2BUY74%31%$0.0729rejected_by_riskPOL shows a bullish short-term setup with oversold mean-reversion support, but momentum is not strong enough for an aggressive allocation, so a modest BUY is appropriate.
Jul 05, 08:50 AM GMT+2BUY77%38%$0.0729rejected_by_riskBullish short-term setup with moderate risk: buy a smaller 5% position, using a tight stop and a defined profit target because momentum is still mixed.
Jul 05, 08:44 AM GMT+2BUY76%32%$0.0728rejected_by_riskModerate-conviction BUY on POL: bullish crossover and near-oversold RSI outweigh weak momentum, so a smaller-than-hint starter position is reasonable with defined risk controls.
Jul 05, 08:39 AM GMT+2BUY73%30%$0.073rejected_by_riskPOL shows a modest bullish setup with a favorable composite score, so a conservative short-term BUY is reasonable despite only moderate momentum.
Jul 05, 08:33 AM GMT+2BUY76%34%$0.0729rejected_by_riskPOL shows a bullish but not perfect setup; a modest BUY is warranted with conservative sizing and tight risk controls.
Jul 05, 08:27 AM GMT+2BUY74%31%$0.0729approved_by_riskBullish short-term setup with a strong composite score and near-oversold RSI; take a modest BUY with conservative sizing and defined risk controls.
Jul 05, 08:21 AM GMT+2BUY74%31%$0.0729approved_by_riskBullish setup with a small, cautious BUY due to supportive trend and oversold RSI, but keep sizing conservative because momentum is still weak and risk is not negligible.
Jul 05, 08:15 AM GMT+2BUY78%32%$0.0728approved_by_riskModerate-conviction short-term BUY for POL based on bullish trend structure and near-oversold RSI, sized conservatively at 5% due to weak momentum and modest drawdown risk.
Jul 05, 08:09 AM GMT+2BUY76%31%$0.0728approved_by_riskBullish trend and near-oversold RSI support a cautious short-term BUY in POL, but momentum is not strong, so size modestly and use a tight risk plan.
Jul 05, 08:03 AM GMT+2BUY77%38%$0.0729approved_by_riskPOL has a strong bullish composite with mild mean-reversion support and a favorable trend setup, so a small short-term BUY is reasonable with tight risk controls.
Jul 05, 07:57 AM GMT+2BUY72%31%$0.073rejected_by_riskBullish but cautious short-term BUY on POL: the crossover and oversold RSI support a small starter position, while weak momentum argues for conservative sizing and a tight risk plan.
Jul 05, 07:51 AM GMT+2BUY74%34%$0.0728rejected_by_riskBullish trend and near-oversold RSI support a cautious short-term BUY in POL, but sizing is reduced due to modest momentum and some signal conflict.
Jul 05, 07:45 AM GMT+2BUY74%34%$0.0728rejected_by_riskBullish setup with an oversold RSI and supportive moving-average structure; take a cautious starter BUY due to mixed short-term momentum and modest drawdown risk.
Jul 05, 07:39 AM GMT+2BUY71%34%$0.0729rejected_by_riskBullish short-term setup on POL with a modest pullback in an uptrend; buy size should be conservative due to weak momentum and recent drawdown.
Jul 05, 07:33 AM GMT+2BUY76%38%$0.0729rejected_by_riskBullish setup with moderate conviction: take a small POL starter position short term, but keep risk controlled because momentum remains weak and MACD is still negative.
Jul 05, 07:28 AM GMT+2BUY72%38%$0.0729approved_by_riskBullish technical setup with an oversold RSI and positive regime support justifies a cautious short-term BUY, sized below the model hint due to mixed momentum and recent drawdown.

Outcome history

50 tracked recommendations
RecommendedActionEntryLater priceMoveResult
Jul 05, 03:22 PM GMT+2WAIT$0.0732PendingPendingpending
Jul 05, 02:22 PM GMT+2SELL$0.073$0.0729-0.14%neutral
Jul 05, 10:21 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 09:32 AM GMT+2BUY$0.0727$0.0729+0.28%favorable
Jul 05, 09:26 AM GMT+2BUY$0.0727$0.0729+0.28%favorable
Jul 05, 09:20 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 09:14 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 09:08 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 09:02 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 08:56 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 08:50 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 08:44 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 08:39 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 08:33 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 08:27 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 08:21 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 08:15 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 08:09 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 08:03 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:57 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 07:51 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 07:45 AM GMT+2BUY$0.0728$0.0729+0.14%neutral
Jul 05, 07:39 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:33 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:28 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:26 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:22 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:16 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 07:10 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 07:04 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:58 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:53 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:47 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:41 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:35 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:30 AM GMT+2BUY$0.0731$0.0729-0.27%adverse
Jul 05, 06:23 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:18 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 06:06 AM GMT+2BUY$0.0729$0.0729+0.00%neutral
Jul 05, 02:41 AM GMT+2BUY$0.073$0.0729-0.14%neutral
Jul 05, 01:56 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 01:51 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 01:45 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 01:40 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 01:34 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 01:11 AM GMT+2BUY$0.0736$0.0729-0.95%adverse
Jul 05, 01:06 AM GMT+2BUY$0.0737$0.0729-1.09%adverse
Jul 05, 01:00 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 12:55 AM GMT+2BUY$0.0738$0.0729-1.22%adverse
Jul 05, 12:49 AM GMT+2BUY$0.0737$0.0729-1.09%adverse

Backtest comparison

180 candles
StrategyStatusTotal returnBuy/holdTradesExposureAlignment
moving_average_crossoversucceeded-0.29%+2.81%4+62.18%mixed
rsi_mean_reversionsucceeded+0.07%+2.81%5+23.53%mixed
momentum_breakoutsucceeded+0.60%+2.81%1+81.51%mixed

Audit trail

50 relevant events
CreatedEventActorEntity
Jul 05, 03:22 PM GMT+2recommendation.createdsystemrecommendation:1019
Jul 05, 02:22 PM GMT+2recommendation.createdsystemrecommendation:1011
Jul 05, 10:21 AM GMT+2recommendation.createdsystemrecommendation:991
Jul 05, 09:32 AM GMT+2recommendation.createdsystemrecommendation:984
Jul 05, 09:26 AM GMT+2recommendation.createdsystemrecommendation:975
Jul 05, 09:20 AM GMT+2recommendation.createdsystemrecommendation:967
Jul 05, 09:14 AM GMT+2recommendation.createdsystemrecommendation:959
Jul 05, 09:08 AM GMT+2recommendation.createdsystemrecommendation:951
Jul 05, 09:02 AM GMT+2recommendation.createdsystemrecommendation:943
Jul 05, 08:56 AM GMT+2recommendation.createdsystemrecommendation:936
Jul 05, 08:50 AM GMT+2recommendation.createdsystemrecommendation:928
Jul 05, 08:44 AM GMT+2recommendation.createdsystemrecommendation:919
Jul 05, 08:39 AM GMT+2recommendation.createdsystemrecommendation:915
Jul 05, 08:33 AM GMT+2recommendation.createdsystemrecommendation:904
Jul 05, 08:27 AM GMT+2recommendation.createdsystemrecommendation:895
Jul 05, 08:21 AM GMT+2recommendation.createdsystemrecommendation:887
Jul 05, 08:15 AM GMT+2recommendation.createdsystemrecommendation:879
Jul 05, 08:09 AM GMT+2recommendation.createdsystemrecommendation:871
Jul 05, 08:03 AM GMT+2recommendation.createdsystemrecommendation:863
Jul 05, 07:57 AM GMT+2recommendation.createdsystemrecommendation:855
Jul 05, 07:51 AM GMT+2recommendation.createdsystemrecommendation:847
Jul 05, 07:45 AM GMT+2recommendation.createdsystemrecommendation:839
Jul 05, 07:39 AM GMT+2recommendation.createdsystemrecommendation:831
Jul 05, 07:33 AM GMT+2recommendation.createdsystemrecommendation:823
Jul 05, 07:28 AM GMT+2recommendation.createdsystemrecommendation:815
Jul 05, 07:26 AM GMT+2recommendation.createdsystemrecommendation:807
Jul 05, 07:22 AM GMT+2recommendation.createdsystemrecommendation:799
Jul 05, 07:16 AM GMT+2recommendation.createdsystemrecommendation:791
Jul 05, 07:10 AM GMT+2recommendation.createdsystemrecommendation:783
Jul 05, 07:04 AM GMT+2recommendation.createdsystemrecommendation:776
Jul 05, 06:58 AM GMT+2recommendation.createdsystemrecommendation:766
Jul 05, 06:53 AM GMT+2recommendation.createdsystemrecommendation:757
Jul 05, 06:47 AM GMT+2recommendation.createdsystemrecommendation:749
Jul 05, 06:41 AM GMT+2recommendation.createdsystemrecommendation:741
Jul 05, 06:35 AM GMT+2recommendation.createdsystemrecommendation:733
Jul 05, 06:30 AM GMT+2recommendation.createdsystemrecommendation:732
Jul 05, 06:23 AM GMT+2recommendation.createdsystemrecommendation:718
Jul 05, 06:18 AM GMT+2recommendation.createdsystemrecommendation:710
Jul 05, 06:06 AM GMT+2recommendation.createdsystemrecommendation:695
Jul 05, 02:41 AM GMT+2recommendation.createdsystemrecommendation:404
Jul 05, 01:56 AM GMT+2recommendation.createdsystemrecommendation:340
Jul 05, 01:51 AM GMT+2recommendation.createdsystemrecommendation:332
Jul 05, 01:45 AM GMT+2recommendation.createdsystemrecommendation:324
Jul 05, 01:40 AM GMT+2recommendation.createdsystemrecommendation:316
Jul 05, 01:34 AM GMT+2recommendation.createdsystemrecommendation:308
Jul 05, 01:11 AM GMT+2recommendation.createdsystemrecommendation:276
Jul 05, 01:06 AM GMT+2recommendation.createdsystemrecommendation:268
Jul 05, 01:00 AM GMT+2recommendation.createdsystemrecommendation:260
Jul 05, 12:55 AM GMT+2recommendation.createdsystemrecommendation:252
Jul 05, 12:49 AM GMT+2recommendation.createdsystemrecommendation:244

AI prompt sent

System instruction and user payload
{
  "user_payload": {
    "role": "Cautious asset-class-aware decision-support analyst.",
    "asset": {
      "name": "Polygon Ecosystem Token",
      "symbol": "POL",
      "category": "layer2",
      "metadata": {
        "networks": [
          "polygon",
          "ethereum"
        ],
        "coingecko_id": "polygon-ecosystem-token",
        "binance_symbol": "POLUSDT",
        "live_candidate": true,
        "coinbase_product_id": "POL-USD"
      },
      "asset_type": "crypto",
      "base_currency": "POL",
      "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:32.188312+00:00",
      "realized_pnl_usd": 0,
      "daily_realized_loss_usd": 0,
      "weekly_realized_loss_usd": 0
    },
    "indicators": {
      "rsi": 43.333333333333286,
      "macd": -0.00014904411994166866,
      "trend": "downtrend",
      "symbol": "POL",
      "sma_fast": 0.073185,
      "sma_slow": 0.07337,
      "timestamp": "2026-07-05T13:00:00+00:00",
      "macd_signal": -0.00014928453250254387,
      "latest_price": 0.0732,
      "momentum_pct": -0.5434782608695619,
      "change_7d_pct": 2.6647966339410925,
      "change_24h_pct": -0.4081632653061153,
      "volatility_pct": 0.3908607606328403,
      "max_drawdown_pct": 5.131761442441047
    },
    "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.7524,
      "regime": {
        "name": "bearish",
        "reasons": [
          "fast moving average is below slow moving average"
        ],
        "trend_score": -0.45,
        "risk_adjustment": 0.022,
        "volatility_score": 0.0489
      },
      "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": "SELL",
      "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 below slow SMA.",
          "weight": 1,
          "direction": "bearish",
          "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": "bearish",
          "contribution": -0.1125,
          "signal_strength": 0.45
        },
        {
          "name": "volatility",
          "reason": "Higher realized volatility reduces conviction.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.0055,
          "signal_strength": 0.0489
        },
        {
          "name": "drawdown",
          "reason": "Larger recent drawdowns reduce the composite score.",
          "weight": 1,
          "direction": "risk_penalty",
          "contribution": -0.0154,
          "signal_strength": 5.1318
        }
      ],
      "confidence_hint": 0.7909,
      "risk_score_hint": 0.2505,
      "position_size_pct": 0
    },
    "deterministic_signals": [
      "moving_average_crossover:bearish:0.65",
      "rsi_mean_reversion:neutral:0.20",
      "momentum_breakout:neutral:0.20",
      "market_regime:bearish:trend=-0.45:volatility=0.05",
      "composite_score:-0.75",
      "action_bias:SELL",
      "position_size_hint:0.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": "POL",
  "action": "WAIT",
  "summary": "Wait on POL: the bearish moving-average structure and negative composite score outweigh the neutral RSI and modest 7-day gain, so there is no strong buy edge now.",
  "confidence": 0.83,
  "risk_score": 0.48,
  "signals_used": [
    "moving_average_crossover:bearish:0.65",
    "rsi_mean_reversion:neutral:0.20",
    "momentum_breakout:neutral:0.20",
    "market_regime:bearish:trend=-0.45:volatility=0.05",
    "composite_score:-0.75",
    "action_bias:SELL"
  ],
  "time_horizon": "short_term",
  "market_regime": "bearish",
  "stop_loss_pct": null,
  "invalidates_if": [
    "Fast SMA rises above slow SMA and MACD turns decisively positive.",
    "RSI and momentum strengthen enough to flip the composite score toward neutral or bullish.",
    "A clear bullish regime emerges with improved directional confirmation."
  ],
  "entry_rationale": [
    "No current position in POL and the supplied evidence does not show a clear long edge.",
    "Trend is bearish: fast SMA is below slow SMA and the deterministic composite score is strongly negative.",
    "RSI is neutral at 43.3, so there is no oversold mean-reversion setup to justify buying.",
    "Momentum is negative and the regime is bearish, which lowers the quality of an entry.",
    "A small 24h decline and modest 7d gain are mixed, but not enough to override the bearish crossover."
  ],
  "exit_conditions": [
    "Re-evaluate if fast SMA crosses back above slow SMA with improving MACD confirmation.",
    "Re-evaluate if RSI moves into an oversold rebound zone and momentum turns positive.",
    "Wait for the composite score to improve materially from negative territory.",
    "Do not act if data quality deteriorates or the market regime remains bearish with weakening momentum."
  ],
  "take_profit_pct": null,
  "scoring_explanation": {
    "score": -0.7524,
    "regime": {
      "name": "bearish",
      "reasons": [
        "fast moving average is below slow moving average"
      ],
      "trend_score": -0.45,
      "risk_adjustment": 0.022,
      "volatility_score": 0.0489
    },
    "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": "SELL",
    "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 below slow SMA.",
        "weight": 1,
        "direction": "bearish",
        "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": "bearish",
        "contribution": -0.1125,
        "signal_strength": 0.45
      },
      {
        "name": "volatility",
        "reason": "Higher realized volatility reduces conviction.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.0055,
        "signal_strength": 0.0489
      },
      {
        "name": "drawdown",
        "reason": "Larger recent drawdowns reduce the composite score.",
        "weight": 1,
        "direction": "risk_penalty",
        "contribution": -0.0154,
        "signal_strength": 5.1318
      }
    ],
    "confidence_hint": 0.7909,
    "risk_score_hint": 0.2505,
    "position_size_pct": 0
  },
  "suggested_position_size_pct": 0
}