| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- {
- "created_at": "2026-05-08T16:12:57Z",
- "decision": {
- "active_engine": "nextgen",
- "intent": "observe_nextgen_no_signal",
- "needs_cancel": false,
- "needs_order": false,
- "selected_signal": "no_signal"
- },
- "execution_intent": {
- "blocker": "persistent strategy position state is required before entry signals can be reconciled to target position",
- "entry_signal": "no_signal",
- "entry_unit": 0.0,
- "target_position": null,
- "target_position_known": false
- },
- "micro": {
- "bar": "15m",
- "candidate": "atr-compress-expand-r96-q0.15-sl0.008-tp0.016-mf0.25-us",
- "decision_candle_time": "2026-05-08T15:30:00Z",
- "decision_candle_ts": 1778254200000,
- "engine": "micro",
- "indicators": {
- "atr_limit_previous": 0.0028624155322640385,
- "atr_previous": 0.002906729910550877,
- "eth_close": 2284.19,
- "range_high": 2304.08,
- "range_low": 2262.45
- },
- "latest_local_candle_time": "2026-05-08T15:45:00Z",
- "latest_local_candle_ts": 1778255100000,
- "params": {
- "atr_quantile": 0.15,
- "atr_quantile_window": 480,
- "atr_window": 48,
- "margin_fraction": 0.25,
- "max_hold_bars": 32,
- "range_window": 96,
- "session": "us",
- "stop_loss_pct": 0.008,
- "take_profit_pct": 0.016
- },
- "raw_long_signal": false,
- "raw_short_signal": false,
- "session_ok": true,
- "signal": "no_signal",
- "symbol": "ETH-USDT-SWAP"
- },
- "mode": "readonly_signal_intent",
- "nextgen": {
- "data": {
- "aligned_candles": 223360,
- "btc_candles": "data/okx-candles/BTC-USDT-SWAP/15m.csv",
- "decision_candle_time": "2026-05-08T15:30:00Z",
- "decision_candle_ts": 1778254200000,
- "decision_rule": "use the aligned candle immediately before the latest aligned local candle",
- "eth_candles": "data/okx-candles/ETH-USDT-SWAP/15m.csv",
- "latest_aligned_candle_time": "2026-05-08T15:45:00Z",
- "latest_aligned_candle_ts": 1778255100000,
- "source": "local_csv"
- },
- "decision": {
- "active_signal_count": 0,
- "active_suggested_weight": 0,
- "intent": "observe_no_signal",
- "needs_cancel": false,
- "needs_order": false,
- "signal": "no_signal"
- },
- "legs": [
- {
- "bar": "15m",
- "conditions": {
- "btc_close_above_sma480": {
- "distance_to_pass": 518.1931249999761,
- "passes": false,
- "threshold": 80448.09312499997,
- "value": 79929.9
- },
- "btc_momentum_at_or_above_min": {
- "distance_to_pass": 0.019325194773326837,
- "passes": false,
- "threshold": 0.0,
- "value": -0.019325194773326837
- },
- "eth_close_above_sma50": {
- "distance_to_pass": 0.0,
- "passes": true,
- "threshold": 2281.480599999999,
- "value": 2284.19
- },
- "eth_rsi2_at_or_below_3": {
- "distance_to_pass": 68.44285863784671,
- "passes": false,
- "threshold": 3.0,
- "value": 71.44285863784671
- }
- },
- "direction": "long",
- "dry_run_action": "observe_no_signal",
- "entry_rule": "eth_close > eth_sma50 and eth_rsi2 <= 3 and btc_close > btc_sma480 and btc_momentum_240 >= minimum",
- "exit_rule": "eth_rsi2 >= exit_rsi or btc_close < btc_sma480; shock leg also exits when shock guard fails",
- "exit_signal": true,
- "family": "btc_trend_eth_rsi",
- "indicators": {
- "btc_close": 79929.9,
- "btc_momentum_240": -0.019325194773326837,
- "btc_sma480": 80448.09312499997,
- "eth_close": 2284.19,
- "eth_rsi2": 71.44285863784671,
- "eth_sma50": 2281.480599999999
- },
- "intent": "no_signal",
- "leg_id": "btc_trend_eth_rsi",
- "params": {
- "btc_min_momentum": 0.0,
- "btc_momentum_lookback": 240,
- "btc_trend_sma": 480,
- "eth_exit_rsi": 55.0,
- "eth_rsi_threshold": 3.0,
- "eth_trend_sma": 50
- },
- "signal": false,
- "suggested_weight": 0.5,
- "symbol": "ETH-USDT-SWAP"
- },
- {
- "bar": "15m",
- "conditions": {
- "btc_close_above_sma480": {
- "distance_to_pass": 518.1931249999761,
- "passes": false,
- "threshold": 80448.09312499997,
- "value": 79929.9
- },
- "btc_drawdown_at_or_above_floor": {
- "distance_to_pass": 0.0,
- "passes": true,
- "threshold": -0.05,
- "value": -0.004351064783904235
- },
- "btc_momentum_at_or_above_min": {
- "distance_to_pass": 0.02932519477332684,
- "passes": false,
- "threshold": 0.01,
- "value": -0.019325194773326837
- },
- "btc_realized_vol_at_or_below_max": {
- "distance_to_pass": 0.0,
- "passes": true,
- "threshold": 0.01,
- "value": 0.0014718646466960197
- },
- "eth_close_above_sma50": {
- "distance_to_pass": 0.0,
- "passes": true,
- "threshold": 2281.480599999999,
- "value": 2284.19
- },
- "eth_rsi2_at_or_below_3": {
- "distance_to_pass": 68.44285863784671,
- "passes": false,
- "threshold": 3.0,
- "value": 71.44285863784671
- }
- },
- "direction": "long",
- "dry_run_action": "observe_no_signal",
- "entry_rule": "eth_close > eth_sma50 and eth_rsi2 <= 3 and btc_close > btc_sma480 and btc_momentum_240 >= minimum and btc_realized_vol_96 <= 0.01 and btc_drawdown_96 >= -0.05",
- "exit_rule": "eth_rsi2 >= exit_rsi or btc_close < btc_sma480; shock leg also exits when shock guard fails",
- "exit_signal": true,
- "family": "btc_shock_guard_eth_rsi",
- "indicators": {
- "btc_close": 79929.9,
- "btc_drawdown_96": -0.004351064783904235,
- "btc_momentum_240": -0.019325194773326837,
- "btc_realized_vol_96": 0.0014718646466960197,
- "btc_recent_high_96": 80279.2,
- "btc_sma480": 80448.09312499997,
- "eth_close": 2284.19,
- "eth_rsi2": 71.44285863784671,
- "eth_sma50": 2281.480599999999
- },
- "intent": "no_signal",
- "leg_id": "btc_shock_guard_eth_rsi",
- "params": {
- "btc_max_drawdown": 0.05,
- "btc_max_realized_vol": 0.01,
- "btc_min_momentum": 0.01,
- "btc_momentum_lookback": 240,
- "btc_shock_lookback": 96,
- "btc_trend_sma": 480,
- "eth_exit_rsi": 55.0,
- "eth_rsi_threshold": 3.0,
- "eth_trend_sma": 50
- },
- "signal": false,
- "suggested_weight": 0.5,
- "symbol": "ETH-USDT-SWAP"
- }
- ]
- },
- "order_client": null,
- "private_key_required": false,
- "risk_limits": {
- "blocked_for_live_trading": true,
- "blocker": "persistent virtual position state is not maintained by this read-only signal builder",
- "execution": "intent_only",
- "no_cancel_submission": true,
- "no_order_submission": true,
- "no_position_state_assumed": true
- },
- "strategy": {
- "bar": "15m",
- "cost_model": "maker_taker",
- "direction": "nextgen_long_only_or_micro_observation",
- "name": "switch-l30-r96_q0.15_mf0.25_us",
- "roundtrip_cost_on_margin": 0.0021,
- "source_report": "reports/eth-exploration/eth-nextgen-micro-portfolio-report.md",
- "symbol": "ETH-USDT-SWAP"
- },
- "submitted_orders": 0,
- "switch_state": {
- "active_engine": "nextgen",
- "decision_date": "2026-04-29",
- "lookback_days": 30,
- "micro_30d_return": -0.0081957115778859,
- "micro_equity": 10864.981539168395,
- "nextgen_30d_return": 0.016854077119548894,
- "nextgen_equity": 25219.39752888712,
- "switch_rule": "prior completed daily nextgen 30d return < 0 and micro 30d return > 0"
- }
- }
|