[{"id":739,"cycle_id":"20260331162940-466ee7f6","symbol":"NVDA","price":171.05,"provider_name":"alpaca","action":"hold","confidence":50.0,"reason":"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.","market_state":"choppy","market_regime":null,"setup_type":"no_trade","risk_level":"low","suggested_position_pct":0.0,"stop_loss_pct":0.0,"take_profit_pct":0.0,"invalidation_condition":"N/A","expected_holding_period":"unknown","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":null,"blocked_reason_code":null,"raw_ai_response":"{\"action\":\"hold\",\"confidence\":50,\"reason\":\"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.\",\"market_state\":\"choppy\",\"setup_type\":\"no_trade\",\"risk_level\":\"low\",\"suggested_position_pct\":0,\"stop_loss_pct\":0,\"take_profit_pct\":0,\"invalidation_condition\":\"N/A\",\"expected_holding_period\":\"unknown\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"NVDA\", \"price\": 171.05, \"previous_close\": 165.18, \"change\": 5.87, \"change_pct\": 3.55, \"fetched_at\": \"2026-03-31T16:29:46.822631+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 903.11, \"provider_response_timestamp\": \"2026-03-31T16:29:46.822631+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 179.84, \"high\": 182.7561, \"low\": 176.8201, \"close\": 177.82, \"volume\": 189621819}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 176.83, \"high\": 182.91, \"low\": 175.56, \"close\": 182.65, \"volume\": 177936755}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 182.4, \"high\": 186.44, \"low\": 182.01, \"close\": 184.77, \"volume\": 179773840}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 185.91, \"high\": 187.62, \"low\": 184.45, \"close\": 186.03, \"volume\": 145920458}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 184.05, \"high\": 184.94, \"low\": 181.75, \"close\": 183.14, \"volume\": 156395429}], \"source_snapshot\": {\"dailyBar\": {\"c\": 171.1, \"h\": 171.37, \"l\": 167.035, \"n\": 22648, \"o\": 167.12, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 2769301, \"vw\": 169.882775}, \"latestQuote\": {\"ap\": 171.06, \"as\": 1300, \"ax\": \"V\", \"bp\": 171.04, \"bs\": 1500, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:46.472307321Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 22717, \"p\": 171.05, \"s\": 100, \"t\": \"2026-03-31T16:29:45.147938179Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 171.1, \"h\": 171.13, \"l\": 171.085, \"n\": 84, \"o\": 171.115, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 9793, \"vw\": 171.100347}, \"prevDailyBar\": {\"c\": 165.18, \"h\": 169.43, \"l\": 164.285, \"n\": 37678, \"o\": 168.63, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 4681083, \"vw\": 166.504513}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:46.822631+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:30:07.552441"},{"id":738,"cycle_id":"20260331162940-466ee7f6","symbol":"SPY","price":642.08,"provider_name":"alpaca","action":"sell","confidence":75.0,"reason":"The trend is strongly bearish with a clear continuation pattern, supported by strong short candidate scoring and no significant noise conflict.","market_state":"bearish","market_regime":null,"setup_type":"trend_continuation_short","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes above 645.00","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"sell\",\"confidence\":75,\"reason\":\"The trend is strongly bearish with a clear continuation pattern, supported by strong short candidate scoring and no significant noise conflict.\",\"market_state\":\"bearish\",\"setup_type\":\"trend_continuation_short\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes above 645.00\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"SPY\", \"price\": 642.08, \"previous_close\": 632.02, \"change\": 10.06, \"change_pct\": 1.59, \"fetched_at\": \"2026-03-31T16:29:45.900558+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 914.68, \"provider_response_timestamp\": \"2026-03-31T16:29:45.900558+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 673.41, \"high\": 676.11, \"low\": 669.76, \"close\": 672.38, \"volume\": 100796751}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 666.39, \"high\": 679.92, \"low\": 662.39, \"close\": 678.27, \"volume\": 102774914}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 677.72, \"high\": 683.36, \"low\": 674.76, \"close\": 677.18, \"volume\": 81585842}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 677.58, \"high\": 680.08, \"low\": 673.34, \"close\": 676.33, \"volume\": 68519802}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 671.16, \"high\": 671.65, \"low\": 665.87, \"close\": 666.06, \"volume\": 108960383}], \"source_snapshot\": {\"dailyBar\": {\"c\": 642.295, \"h\": 642.95, \"l\": 638.01, \"n\": 14420, \"o\": 638.905, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 946223, \"vw\": 640.93775}, \"latestQuote\": {\"ap\": 642.09, \"as\": 80, \"ax\": \"V\", \"bp\": 642.07, \"bs\": 160, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:45.815269006Z\", \"z\": \"B\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983709586269, \"p\": 642.08, \"s\": 62, \"t\": \"2026-03-31T16:29:41.450084647Z\", \"x\": \"V\", \"z\": \"B\"}, \"minuteBar\": {\"c\": 642.295, \"h\": 642.295, \"l\": 642.12, \"n\": 36, \"o\": 642.12, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1516, \"vw\": 642.209972}, \"prevDailyBar\": {\"c\": 632.02, \"h\": 640.28, \"l\": 629.29, \"n\": 33774, \"o\": 639.86, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1812294, \"vw\": 634.127681}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:45.900558+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:30:05.175278"},{"id":737,"cycle_id":"20260331162940-466ee7f6","symbol":"V","price":297.31,"provider_name":"alpaca","action":"sell","confidence":80.0,"reason":"Strong downtrend with confirmed breakdown behavior and bearish momentum. The price is below the recent range, indicating a continuation of the downward movement.","market_state":"bearish","market_regime":null,"setup_type":"breakdown_short","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes above 299.62 (previous close)","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"sell\",\"confidence\":80,\"reason\":\"Strong downtrend with confirmed breakdown behavior and bearish momentum. The price is below the recent range, indicating a continuation of the downward movement.\",\"market_state\":\"bearish\",\"setup_type\":\"breakdown_short\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes above 299.62 (previous close)\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"V\", \"price\": 297.31, \"previous_close\": 299.62, \"change\": -2.31, \"change_pct\": -0.77, \"fetched_at\": \"2026-03-31T16:29:44.959427+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 913.36, \"provider_response_timestamp\": \"2026-03-31T16:29:44.959427+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 316.045, \"high\": 317.69, \"low\": 312.3, \"close\": 317.36, \"volume\": 6448073}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 313.46, \"high\": 316.4, \"low\": 310.15, \"close\": 315.97, \"volume\": 8391606}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 315.43, \"high\": 317.13, \"low\": 311.45, \"close\": 314.43, \"volume\": 5278592}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 313.25, \"high\": 315.08, \"low\": 308.39, \"close\": 308.96, \"volume\": 6394907}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 308.14, \"high\": 310.95, \"low\": 306.019, \"close\": 306.5, \"volume\": 7522880}], \"source_snapshot\": {\"dailyBar\": {\"c\": 297.465, \"h\": 302.285, \"l\": 297.05, \"n\": 3854, \"o\": 301.91, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 150587, \"vw\": 299.216951}, \"latestQuote\": {\"ap\": 297.53, \"as\": 40, \"ax\": \"V\", \"bp\": 295.01, \"bs\": 40, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:44.726776814Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983709588281, \"p\": 297.31, \"s\": 40, \"t\": \"2026-03-31T16:29:44.687806141Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 297.465, \"h\": 297.465, \"l\": 297.19, \"n\": 45, \"o\": 297.19, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1864, \"vw\": 297.342886}, \"prevDailyBar\": {\"c\": 299.625, \"h\": 300.63, \"l\": 295.9, \"n\": 11052, \"o\": 298.18, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 468305, \"vw\": 298.963675}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:44.959427+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:30:02.300043"},{"id":736,"cycle_id":"20260331162940-466ee7f6","symbol":"OXY","price":67.34,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong bullish trend with confirmed breakout behavior and manageable failure risk. Long candidate strength is strong, indicating a favorable setup for buying.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.1,"take_profit_pct":0.25,"invalidation_condition":"Price closes below 66.00","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong bullish trend with confirmed breakout behavior and manageable failure risk. Long candidate strength is strong, indicating a favorable setup for buying.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.1,\"take_profit_pct\":0.25,\"invalidation_condition\":\"Price closes below 66.00\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"OXY\", \"price\": 67.34, \"previous_close\": 66.23, \"change\": 1.11, \"change_pct\": 1.68, \"fetched_at\": \"2026-03-31T16:29:43.893159+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 1050.3, \"provider_response_timestamp\": \"2026-03-31T16:29:43.893159+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 54.2, \"high\": 55.17, \"low\": 53.295, \"close\": 54.19, \"volume\": 30457740}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 54.43, \"high\": 56.09, \"low\": 54.08, \"close\": 55.02, \"volume\": 33145891}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 53.25, \"high\": 54.0, \"low\": 52.05, \"close\": 53.12, \"volume\": 24605420}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 53.5, \"high\": 55.6, \"low\": 53.39, \"close\": 55.58, \"volume\": 21065867}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 56.8, \"high\": 59.15, \"low\": 56.42, \"close\": 58.41, \"volume\": 39402259}], \"source_snapshot\": {\"dailyBar\": {\"c\": 67.33, \"h\": 67.45, \"l\": 65.53, \"n\": 3319, \"o\": 65.9, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 338960, \"vw\": 66.848595}, \"latestQuote\": {\"ap\": 67.33, \"as\": 200, \"ax\": \"V\", \"bp\": 67.32, \"bs\": 400, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:42.63471751Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983709581155, \"p\": 67.34, \"s\": 112, \"t\": \"2026-03-31T16:29:36.874445644Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 67.33, \"h\": 67.38, \"l\": 67.315, \"n\": 13, \"o\": 67.32, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1311, \"vw\": 67.345636}, \"prevDailyBar\": {\"c\": 66.235, \"h\": 67.04, \"l\": 65.795, \"n\": 9633, \"o\": 65.8, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1054816, \"vw\": 66.473791}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:43.893159+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:59.577854"},{"id":735,"cycle_id":"20260331162940-466ee7f6","symbol":"XOM","price":173.72,"provider_name":"alpaca","action":"buy","confidence":65.0,"reason":"The market shows a moderate reversal candidate with reclaim behavior after a prior down move. The bullish momentum bias and moderate long candidate strength support a buy decision despite the mixed trend structure.","market_state":"reversal","market_regime":null,"setup_type":"reversal_long","risk_level":"medium","suggested_position_pct":0.1,"stop_loss_pct":0.02,"take_profit_pct":0.1,"invalidation_condition":"Price closes below 170.00","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":65.0,\"reason\":\"The market shows a moderate reversal candidate with reclaim behavior after a prior down move. The bullish momentum bias and moderate long candidate strength support a buy decision despite the mixed trend structure.\",\"market_state\":\"reversal\",\"setup_type\":\"reversal_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.1,\"stop_loss_pct\":0.02,\"take_profit_pct\":0.1,\"invalidation_condition\":\"Price closes below 170.00\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"XOM\", \"price\": 173.72, \"previous_close\": 171.43, \"change\": 2.29, \"change_pct\": 1.34, \"fetched_at\": \"2026-03-31T16:29:42.964811+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 911.53, \"provider_response_timestamp\": \"2026-03-31T16:29:42.964811+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 153.15, \"high\": 153.8, \"low\": 149.96, \"close\": 151.21, \"volume\": 21146957}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 152.015, \"high\": 153.8899, \"low\": 149.47, \"close\": 150.44, \"volume\": 25547093}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 149.25, \"high\": 150.4, \"low\": 147.7, \"close\": 148.13, \"volume\": 19629772}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 147.99, \"high\": 151.81, \"low\": 147.66, \"close\": 151.58, \"volume\": 15307487}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 152.265, \"high\": 155.0, \"low\": 151.63, \"close\": 153.53, \"volume\": 26065186}], \"source_snapshot\": {\"dailyBar\": {\"c\": 173.8, \"h\": 174.35, \"l\": 171.675, \"n\": 4865, \"o\": 172.74, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 382162, \"vw\": 173.276354}, \"latestQuote\": {\"ap\": 173.71, \"as\": 200, \"ax\": \"V\", \"bp\": 173.67, \"bs\": 100, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:42.08843747Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983709577330, \"p\": 173.72, \"s\": 100, \"t\": \"2026-03-31T16:29:33.716142084Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 173.8, \"h\": 173.85, \"l\": 173.795, \"n\": 21, \"o\": 173.8, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1414, \"vw\": 173.818969}, \"prevDailyBar\": {\"c\": 171.43, \"h\": 176.4, \"l\": 171.05, \"n\": 15847, \"o\": 172.385, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1316630, \"vw\": 173.38982}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:42.964811+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:56.790290"},{"id":734,"cycle_id":"20260331162940-466ee7f6","symbol":"PANW","price":159.61,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong bullish trend with breakout confirmation and manageable failure risk. The price is near the recent high, indicating a potential continuation of the upward movement.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes below 155.84","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong bullish trend with breakout confirmation and manageable failure risk. The price is near the recent high, indicating a potential continuation of the upward movement.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes below 155.84\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"PANW\", \"price\": 159.61, \"previous_close\": 154.35, \"change\": 5.26, \"change_pct\": 3.41, \"fetched_at\": \"2026-03-31T16:29:42.047268+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 931.39, \"provider_response_timestamp\": \"2026-03-31T16:29:42.047268+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 162.32, \"high\": 165.3599, \"low\": 161.31, \"close\": 165.05, \"volume\": 7206028}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 164.08, \"high\": 167.76, \"low\": 163.49, \"close\": 165.1, \"volume\": 9199307}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 165.5, \"high\": 167.0, \"low\": 160.8316, \"close\": 165.58, \"volume\": 6852520}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 166.65, \"high\": 169.08, \"low\": 163.38, \"close\": 164.93, \"volume\": 5492213}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 166.28, \"high\": 168.74, \"low\": 165.43, \"close\": 168.12, \"volume\": 7967357}], \"source_snapshot\": {\"dailyBar\": {\"c\": 159.37, \"h\": 159.37, \"l\": 155.445, \"n\": 2497, \"o\": 155.84, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 98806, \"vw\": 157.685511}, \"latestQuote\": {\"ap\": 160, \"as\": 100, \"ax\": \"V\", \"bp\": 155, \"bs\": 200, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:40.005288836Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 2504, \"p\": 159.61, \"s\": 100, \"t\": \"2026-03-31T16:29:22.230072796Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 159.37, \"h\": 159.37, \"l\": 159.33, \"n\": 23, \"o\": 159.33, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 788, \"vw\": 159.35625}, \"prevDailyBar\": {\"c\": 154.35, \"h\": 159.12, \"l\": 151.755, \"n\": 8155, \"o\": 151.755, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 524534, \"vw\": 155.905066}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:42.047268+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:53.445161"},{"id":733,"cycle_id":"20260331162940-466ee7f6","symbol":"WMT","price":123.81,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong long candidate strength and bullish trend structure indicate a favorable environment for a breakout long position.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes below 122.85","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong long candidate strength and bullish trend structure indicate a favorable environment for a breakout long position.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes below 122.85\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"WMT\", \"price\": 123.81, \"previous_close\": 123.52, \"change\": 0.29, \"change_pct\": 0.23, \"fetched_at\": \"2026-03-31T16:29:41.114707+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 913.07, \"provider_response_timestamp\": \"2026-03-31T16:29:41.114707+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 122.495, \"high\": 124.185, \"low\": 121.62, \"close\": 123.8, \"volume\": 21572256}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 123.6885, \"high\": 124.505, \"low\": 122.5, \"close\": 124.34, \"volume\": 19397431}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 124.21, \"high\": 126.0988, \"low\": 123.35, \"close\": 125.12, \"volume\": 18813806}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 125.305, \"high\": 125.49, \"low\": 123.05, \"close\": 123.49, \"volume\": 18196153}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 122.295, \"high\": 125.39, \"low\": 122.28, \"close\": 125.33, \"volume\": 21770171}], \"source_snapshot\": {\"dailyBar\": {\"c\": 123.87, \"h\": 124.97, \"l\": 122.85, \"n\": 3853, \"o\": 123.655, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 296243, \"vw\": 123.784156}, \"latestQuote\": {\"ap\": 123.83, \"as\": 100, \"ax\": \"V\", \"bp\": 123.81, \"bs\": 100, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:40.797399662Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 3854, \"p\": 123.81, \"s\": 100, \"t\": \"2026-03-31T16:29:33.443088383Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 123.87, \"h\": 123.91, \"l\": 123.86, \"n\": 10, \"o\": 123.885, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 917, \"vw\": 123.876875}, \"prevDailyBar\": {\"c\": 123.52, \"h\": 125.205, \"l\": 123.18, \"n\": 8663, \"o\": 123.72, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 637378, \"vw\": 123.852181}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:41.114707+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:50.227597"},{"id":732,"cycle_id":"20260331162912-9ac11717","symbol":"NVDA","price":171.03,"provider_name":"alpaca","action":"hold","confidence":50.0,"reason":"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.","market_state":"choppy","market_regime":null,"setup_type":"no_trade","risk_level":"low","suggested_position_pct":0.0,"stop_loss_pct":0.0,"take_profit_pct":0.0,"invalidation_condition":"No clear directional edge identified.","expected_holding_period":"unknown","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":null,"blocked_reason_code":null,"raw_ai_response":"{\"action\":\"hold\",\"confidence\":50,\"reason\":\"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.\",\"market_state\":\"choppy\",\"setup_type\":\"no_trade\",\"risk_level\":\"low\",\"suggested_position_pct\":0,\"stop_loss_pct\":0,\"take_profit_pct\":0,\"invalidation_condition\":\"No clear directional edge identified.\",\"expected_holding_period\":\"unknown\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"NVDA\", \"price\": 171.03, \"previous_close\": 165.18, \"change\": 5.85, \"change_pct\": 3.54, \"fetched_at\": \"2026-03-31T16:29:18.661545+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 924.54, \"provider_response_timestamp\": \"2026-03-31T16:29:18.661545+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 179.84, \"high\": 182.7561, \"low\": 176.8201, \"close\": 177.82, \"volume\": 189621819}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 176.83, \"high\": 182.91, \"low\": 175.56, \"close\": 182.65, \"volume\": 177936755}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 182.4, \"high\": 186.44, \"low\": 182.01, \"close\": 184.77, \"volume\": 179773840}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 185.91, \"high\": 187.62, \"low\": 184.45, \"close\": 186.03, \"volume\": 145920458}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 184.05, \"high\": 184.94, \"low\": 181.75, \"close\": 183.14, \"volume\": 156395429}], \"source_snapshot\": {\"dailyBar\": {\"c\": 171.1, \"h\": 171.37, \"l\": 167.035, \"n\": 22648, \"o\": 167.12, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 2769301, \"vw\": 169.882775}, \"latestQuote\": {\"ap\": 171.04, \"as\": 300, \"ax\": \"V\", \"bp\": 171.03, \"bs\": 1500, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:18.559809761Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 22681, \"p\": 171.035, \"s\": 100, \"t\": \"2026-03-31T16:29:11.85338145Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 171.1, \"h\": 171.13, \"l\": 171.085, \"n\": 84, \"o\": 171.115, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 9793, \"vw\": 171.100347}, \"prevDailyBar\": {\"c\": 165.18, \"h\": 169.43, \"l\": 164.285, \"n\": 37678, \"o\": 168.63, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 4681083, \"vw\": 166.504513}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:18.661545+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:40.628113"},{"id":731,"cycle_id":"20260331162912-9ac11717","symbol":"SPY","price":642.2,"provider_name":"alpaca","action":"sell","confidence":75.0,"reason":"The trend is strongly bearish with a clear continuation pattern, supported by strong short candidate scoring and no significant noise conflict.","market_state":"bearish","market_regime":null,"setup_type":"trend_continuation_short","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes above the recent high of 642.95","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"sell\",\"confidence\":75,\"reason\":\"The trend is strongly bearish with a clear continuation pattern, supported by strong short candidate scoring and no significant noise conflict.\",\"market_state\":\"bearish\",\"setup_type\":\"trend_continuation_short\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes above the recent high of 642.95\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"SPY\", \"price\": 642.2, \"previous_close\": 632.02, \"change\": 10.18, \"change_pct\": 1.61, \"fetched_at\": \"2026-03-31T16:29:17.715249+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 923.03, \"provider_response_timestamp\": \"2026-03-31T16:29:17.715249+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 673.41, \"high\": 676.11, \"low\": 669.76, \"close\": 672.38, \"volume\": 100796751}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 666.39, \"high\": 679.92, \"low\": 662.39, \"close\": 678.27, \"volume\": 102774914}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 677.72, \"high\": 683.36, \"low\": 674.76, \"close\": 677.18, \"volume\": 81585842}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 677.58, \"high\": 680.08, \"low\": 673.34, \"close\": 676.33, \"volume\": 68519802}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 671.16, \"high\": 671.65, \"low\": 665.87, \"close\": 666.06, \"volume\": 108960383}], \"source_snapshot\": {\"dailyBar\": {\"c\": 642.295, \"h\": 642.95, \"l\": 638.01, \"n\": 14420, \"o\": 638.905, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 946223, \"vw\": 640.93775}, \"latestQuote\": {\"ap\": 642.21, \"as\": 200, \"ax\": \"V\", \"bp\": 642.19, \"bs\": 160, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:17.624827479Z\", \"z\": \"B\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697652073, \"p\": 642.2, \"s\": 40, \"t\": \"2026-03-31T16:29:13.689849185Z\", \"x\": \"V\", \"z\": \"B\"}, \"minuteBar\": {\"c\": 642.295, \"h\": 642.295, \"l\": 642.12, \"n\": 36, \"o\": 642.12, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1516, \"vw\": 642.209972}, \"prevDailyBar\": {\"c\": 632.02, \"h\": 640.28, \"l\": 629.29, \"n\": 33774, \"o\": 639.86, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1812294, \"vw\": 634.127681}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:17.715249+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:38.123697"},{"id":730,"cycle_id":"20260331162912-9ac11717","symbol":"V","price":297.39,"provider_name":"alpaca","action":"sell","confidence":80.0,"reason":"Strong downtrend with confirmed breakdown behavior and bearish momentum. The price is below the recent range, indicating a continuation of the downward movement.","market_state":"bearish","market_regime":null,"setup_type":"breakdown_short","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes above 301.91 (day open).","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"sell\",\"confidence\":80,\"reason\":\"Strong downtrend with confirmed breakdown behavior and bearish momentum. The price is below the recent range, indicating a continuation of the downward movement.\",\"market_state\":\"bearish\",\"setup_type\":\"breakdown_short\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes above 301.91 (day open).\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"V\", \"price\": 297.39, \"previous_close\": 299.62, \"change\": -2.23, \"change_pct\": -0.74, \"fetched_at\": \"2026-03-31T16:29:16.789031+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 927.09, \"provider_response_timestamp\": \"2026-03-31T16:29:16.789031+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 316.045, \"high\": 317.69, \"low\": 312.3, \"close\": 317.36, \"volume\": 6448073}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 313.46, \"high\": 316.4, \"low\": 310.15, \"close\": 315.97, \"volume\": 8391606}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 315.43, \"high\": 317.13, \"low\": 311.45, \"close\": 314.43, \"volume\": 5278592}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 313.25, \"high\": 315.08, \"low\": 308.39, \"close\": 308.96, \"volume\": 6394907}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 308.14, \"high\": 310.95, \"low\": 306.019, \"close\": 306.5, \"volume\": 7522880}], \"source_snapshot\": {\"dailyBar\": {\"c\": 297.465, \"h\": 302.285, \"l\": 297.05, \"n\": 3854, \"o\": 301.91, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 150587, \"vw\": 299.216951}, \"latestQuote\": {\"ap\": 297.56, \"as\": 80, \"ax\": \"V\", \"bp\": 296.57, \"bs\": 40, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:15.860714466Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697650525, \"p\": 297.395, \"s\": 46, \"t\": \"2026-03-31T16:29:12.563804794Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 297.465, \"h\": 297.465, \"l\": 297.19, \"n\": 45, \"o\": 297.19, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1864, \"vw\": 297.342886}, \"prevDailyBar\": {\"c\": 299.625, \"h\": 300.63, \"l\": 295.9, \"n\": 11052, \"o\": 298.18, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 468305, \"vw\": 298.963675}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:16.789031+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:34.047308"},{"id":729,"cycle_id":"20260331162912-9ac11717","symbol":"OXY","price":67.31,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong bullish trend with confirmed breakout behavior and manageable failure risk. Long candidate strength is strong, indicating a favorable setup for buying.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.1,"take_profit_pct":0.5,"invalidation_condition":"Price closes below the breakout level of 66.50","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong bullish trend with confirmed breakout behavior and manageable failure risk. Long candidate strength is strong, indicating a favorable setup for buying.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.1,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes below the breakout level of 66.50\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"OXY\", \"price\": 67.31, \"previous_close\": 66.23, \"change\": 1.08, \"change_pct\": 1.63, \"fetched_at\": \"2026-03-31T16:29:15.604257+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 1189.02, \"provider_response_timestamp\": \"2026-03-31T16:29:15.604257+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 54.2, \"high\": 55.17, \"low\": 53.295, \"close\": 54.19, \"volume\": 30457740}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 54.43, \"high\": 56.09, \"low\": 54.08, \"close\": 55.02, \"volume\": 33145891}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 53.25, \"high\": 54.0, \"low\": 52.05, \"close\": 53.12, \"volume\": 24605420}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 53.5, \"high\": 55.6, \"low\": 53.39, \"close\": 55.58, \"volume\": 21065867}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 56.8, \"high\": 59.15, \"low\": 56.42, \"close\": 58.41, \"volume\": 39402259}], \"source_snapshot\": {\"dailyBar\": {\"c\": 67.33, \"h\": 67.45, \"l\": 65.53, \"n\": 3319, \"o\": 65.9, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 338960, \"vw\": 66.848595}, \"latestQuote\": {\"ap\": 67.32, \"as\": 200, \"ax\": \"V\", \"bp\": 67.3, \"bs\": 700, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:15.333638574Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697650251, \"p\": 67.315, \"s\": 110, \"t\": \"2026-03-31T16:29:12.328237169Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 67.33, \"h\": 67.38, \"l\": 67.315, \"n\": 13, \"o\": 67.32, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1311, \"vw\": 67.345636}, \"prevDailyBar\": {\"c\": 66.235, \"h\": 67.04, \"l\": 65.795, \"n\": 9633, \"o\": 65.8, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1054816, \"vw\": 66.473791}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:15.604257+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:31.375294"},{"id":728,"cycle_id":"20260331162912-9ac11717","symbol":"XOM","price":173.75,"provider_name":"alpaca","action":"buy","confidence":65.0,"reason":"The market shows a moderate reversal candidate with reclaim behavior after a prior down move. The bullish momentum bias and moderate long candidate strength support a buy decision despite the mixed trend structure.","market_state":"reversal","market_regime":null,"setup_type":"reversal_long","risk_level":"medium","suggested_position_pct":0.1,"stop_loss_pct":0.02,"take_profit_pct":0.1,"invalidation_condition":"Price falls below 171.43 (previous close)","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":65,\"reason\":\"The market shows a moderate reversal candidate with reclaim behavior after a prior down move. The bullish momentum bias and moderate long candidate strength support a buy decision despite the mixed trend structure.\",\"market_state\":\"reversal\",\"setup_type\":\"reversal_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.1,\"stop_loss_pct\":0.02,\"take_profit_pct\":0.1,\"invalidation_condition\":\"Price falls below 171.43 (previous close)\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"XOM\", \"price\": 173.75, \"previous_close\": 171.43, \"change\": 2.31, \"change_pct\": 1.35, \"fetched_at\": \"2026-03-31T16:29:14.643183+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 943.39, \"provider_response_timestamp\": \"2026-03-31T16:29:14.643183+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 153.15, \"high\": 153.8, \"low\": 149.96, \"close\": 151.21, \"volume\": 21146957}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 152.015, \"high\": 153.8899, \"low\": 149.47, \"close\": 150.44, \"volume\": 25547093}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 149.25, \"high\": 150.4, \"low\": 147.7, \"close\": 148.13, \"volume\": 19629772}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 147.99, \"high\": 151.81, \"low\": 147.66, \"close\": 151.58, \"volume\": 15307487}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 152.265, \"high\": 155.0, \"low\": 151.63, \"close\": 153.53, \"volume\": 26065186}], \"source_snapshot\": {\"dailyBar\": {\"c\": 173.8, \"h\": 174.35, \"l\": 171.675, \"n\": 4865, \"o\": 172.74, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 382162, \"vw\": 173.276354}, \"latestQuote\": {\"ap\": 173.71, \"as\": 100, \"ax\": \"V\", \"bp\": 173.69, \"bs\": 200, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:13.907521Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697587799, \"p\": 173.745, \"s\": 100, \"t\": \"2026-03-31T16:29:00.386246881Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 173.8, \"h\": 173.85, \"l\": 173.795, \"n\": 21, \"o\": 173.8, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1414, \"vw\": 173.818969}, \"prevDailyBar\": {\"c\": 171.43, \"h\": 176.4, \"l\": 171.05, \"n\": 15847, \"o\": 172.385, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1316630, \"vw\": 173.38982}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:14.643183+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:28.541663"},{"id":727,"cycle_id":"20260331162912-9ac11717","symbol":"PANW","price":159.37,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong bullish trend with breakout confirmation and manageable failure risk. The price is near the recent high, indicating a potential continuation of the upward movement.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes below the recent low of 155.84","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong bullish trend with breakout confirmation and manageable failure risk. The price is near the recent high, indicating a potential continuation of the upward movement.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes below the recent low of 155.84\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"PANW\", \"price\": 159.37, \"previous_close\": 154.35, \"change\": 5.02, \"change_pct\": 3.25, \"fetched_at\": \"2026-03-31T16:29:13.669799+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 950.13, \"provider_response_timestamp\": \"2026-03-31T16:29:13.669799+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 162.32, \"high\": 165.3599, \"low\": 161.31, \"close\": 165.05, \"volume\": 7206028}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 164.08, \"high\": 167.76, \"low\": 163.49, \"close\": 165.1, \"volume\": 9199307}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 165.5, \"high\": 167.0, \"low\": 160.8316, \"close\": 165.58, \"volume\": 6852520}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 166.65, \"high\": 169.08, \"low\": 163.38, \"close\": 164.93, \"volume\": 5492213}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 166.28, \"high\": 168.74, \"low\": 165.43, \"close\": 168.12, \"volume\": 7967357}], \"source_snapshot\": {\"dailyBar\": {\"c\": 159.37, \"h\": 159.37, \"l\": 155.445, \"n\": 2497, \"o\": 155.84, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 98806, \"vw\": 157.685511}, \"latestQuote\": {\"ap\": 160, \"as\": 100, \"ax\": \"V\", \"bp\": 155, \"bs\": 200, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:12.279668327Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 2486, \"p\": 159.37, \"s\": 100, \"t\": \"2026-03-31T16:28:43.995833074Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 159.37, \"h\": 159.37, \"l\": 159.33, \"n\": 23, \"o\": 159.33, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 788, \"vw\": 159.35625}, \"prevDailyBar\": {\"c\": 154.35, \"h\": 159.12, \"l\": 151.755, \"n\": 8155, \"o\": 151.755, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 524534, \"vw\": 155.905066}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:13.669799+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:24.866515"},{"id":726,"cycle_id":"20260331162857-17861318","symbol":"NVDA","price":171.09,"provider_name":"alpaca","action":"hold","confidence":50.0,"reason":"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.","market_state":"choppy","market_regime":null,"setup_type":"no_trade","risk_level":"low","suggested_position_pct":0.0,"stop_loss_pct":0.0,"take_profit_pct":0.0,"invalidation_condition":"N/A","expected_holding_period":"unknown","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":null,"blocked_reason_code":null,"raw_ai_response":"{\"action\":\"hold\",\"confidence\":50,\"reason\":\"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.\",\"market_state\":\"choppy\",\"setup_type\":\"no_trade\",\"risk_level\":\"low\",\"suggested_position_pct\":0,\"stop_loss_pct\":0,\"take_profit_pct\":0,\"invalidation_condition\":\"N/A\",\"expected_holding_period\":\"unknown\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"NVDA\", \"price\": 171.09, \"previous_close\": 165.18, \"change\": 5.91, \"change_pct\": 3.58, \"fetched_at\": \"2026-03-31T16:29:03.888809+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 919.31, \"provider_response_timestamp\": \"2026-03-31T16:29:03.888809+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 179.84, \"high\": 182.7561, \"low\": 176.8201, \"close\": 177.82, \"volume\": 189621819}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 176.83, \"high\": 182.91, \"low\": 175.56, \"close\": 182.65, \"volume\": 177936755}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 182.4, \"high\": 186.44, \"low\": 182.01, \"close\": 184.77, \"volume\": 179773840}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 185.91, \"high\": 187.62, \"low\": 184.45, \"close\": 186.03, \"volume\": 145920458}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 184.05, \"high\": 184.94, \"low\": 181.75, \"close\": 183.14, \"volume\": 156395429}], \"source_snapshot\": {\"dailyBar\": {\"c\": 171.1, \"h\": 171.37, \"l\": 167.035, \"n\": 22648, \"o\": 167.12, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 2769301, \"vw\": 169.882775}, \"latestQuote\": {\"ap\": 171.07, \"as\": 1600, \"ax\": \"V\", \"bp\": 171.05, \"bs\": 1700, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:03.793388525Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 22666, \"p\": 171.09, \"s\": 100, \"t\": \"2026-03-31T16:29:02.305972032Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 171.1, \"h\": 171.13, \"l\": 171.085, \"n\": 84, \"o\": 171.115, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 9793, \"vw\": 171.100347}, \"prevDailyBar\": {\"c\": 165.18, \"h\": 169.43, \"l\": 164.285, \"n\": 37678, \"o\": 168.63, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 4681083, \"vw\": 166.504513}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:03.888809+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:24.272232"},{"id":725,"cycle_id":"20260331162912-9ac11717","symbol":"WMT","price":123.87,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong long candidate strength and bullish trend structure indicate a favorable environment for a breakout long position.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes below 122.85","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong long candidate strength and bullish trend structure indicate a favorable environment for a breakout long position.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes below 122.85\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"WMT\", \"price\": 123.87, \"previous_close\": 123.52, \"change\": 0.35, \"change_pct\": 0.28, \"fetched_at\": \"2026-03-31T16:29:12.730654+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 913.91, \"provider_response_timestamp\": \"2026-03-31T16:29:12.730654+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 122.495, \"high\": 124.185, \"low\": 121.62, \"close\": 123.8, \"volume\": 21572256}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 123.6885, \"high\": 124.505, \"low\": 122.5, \"close\": 124.34, \"volume\": 19397431}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 124.21, \"high\": 126.0988, \"low\": 123.35, \"close\": 125.12, \"volume\": 18813806}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 125.305, \"high\": 125.49, \"low\": 123.05, \"close\": 123.49, \"volume\": 18196153}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 122.295, \"high\": 125.39, \"low\": 122.28, \"close\": 125.33, \"volume\": 21770171}], \"source_snapshot\": {\"dailyBar\": {\"c\": 123.87, \"h\": 124.97, \"l\": 122.85, \"n\": 3853, \"o\": 123.655, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 296243, \"vw\": 123.784156}, \"latestQuote\": {\"ap\": 123.83, \"as\": 100, \"ax\": \"V\", \"bp\": 123.81, \"bs\": 100, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:12.595989816Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 3853, \"p\": 123.87, \"s\": 100, \"t\": \"2026-03-31T16:28:52.191802846Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 123.87, \"h\": 123.91, \"l\": 123.86, \"n\": 10, \"o\": 123.885, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 917, \"vw\": 123.876875}, \"prevDailyBar\": {\"c\": 123.52, \"h\": 125.205, \"l\": 123.18, \"n\": 8663, \"o\": 123.72, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 637378, \"vw\": 123.852181}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:12.730654+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:22.083853"},{"id":724,"cycle_id":"20260331162857-17861318","symbol":"SPY","price":642.29,"provider_name":"alpaca","action":"sell","confidence":75.0,"reason":"The trend is strongly bearish with a clear continuation pattern, supported by strong short candidate scoring and no significant noise conflict.","market_state":"bearish","market_regime":null,"setup_type":"trend_continuation_short","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes above 645.00","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"sell\",\"confidence\":75,\"reason\":\"The trend is strongly bearish with a clear continuation pattern, supported by strong short candidate scoring and no significant noise conflict.\",\"market_state\":\"bearish\",\"setup_type\":\"trend_continuation_short\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes above 645.00\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"SPY\", \"price\": 642.29, \"previous_close\": 632.02, \"change\": 10.27, \"change_pct\": 1.62, \"fetched_at\": \"2026-03-31T16:29:02.947233+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 936.07, \"provider_response_timestamp\": \"2026-03-31T16:29:02.947233+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 673.41, \"high\": 676.11, \"low\": 669.76, \"close\": 672.38, \"volume\": 100796751}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 666.39, \"high\": 679.92, \"low\": 662.39, \"close\": 678.27, \"volume\": 102774914}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 677.72, \"high\": 683.36, \"low\": 674.76, \"close\": 677.18, \"volume\": 81585842}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 677.58, \"high\": 680.08, \"low\": 673.34, \"close\": 676.33, \"volume\": 68519802}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 671.16, \"high\": 671.65, \"low\": 665.87, \"close\": 666.06, \"volume\": 108960383}], \"source_snapshot\": {\"dailyBar\": {\"c\": 642.295, \"h\": 642.95, \"l\": 638.01, \"n\": 14420, \"o\": 638.905, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 946223, \"vw\": 640.93775}, \"latestQuote\": {\"ap\": 642.26, \"as\": 80, \"ax\": \"V\", \"bp\": 642.25, \"bs\": 40, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:02.862108129Z\", \"z\": \"B\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697585718, \"p\": 642.295, \"s\": 40, \"t\": \"2026-03-31T16:28:58.599269142Z\", \"x\": \"V\", \"z\": \"B\"}, \"minuteBar\": {\"c\": 642.295, \"h\": 642.295, \"l\": 642.12, \"n\": 36, \"o\": 642.12, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1516, \"vw\": 642.209972}, \"prevDailyBar\": {\"c\": 632.02, \"h\": 640.28, \"l\": 629.29, \"n\": 33774, \"o\": 639.86, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1812294, \"vw\": 634.127681}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:02.947233+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:21.668661"},{"id":723,"cycle_id":"20260331162857-17861318","symbol":"V","price":297.46,"provider_name":"alpaca","action":"sell","confidence":80.0,"reason":"Strong downtrend with confirmed breakdown behavior and bearish momentum. The price is below the recent range, indicating a continuation of the downward movement.","market_state":"bearish","market_regime":null,"setup_type":"breakdown_short","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.2,"take_profit_pct":0.5,"invalidation_condition":"Price closes above 301.91 (day open).","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"sell\",\"confidence\":80,\"reason\":\"Strong downtrend with confirmed breakdown behavior and bearish momentum. The price is below the recent range, indicating a continuation of the downward movement.\",\"market_state\":\"bearish\",\"setup_type\":\"breakdown_short\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.2,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes above 301.91 (day open).\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"V\", \"price\": 297.46, \"previous_close\": 299.62, \"change\": -2.16, \"change_pct\": -0.72, \"fetched_at\": \"2026-03-31T16:29:01.963184+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 974.77, \"provider_response_timestamp\": \"2026-03-31T16:29:01.963184+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 316.045, \"high\": 317.69, \"low\": 312.3, \"close\": 317.36, \"volume\": 6448073}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 313.46, \"high\": 316.4, \"low\": 310.15, \"close\": 315.97, \"volume\": 8391606}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 315.43, \"high\": 317.13, \"low\": 311.45, \"close\": 314.43, \"volume\": 5278592}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 313.25, \"high\": 315.08, \"low\": 308.39, \"close\": 308.96, \"volume\": 6394907}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 308.14, \"high\": 310.95, \"low\": 306.019, \"close\": 306.5, \"volume\": 7522880}], \"source_snapshot\": {\"dailyBar\": {\"c\": 297.465, \"h\": 302.285, \"l\": 297.05, \"n\": 3854, \"o\": 301.91, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 150587, \"vw\": 299.216951}, \"latestQuote\": {\"ap\": 300, \"as\": 160, \"ax\": \"V\", \"bp\": 297.32, \"bs\": 40, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:28:57.433246712Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697584218, \"p\": 297.465, \"s\": 53, \"t\": \"2026-03-31T16:28:57.672645333Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 297.465, \"h\": 297.465, \"l\": 297.19, \"n\": 45, \"o\": 297.19, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1864, \"vw\": 297.342886}, \"prevDailyBar\": {\"c\": 299.625, \"h\": 300.63, \"l\": 295.9, \"n\": 11052, \"o\": 298.18, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 468305, \"vw\": 298.963675}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:01.963184+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:18.831920"},{"id":722,"cycle_id":"20260331162857-17861318","symbol":"OXY","price":67.33,"provider_name":"alpaca","action":"buy","confidence":80.0,"reason":"Strong bullish trend with confirmed breakout behavior and manageable failure risk. Long candidate strength is strong, indicating a favorable setup for buying.","market_state":"breakout","market_regime":null,"setup_type":"breakout_long","risk_level":"medium","suggested_position_pct":0.2,"stop_loss_pct":0.1,"take_profit_pct":0.5,"invalidation_condition":"Price closes below 66.00","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":80,\"reason\":\"Strong bullish trend with confirmed breakout behavior and manageable failure risk. Long candidate strength is strong, indicating a favorable setup for buying.\",\"market_state\":\"breakout\",\"setup_type\":\"breakout_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.2,\"stop_loss_pct\":0.1,\"take_profit_pct\":0.5,\"invalidation_condition\":\"Price closes below 66.00\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"OXY\", \"price\": 67.33, \"previous_close\": 66.23, \"change\": 1.09, \"change_pct\": 1.65, \"fetched_at\": \"2026-03-31T16:29:00.763244+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 1193.88, \"provider_response_timestamp\": \"2026-03-31T16:29:00.763244+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 54.2, \"high\": 55.17, \"low\": 53.295, \"close\": 54.19, \"volume\": 30457740}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 54.43, \"high\": 56.09, \"low\": 54.08, \"close\": 55.02, \"volume\": 33145891}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 53.25, \"high\": 54.0, \"low\": 52.05, \"close\": 53.12, \"volume\": 24605420}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 53.5, \"high\": 55.6, \"low\": 53.39, \"close\": 55.58, \"volume\": 21065867}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 56.8, \"high\": 59.15, \"low\": 56.42, \"close\": 58.41, \"volume\": 39402259}], \"source_snapshot\": {\"dailyBar\": {\"c\": 67.33, \"h\": 67.45, \"l\": 65.53, \"n\": 3319, \"o\": 65.9, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 338960, \"vw\": 66.848595}, \"latestQuote\": {\"ap\": 67.34, \"as\": 200, \"ax\": \"V\", \"bp\": 67.33, \"bs\": 600, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:29:00.370938846Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697533780, \"p\": 67.33, \"s\": 100, \"t\": \"2026-03-31T16:28:55.340808602Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 67.33, \"h\": 67.38, \"l\": 67.315, \"n\": 13, \"o\": 67.32, \"t\": \"2026-03-31T16:28:00Z\", \"v\": 1311, \"vw\": 67.345636}, \"prevDailyBar\": {\"c\": 66.235, \"h\": 67.04, \"l\": 65.795, \"n\": 9633, \"o\": 65.8, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1054816, \"vw\": 66.473791}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:29:00.763244+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:15.953665"},{"id":721,"cycle_id":"20260331162857-17861318","symbol":"XOM","price":173.8,"provider_name":"alpaca","action":"buy","confidence":65.0,"reason":"The market shows a moderate reversal candidate with reclaim behavior after a prior down move. The bullish momentum bias and moderate long candidate strength support a buy decision despite the mixed trend structure.","market_state":"reversal","market_regime":null,"setup_type":"reversal_long","risk_level":"medium","suggested_position_pct":0.1,"stop_loss_pct":0.1,"take_profit_pct":0.3,"invalidation_condition":"Price falls below 171.43 (previous close).","expected_holding_period":"swing","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":"Daily trade limit reached.","blocked_reason_code":null,"raw_ai_response":"{\"action\":\"buy\",\"confidence\":65,\"reason\":\"The market shows a moderate reversal candidate with reclaim behavior after a prior down move. The bullish momentum bias and moderate long candidate strength support a buy decision despite the mixed trend structure.\",\"market_state\":\"reversal\",\"setup_type\":\"reversal_long\",\"risk_level\":\"medium\",\"suggested_position_pct\":0.1,\"stop_loss_pct\":0.1,\"take_profit_pct\":0.3,\"invalidation_condition\":\"Price falls below 171.43 (previous close).\",\"expected_holding_period\":\"swing\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"XOM\", \"price\": 173.8, \"previous_close\": 171.43, \"change\": 2.37, \"change_pct\": 1.38, \"fetched_at\": \"2026-03-31T16:28:59.743612+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 1019.71, \"provider_response_timestamp\": \"2026-03-31T16:28:59.743612+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 153.15, \"high\": 153.8, \"low\": 149.96, \"close\": 151.21, \"volume\": 21146957}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 152.015, \"high\": 153.8899, \"low\": 149.47, \"close\": 150.44, \"volume\": 25547093}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 149.25, \"high\": 150.4, \"low\": 147.7, \"close\": 148.13, \"volume\": 19629772}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 147.99, \"high\": 151.81, \"low\": 147.66, \"close\": 151.58, \"volume\": 15307487}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 152.265, \"high\": 155.0, \"low\": 151.63, \"close\": 153.53, \"volume\": 26065186}], \"source_snapshot\": {\"dailyBar\": {\"c\": 173.79, \"h\": 174.35, \"l\": 171.675, \"n\": 4844, \"o\": 172.74, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 380748, \"vw\": 173.274303}, \"latestQuote\": {\"ap\": 173.74, \"as\": 100, \"ax\": \"V\", \"bp\": 173.72, \"bs\": 100, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:28:59.582822809Z\", \"z\": \"A\"}, \"latestTrade\": {\"c\": [\" \"], \"i\": 52983697525850, \"p\": 173.8, \"s\": 100, \"t\": \"2026-03-31T16:28:48.783915808Z\", \"x\": \"V\", \"z\": \"A\"}, \"minuteBar\": {\"c\": 173.79, \"h\": 173.79, \"l\": 173.78, \"n\": 9, \"o\": 173.78, \"t\": \"2026-03-31T16:27:00Z\", \"v\": 564, \"vw\": 173.786452}, \"prevDailyBar\": {\"c\": 171.43, \"h\": 176.4, \"l\": 171.05, \"n\": 15847, \"o\": 172.385, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 1316630, \"vw\": 173.38982}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:28:59.743612+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:12.587987"},{"id":720,"cycle_id":"20260331162845-6cc5e08e","symbol":"NVDA","price":171.12,"provider_name":"alpaca","action":"hold","confidence":50.0,"reason":"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.","market_state":"choppy","market_regime":null,"setup_type":"no_trade","risk_level":"low","suggested_position_pct":0.0,"stop_loss_pct":0.0,"take_profit_pct":0.0,"invalidation_condition":"N/A","expected_holding_period":"unknown","prompt_version":"paper-trading-ai-v1-284be0ba1205","validation_status":"valid","rejection_reason":null,"blocked_reason_code":null,"raw_ai_response":"{\"action\":\"hold\",\"confidence\":50,\"reason\":\"Market is in a choppy range with conflicting evidence and unknown trend direction. Confidence is below the threshold for a directional trade.\",\"market_state\":\"choppy\",\"setup_type\":\"no_trade\",\"risk_level\":\"low\",\"suggested_position_pct\":0,\"stop_loss_pct\":0,\"take_profit_pct\":0,\"invalidation_condition\":\"N/A\",\"expected_holding_period\":\"unknown\"}","feature_snapshot_json":null,"signal_snapshot_json":null,"source_snapshot_json":"{\"symbol\": \"NVDA\", \"price\": 171.12, \"previous_close\": 165.18, \"change\": 5.94, \"change_pct\": 3.6, \"fetched_at\": \"2026-03-31T16:28:51.954365+00:00\", \"status\": \"ok\", \"reason\": \"Alpaca snapshot loaded.\", \"provider_name\": \"alpaca\", \"provider_success\": true, \"provider_failure_reason\": null, \"provider_duration_ms\": 905.01, \"provider_response_timestamp\": \"2026-03-31T16:28:51.954365+00:00\", \"history\": [{\"timestamp\": \"2026-03-06T05:00:00Z\", \"open\": 179.84, \"high\": 182.7561, \"low\": 176.8201, \"close\": 177.82, \"volume\": 189621819}, {\"timestamp\": \"2026-03-09T04:00:00Z\", \"open\": 176.83, \"high\": 182.91, \"low\": 175.56, \"close\": 182.65, \"volume\": 177936755}, {\"timestamp\": \"2026-03-10T04:00:00Z\", \"open\": 182.4, \"high\": 186.44, \"low\": 182.01, \"close\": 184.77, \"volume\": 179773840}, {\"timestamp\": \"2026-03-11T04:00:00Z\", \"open\": 185.91, \"high\": 187.62, \"low\": 184.45, \"close\": 186.03, \"volume\": 145920458}, {\"timestamp\": \"2026-03-12T04:00:00Z\", \"open\": 184.05, \"high\": 184.94, \"low\": 181.75, \"close\": 183.14, \"volume\": 156395429}], \"source_snapshot\": {\"dailyBar\": {\"c\": 171.125, \"h\": 171.37, \"l\": 167.035, \"n\": 22564, \"o\": 167.12, \"t\": \"2026-03-31T04:00:00Z\", \"v\": 2759508, \"vw\": 169.878444}, \"latestQuote\": {\"ap\": 171.1, \"as\": 1800, \"ax\": \"V\", \"bp\": 171.08, \"bs\": 1600, \"bx\": \"V\", \"c\": [\"R\"], \"t\": \"2026-03-31T16:28:51.287552725Z\", \"z\": \"C\"}, \"latestTrade\": {\"c\": [\"@\"], \"i\": 22634, \"p\": 171.12, \"s\": 100, \"t\": \"2026-03-31T16:28:38.502113324Z\", \"x\": \"V\", \"z\": \"C\"}, \"minuteBar\": {\"c\": 171.125, \"h\": 171.16, \"l\": 171.04, \"n\": 80, \"o\": 171.04, \"t\": \"2026-03-31T16:27:00Z\", \"v\": 11196, \"vw\": 171.114823}, \"prevDailyBar\": {\"c\": 165.18, \"h\": 169.43, \"l\": 164.285, \"n\": 37678, \"o\": 168.63, \"t\": \"2026-03-30T04:00:00Z\", \"v\": 4681083, \"vw\": 166.504513}}, \"history_provider_name\": \"alpaca\", \"error_category\": null, \"retry_count\": 0, \"last_http_status\": null, \"cache_used\": false, \"is_stale\": false, \"data_age_seconds\": 0.0, \"data_source_attempted\": \"alpaca\", \"data_source_final\": \"alpaca\", \"provider_success_map\": {\"alpaca\": {\"success\": true, \"category\": null, \"retry_count\": 0, \"last_http_status\": null, \"provider_response_timestamp\": \"2026-03-31T16:28:51.954365+00:00\", \"reason\": null}}, \"provider_priority_used\": true, \"provider_timestamp_diff\": null}","created_at":"2026-03-31T16:29:12.258280"}]