APT recommendation review
APT has a bullish trend/mean-reversion setup with strong composite support, so a modest short-term BUY is reasonable, but sizing should stay conservative because momentum is still negative and recent drawdown remains non-trivial.
Latest market candle is 60m old, above the 30 minute threshold.
ActionBUY
Confidence81%
Market regimebullish
Composite score0.98
Data age60m
Manual approval path
needs reviewTrade ticketAPTUSDTSideBUYSuggested quantity161.83848519Reference price$0.6179
Market data is stale, so the order preview should block until fresh data is available.
Risk validation
approved| Rule | Severity | Reason |
|---|---|---|
| No deterministic risk violations. | ||
Provider visibility
primary dataConfiguredcoinbaseActual latestcoinbaseLatest candleJul 05, 03:00 PM GMT+2StatussuccessLatency178 msLast eventJul 05, 03:38 PM GMT+2Last successJul 05, 03:00 PM GMT+2ErrorNoneProvider countscoinbase: 201
Latest price data
Jul 05, 03:00 PM GMT+2| Open | $0.6191 |
| High | $0.6204 |
| Low | $0.6177 |
| Close | $0.6179 |
| Volume | 8,781.433 |
Recommendation metadata
Jul 05, 11:11 AM GMT+2Risk score31%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| timestamp | 2026-07-05T13:00:00+00:00 |
| latest_price | 0.6201 |
| change_24h_pct | -0.97413 |
| change_7d_pct | 6.564702 |
| volatility_pct | 0.566572 |
| trend | downtrend |
| sma_fast | 0.622865 |
| sma_slow | 0.626442 |
| rsi | 39.655172 |
| macd | -0.002725 |
| macd_signal | -0.002557 |
| max_drawdown_pct | 6.196039 |
| momentum_pct | -1.147776 |
Deterministic signals
6 signalsmoving_average_crossover:bullish:0.65rsi_mean_reversion:bullish:0.70market_regime:bullish:trend=0.55:volatility=0.07composite_score:0.98action_bias:BUYposition_size_hint:8.00
Scoring explanation
composite_v3_weighted| Signal | Contribution | Weight | Direction | Strength | Reason |
|---|---|---|---|---|---|
| moving_average_crossover | +0.4194 | 1.00x | bullish | 0.65 | Fast SMA is above slow SMA. |
| rsi_mean_reversion | +0.4516 | 1.00x | bullish | 0.7 | RSI is near oversold. |
| momentum_breakout | +0.0000 | 1.00x | neutral | 0.2 | No breakout momentum. |
| market_regime | +0.1375 | 1.00x | bullish | 0.55 | Regime trend score adjusts the directional score. |
| volatility | -0.0080 | 1.00x | risk_penalty | 0.0709 | Higher realized volatility reduces conviction. |
| drawdown | -0.0186 | 1.00x | risk_penalty | 6.196 | Larger recent drawdowns reduce the composite score. |
Recommendation history
25 recent decisions| Created | Action | Confidence | Risk | Price | Status | Summary |
|---|---|---|---|---|---|---|
| Jul 05, 11:11 AM GMT+2 | BUY | 81% | 31% | $0.6212 | approved_by_risk | APT has a bullish trend/mean-reversion setup with strong composite support, so a modest short-term BUY is reasonable, but sizing should stay conservative because momentum is still negative and recent drawdown remains non-trivial. |
| Jul 05, 10:21 AM GMT+2 | BUY | 76% | 41% | $0.6208 | approved_by_risk | APT shows a strong bullish composite with oversold RSI support, so a cautious short-term BUY is justified with reduced sizing and defined risk controls. |
| Jul 05, 09:32 AM GMT+2 | WAIT | 58% | 57% | $0.6175 | rejected_by_risk | Mixed technicals and only moderate composite strength justify waiting rather than opening a new APT position right now. |
| Jul 05, 09:26 AM GMT+2 | BUY | 68% | 31% | $0.6168 | approved_by_risk | Small speculative BUY: bullish trend and oversold RSI outweigh negative short-term momentum, so a conservative starter position is justified with tight risk controls. |
| Jul 05, 09:20 AM GMT+2 | WAIT | 54% | 56% | $0.6165 | approved_by_risk | APT has some bullish reversal features, but the evidence is still mixed and not strong enough to justify a new position; waiting for confirmation is the cautious choice. |
| Jul 05, 09:02 AM GMT+2 | BUY | 76% | 34% | $0.6167 | rejected_by_risk | APT shows a favorable short-term buy setup with bullish trend structure and oversold RSI support, but the position should stay modest because momentum confirmation is still mixed. |
| Jul 05, 08:56 AM GMT+2 | BUY | 78% | 33% | $0.6171 | rejected_by_risk | APT shows a bullish-but-pulled-back setup: strong composite signals and bullish trend structure support a cautious starter BUY with moderate size and defined risk controls. |
| Jul 05, 08:50 AM GMT+2 | BUY | 74% | 34% | $0.6166 | rejected_by_risk | APT shows a short-term bullish setup with oversold mean-reversion support and a bullish moving-average crossover, so a cautious small BUY is reasonable. |
| Jul 05, 08:45 AM GMT+2 | BUY | 78% | 39% | $0.6167 | rejected_by_risk | Bullish short-term setup with oversold RSI and supportive moving averages, but momentum is still weak, so a smaller-than-hint BUY is appropriate. |
| Jul 05, 08:38 AM GMT+2 | BUY | 81% | 38% | $0.6161 | rejected_by_risk | Bullish setup with oversold mean-reversion support and positive trend alignment; take a small starter BUY with defined risk controls. |
| Jul 05, 08:33 AM GMT+2 | BUY | 75% | 41% | $0.6162 | rejected_by_risk | Buy APT cautiously with a reduced 4% position: the setup is bullish and oversold, but short-term momentum and MACD weakness warrant conservative sizing. |
| Jul 05, 08:27 AM GMT+2 | BUY | 76% | 43% | $0.6152 | approved_by_risk | APT shows a bullish short-term setup with oversold RSI and a positive composite score, but the weak momentum and modest drawdown justify a smaller-than-hint BUY. |
| Jul 05, 08:15 AM GMT+2 | BUY | 74% | 34% | $0.6153 | approved_by_risk | BUY APT with a smaller-than-hint starter position: bullish trend and oversold RSI support a short-term mean-reversion entry, but recent negative momentum justifies conservative sizing. |
| Jul 05, 07:22 AM GMT+2 | BUY | 78% | 34% | $0.618 | approved_by_risk | Bullish trend and oversold RSI support a cautious short-term BUY in APT, but the position should be smaller than the model hint because momentum is still weak and recent downside persists. |
| Jul 05, 06:58 AM GMT+2 | BUY | 79% | 34% | $0.6175 | rejected_by_risk | APT has a bullish composite setup with supportive trend and mean-reversion signals, but short-term momentum is still weak, so a cautious small BUY is appropriate. |
| Jul 05, 06:53 AM GMT+2 | BUY | 79% | 32% | $0.6173 | rejected_by_risk | APT shows a bullish-but-not-urgent setup: strong composite signals and mean-reversion support justify a modest short-term BUY with controlled risk. |
| Jul 05, 06:47 AM GMT+2 | BUY | 71% | 34% | $0.6187 | rejected_by_risk | APT shows a modest bullish setup with supportive trend and composite scoring, but recent short-term momentum is mixed, so a conservative starter BUY is appropriate. |
| Jul 05, 06:41 AM GMT+2 | BUY | 76% | 39% | $0.6179 | rejected_by_risk | APT has a strong bullish composite setup with a reasonable short-term mean-reversion and trend case, but negative MACD and short-term momentum argue for a cautious, smaller-sized BUY. |
| Jul 05, 06:35 AM GMT+2 | BUY | 82% | 32% | $0.6175 | rejected_by_risk | APT shows a bullish but not low-risk setup: trend and mean-reversion signals support a modest short-term BUY, sized conservatively. |
| Jul 05, 06:29 AM GMT+2 | BUY | 82% | 33% | $0.617 | approved_by_risk | Bullish setup with a favorable composite score and mean-reversion support, but short-term momentum is still mixed, so use a conservative starter BUY size. |
| Jul 05, 06:23 AM GMT+2 | BUY | 76% | 34% | $0.6164 | approved_by_risk | APT shows a bullish setup with a mild oversold pullback and positive trend structure, so a conservative starter BUY is reasonable. |
| Jul 05, 06:18 AM GMT+2 | BUY | 76% | 34% | $0.6169 | approved_by_risk | APT shows a bullish but not low-risk setup: trend and mean-reversion signals support a small BUY, so a modest starter allocation is reasonable with tight risk controls. |
| Jul 05, 06:12 AM GMT+2 | BUY | 74% | 34% | $0.6162 | approved_by_risk | Bullish short-term setup with oversold RSI and a positive moving-average structure, so a cautious small BUY is reasonable. |
| Jul 05, 06:06 AM GMT+2 | BUY | 74% | 34% | $0.6157 | approved_by_risk | APT shows a bullish setup with a short-term oversold pullback inside an uptrend, so a cautious starter BUY is reasonable at a reduced size. |
| Jul 05, 06:01 AM GMT+2 | BUY | 71% | 34% | $0.6161 | rejected_by_risk | APT shows a modest bullish setup with supportive trend and composite scoring, so a cautious BUY is justified with reduced sizing and defined exits. |
Outcome history
50 tracked recommendations| Recommended | Action | Entry | Later price | Move | Result |
|---|---|---|---|---|---|
| Jul 05, 11:11 AM GMT+2 | BUY | $0.6212 | $0.6179 | -0.53% | adverse |
| Jul 05, 10:21 AM GMT+2 | BUY | $0.6208 | $0.6179 | -0.47% | adverse |
| Jul 05, 09:32 AM GMT+2 | WAIT | $0.6175 | $0.6179 | +0.06% | neutral |
| Jul 05, 09:26 AM GMT+2 | BUY | $0.6168 | $0.6179 | +0.18% | neutral |
| Jul 05, 09:20 AM GMT+2 | WAIT | $0.6165 | $0.6179 | +0.23% | neutral |
| Jul 05, 09:02 AM GMT+2 | BUY | $0.6167 | $0.6179 | +0.19% | neutral |
| Jul 05, 08:56 AM GMT+2 | BUY | $0.6171 | $0.6179 | +0.13% | neutral |
| Jul 05, 08:50 AM GMT+2 | BUY | $0.6166 | $0.6179 | +0.21% | neutral |
| Jul 05, 08:45 AM GMT+2 | BUY | $0.6167 | $0.6179 | +0.19% | neutral |
| Jul 05, 08:38 AM GMT+2 | BUY | $0.6161 | $0.6179 | +0.29% | favorable |
| Jul 05, 08:33 AM GMT+2 | BUY | $0.6162 | $0.6179 | +0.28% | favorable |
| Jul 05, 08:27 AM GMT+2 | BUY | $0.6152 | $0.6179 | +0.44% | favorable |
| Jul 05, 08:15 AM GMT+2 | BUY | $0.6153 | $0.6179 | +0.42% | favorable |
| Jul 05, 07:22 AM GMT+2 | BUY | $0.618 | $0.6179 | -0.02% | neutral |
| Jul 05, 06:58 AM GMT+2 | BUY | $0.6175 | $0.6179 | +0.06% | neutral |
| Jul 05, 06:53 AM GMT+2 | BUY | $0.6173 | $0.6179 | +0.10% | neutral |
| Jul 05, 06:47 AM GMT+2 | BUY | $0.6187 | $0.6179 | -0.13% | neutral |
| Jul 05, 06:41 AM GMT+2 | BUY | $0.6179 | $0.6179 | +0.00% | neutral |
| Jul 05, 06:35 AM GMT+2 | BUY | $0.6175 | $0.6179 | +0.06% | neutral |
| Jul 05, 06:29 AM GMT+2 | BUY | $0.617 | $0.6179 | +0.15% | neutral |
| Jul 05, 06:23 AM GMT+2 | BUY | $0.6164 | $0.6179 | +0.24% | neutral |
| Jul 05, 06:18 AM GMT+2 | BUY | $0.6169 | $0.6179 | +0.16% | neutral |
| Jul 05, 06:12 AM GMT+2 | BUY | $0.6162 | $0.6179 | +0.28% | favorable |
| Jul 05, 06:06 AM GMT+2 | BUY | $0.6157 | $0.6179 | +0.36% | favorable |
| Jul 05, 06:01 AM GMT+2 | BUY | $0.6161 | $0.6179 | +0.29% | favorable |
| Jul 05, 05:55 AM GMT+2 | BUY | $0.6165 | $0.6179 | +0.23% | neutral |
| Jul 05, 05:49 AM GMT+2 | BUY | $0.6164 | $0.6179 | +0.24% | neutral |
| Jul 05, 05:43 AM GMT+2 | BUY | $0.616 | $0.6179 | +0.31% | favorable |
| Jul 05, 05:38 AM GMT+2 | BUY | $0.616 | $0.6179 | +0.31% | favorable |
| Jul 05, 05:32 AM GMT+2 | BUY | $0.6155 | $0.6179 | +0.39% | favorable |
| Jul 05, 05:26 AM GMT+2 | BUY | $0.6163 | $0.6179 | +0.26% | favorable |
| Jul 05, 05:20 AM GMT+2 | BUY | $0.617 | $0.6179 | +0.15% | neutral |
| Jul 05, 05:15 AM GMT+2 | BUY | $0.6169 | $0.6179 | +0.16% | neutral |
| Jul 05, 05:09 AM GMT+2 | BUY | $0.6169 | $0.6179 | +0.16% | neutral |
| Jul 05, 05:03 AM GMT+2 | BUY | $0.6155 | $0.6179 | +0.39% | favorable |
| Jul 05, 04:58 AM GMT+2 | BUY | $0.6151 | $0.6179 | +0.46% | favorable |
| Jul 05, 04:52 AM GMT+2 | BUY | $0.6158 | $0.6179 | +0.34% | favorable |
| Jul 05, 04:46 AM GMT+2 | BUY | $0.6141 | $0.6179 | +0.62% | favorable |
| Jul 05, 04:41 AM GMT+2 | BUY | $0.616 | $0.6179 | +0.31% | favorable |
| Jul 05, 04:35 AM GMT+2 | BUY | $0.6168 | $0.6179 | +0.18% | neutral |
| Jul 05, 04:29 AM GMT+2 | BUY | $0.6151 | $0.6179 | +0.46% | favorable |
| Jul 05, 04:23 AM GMT+2 | BUY | $0.6171 | $0.6179 | +0.13% | neutral |
| Jul 05, 04:18 AM GMT+2 | BUY | $0.6138 | $0.6179 | +0.67% | favorable |
| Jul 05, 04:12 AM GMT+2 | BUY | $0.6159 | $0.6179 | +0.32% | favorable |
| Jul 05, 04:06 AM GMT+2 | BUY | $0.6206 | $0.6179 | -0.44% | adverse |
| Jul 05, 04:01 AM GMT+2 | BUY | $0.6209 | $0.6179 | -0.48% | adverse |
| Jul 05, 03:55 AM GMT+2 | BUY | $0.6206 | $0.6179 | -0.44% | adverse |
| Jul 05, 03:49 AM GMT+2 | BUY | $0.6203 | $0.6179 | -0.39% | adverse |
| Jul 05, 03:44 AM GMT+2 | BUY | $0.6211 | $0.6179 | -0.52% | adverse |
| Jul 05, 03:38 AM GMT+2 | BUY | $0.6216 | $0.6179 | -0.60% | adverse |
Backtest comparison
180 candles| Strategy | Status | Total return | Buy/hold | Trades | Exposure | Alignment |
|---|---|---|---|---|---|---|
| moving_average_crossover | succeeded | +0.71% | +6.64% | 2 | +78.99% | supports |
| rsi_mean_reversion | succeeded | -0.22% | +6.64% | 1 | +22.69% | conflicts |
| momentum_breakout | succeeded | +0.95% | +6.64% | 2 | +83.19% | supports |
Audit trail
50 relevant events| Created | Event | Actor | Entity |
|---|---|---|---|
| Jul 05, 11:11 AM GMT+2 | recommendation.created | system | recommendation:1001 |
| Jul 05, 10:21 AM GMT+2 | recommendation.created | system | recommendation:992 |
| Jul 05, 09:32 AM GMT+2 | recommendation.created | system | recommendation:988 |
| Jul 05, 09:26 AM GMT+2 | recommendation.created | system | recommendation:980 |
| Jul 05, 09:20 AM GMT+2 | recommendation.created | system | recommendation:972 |
| Jul 05, 09:02 AM GMT+2 | recommendation.created | system | recommendation:944 |
| Jul 05, 08:56 AM GMT+2 | recommendation.created | system | recommendation:938 |
| Jul 05, 08:50 AM GMT+2 | recommendation.created | system | recommendation:930 |
| Jul 05, 08:45 AM GMT+2 | recommendation.created | system | recommendation:921 |
| Jul 05, 08:38 AM GMT+2 | recommendation.created | system | recommendation:912 |
| Jul 05, 08:33 AM GMT+2 | recommendation.created | system | recommendation:906 |
| Jul 05, 08:27 AM GMT+2 | recommendation.created | system | recommendation:897 |
| Jul 05, 08:15 AM GMT+2 | recommendation.created | system | recommendation:881 |
| Jul 05, 07:22 AM GMT+2 | recommendation.created | system | recommendation:801 |
| Jul 05, 06:58 AM GMT+2 | recommendation.created | system | recommendation:767 |
| Jul 05, 06:53 AM GMT+2 | recommendation.created | system | recommendation:758 |
| Jul 05, 06:47 AM GMT+2 | recommendation.created | system | recommendation:756 |
| Jul 05, 06:41 AM GMT+2 | recommendation.created | system | recommendation:742 |
| Jul 05, 06:35 AM GMT+2 | recommendation.created | system | recommendation:734 |
| Jul 05, 06:29 AM GMT+2 | recommendation.created | system | recommendation:726 |
| Jul 05, 06:23 AM GMT+2 | recommendation.created | system | recommendation:719 |
| Jul 05, 06:18 AM GMT+2 | recommendation.created | system | recommendation:711 |
| Jul 05, 06:12 AM GMT+2 | recommendation.created | system | recommendation:703 |
| Jul 05, 06:06 AM GMT+2 | recommendation.created | system | recommendation:696 |
| Jul 05, 06:01 AM GMT+2 | recommendation.created | system | recommendation:690 |
| Jul 05, 05:55 AM GMT+2 | recommendation.created | system | recommendation:682 |
| Jul 05, 05:49 AM GMT+2 | recommendation.created | system | recommendation:674 |
| Jul 05, 05:43 AM GMT+2 | recommendation.created | system | recommendation:666 |
| Jul 05, 05:38 AM GMT+2 | recommendation.created | system | recommendation:658 |
| Jul 05, 05:32 AM GMT+2 | recommendation.created | system | recommendation:650 |
| Jul 05, 05:26 AM GMT+2 | recommendation.created | system | recommendation:642 |
| Jul 05, 05:20 AM GMT+2 | recommendation.created | system | recommendation:634 |
| Jul 05, 05:15 AM GMT+2 | recommendation.created | system | recommendation:626 |
| Jul 05, 05:09 AM GMT+2 | recommendation.created | system | recommendation:618 |
| Jul 05, 05:03 AM GMT+2 | recommendation.created | system | recommendation:610 |
| Jul 05, 04:58 AM GMT+2 | recommendation.created | system | recommendation:603 |
| Jul 05, 04:52 AM GMT+2 | recommendation.created | system | recommendation:595 |
| Jul 05, 04:46 AM GMT+2 | recommendation.created | system | recommendation:587 |
| Jul 05, 04:41 AM GMT+2 | recommendation.created | system | recommendation:579 |
| Jul 05, 04:35 AM GMT+2 | recommendation.created | system | recommendation:571 |
| Jul 05, 04:29 AM GMT+2 | recommendation.created | system | recommendation:563 |
| Jul 05, 04:23 AM GMT+2 | recommendation.created | system | recommendation:555 |
| Jul 05, 04:18 AM GMT+2 | recommendation.created | system | recommendation:547 |
| Jul 05, 04:12 AM GMT+2 | recommendation.created | system | recommendation:539 |
| Jul 05, 04:06 AM GMT+2 | recommendation.created | system | recommendation:531 |
| Jul 05, 04:01 AM GMT+2 | recommendation.created | system | recommendation:523 |
| Jul 05, 03:55 AM GMT+2 | recommendation.created | system | recommendation:514 |
| Jul 05, 03:49 AM GMT+2 | recommendation.created | system | recommendation:506 |
| Jul 05, 03:44 AM GMT+2 | recommendation.created | system | recommendation:498 |
| Jul 05, 03:38 AM GMT+2 | recommendation.created | system | recommendation:490 |
AI prompt sent
System instruction and user payload{
"user_payload": {
"role": "Cautious asset-class-aware decision-support analyst.",
"asset": {
"name": "Aptos",
"symbol": "APT",
"category": "digital_asset",
"metadata": {
"networks": [
"aptos"
],
"coingecko_id": "aptos",
"binance_symbol": "APTUSDT",
"live_candidate": true,
"coinbase_product_id": "APT-USD"
},
"asset_type": "crypto",
"base_currency": "APT",
"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-05T09:11:48.799437+00:00",
"realized_pnl_usd": 0,
"daily_realized_loss_usd": 0,
"weekly_realized_loss_usd": 0
},
"indicators": {
"rsi": 26.219512195121823,
"macd": -0.0026437838279098624,
"trend": "uptrend",
"symbol": "APT",
"sma_fast": 0.626795,
"sma_slow": 0.626762,
"timestamp": "2026-07-05T09:00:00+00:00",
"macd_signal": -0.0018630596831027877,
"latest_price": 0.6212,
"momentum_pct": -2.449748743718602,
"change_7d_pct": 6.625472021970472,
"change_24h_pct": -0.24088646218083454,
"volatility_pct": 0.5670562749788567,
"max_drawdown_pct": 6.196038598273229
},
"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.9819,
"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.0319,
"volatility_score": 0.0709
},
"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-05T09: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.4194,
"signal_strength": 0.65
},
{
"name": "rsi_mean_reversion",
"reason": "RSI is near oversold.",
"weight": 1,
"direction": "bullish",
"contribution": 0.4516,
"signal_strength": 0.7
},
{
"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.008,
"signal_strength": 0.0709
},
{
"name": "drawdown",
"reason": "Larger recent drawdowns reduce the composite score.",
"weight": 1,
"direction": "risk_penalty",
"contribution": -0.0186,
"signal_strength": 6.196
}
],
"confidence_hint": 0.8735,
"risk_score_hint": 0.2663,
"position_size_pct": 8
},
"deterministic_signals": [
"moving_average_crossover:bullish:0.65",
"rsi_mean_reversion:bullish:0.70",
"momentum_breakout:neutral:0.20",
"market_regime:bullish:trend=0.55:volatility=0.07",
"composite_score:0.98",
"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": "APT",
"action": "BUY",
"summary": "APT has a bullish trend/mean-reversion setup with strong composite support, so a modest short-term BUY is reasonable, but sizing should stay conservative because momentum is still negative and recent drawdown remains non-trivial.",
"confidence": 0.81,
"risk_score": 0.31,
"signals_used": [
"moving_average_crossover:bullish:0.65",
"rsi_mean_reversion:bullish:0.70",
"market_regime:bullish:trend=0.55:volatility=0.07",
"composite_score:0.98",
"action_bias:BUY",
"position_size_hint:8.00"
],
"time_horizon": "short_term",
"market_regime": "bullish",
"stop_loss_pct": 4.5,
"invalidates_if": [
"Fast SMA falls below slow SMA",
"RSI recovers above 55 without confirming price strength and the setup no longer looks like a mean-reversion entry",
"Price breaks the stop loss level before any trend confirmation",
"A fresh update shows materially worse momentum or a bearish regime shift"
],
"entry_rationale": [
"Fresh Coinbase data is available and internally consistent.",
"Deterministic signals are strongly bullish overall, with a BUY bias and composite score of 0.9819.",
"Fast SMA is slightly above slow SMA, supporting a positive trend structure.",
"RSI at 26.2 suggests near-oversold conditions, favoring mean-reversion upside.",
"7-day performance is positive despite very weak 24h price change, which supports a pullback-in-uptrend setup.",
"Portfolio is mostly in cash with no existing APT exposure, so a small starter allocation is feasible."
],
"exit_conditions": [
"Exit or reassess if fast SMA drops below slow SMA on the next refresh.",
"Reassess if RSI remains below 25 while price fails to rebound, indicating the oversold setup is not resolving.",
"Take profits if price advances roughly 10% from entry or if momentum turns positive then fades sharply.",
"Exit if data quality degrades, provider fallback appears, or the trend regime flips bearish."
],
"take_profit_pct": 9.5,
"scoring_explanation": {
"score": 0.9819,
"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.0319,
"volatility_score": 0.0709
},
"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-05T09: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.4194,
"signal_strength": 0.65
},
{
"name": "rsi_mean_reversion",
"reason": "RSI is near oversold.",
"weight": 1,
"direction": "bullish",
"contribution": 0.4516,
"signal_strength": 0.7
},
{
"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.008,
"signal_strength": 0.0709
},
{
"name": "drawdown",
"reason": "Larger recent drawdowns reduce the composite score.",
"weight": 1,
"direction": "risk_penalty",
"contribution": -0.0186,
"signal_strength": 6.196
}
],
"confidence_hint": 0.8735,
"risk_score_hint": 0.2663,
"position_size_pct": 8
},
"suggested_position_size_pct": 5
}