{
"config_version": "a_plus_trade_worthy_news_router_v1_2026_06_02",
"strategy_name": "A_PLUS_CONFIRMATION_ROUTER",
"purpose": "Analyze all trade-worthy news, separate immediate Fast News from slower confirmation-based A+ setups, and only route A+ candidates when confirmation is required.",
"timezone": "America\/New_York",
"core_principle": {
"analyze_all_trade_worthy_news": true,
"do_not_auto_trade_on_news_only": true,
"a_plus_requires_confirmation": true,
"fast_news_separate": true,
"reject_unclear_or_low_quality_news": true,
"manual_review_for_mixed_or_borderline_news": true
},
"strategy_separation": {
"FAST_NEWS": {
"description": "Immediate breaking-news strategy. Must not be handled by this A+ router except to route away.",
"route_to": "FAST_NEWS_ENGINE",
"conditions": [
"time_sensitivity == IMMEDIATE",
"market_impact_score >= 85",
"direction_confidence >= 80",
"news_age_seconds <= 180",
"underlying_reaction_agrees == true",
"options_validation_pass == true"
],
"a_plus_action": "DO_NOT_PROCESS_AS_A_PLUS"
},
"A_PLUS_CONFIRMATION": {
"description": "Trade-worthy news that needs confirmation before entry.",
"route_to": "A_PLUS_ENGINE",
"conditions": [
"market_impact_score >= 70",
"time_sensitivity in ['FAST_CONFIRMATION', 'SLOW_CONFIRMATION']",
"direction_confidence >= 60",
"requires_chart_confirmation == true",
"not_duplicate == true",
"source_reliability_score >= 7.0"
],
"a_plus_action": "SEND_TO_CONFIRMATION_ENGINE"
},
"MANUAL_REVIEW": {
"description": "Potentially important news but direction, source, or timing is not clear enough.",
"route_to": "MANUAL_REVIEW_QUEUE",
"conditions": [
"market_impact_score >= 70",
"direction_confidence < 80",
"headline_is_mixed == true OR affected_assets_unclear == true OR source_reliability_score < 8.0"
],
"a_plus_action": "ALERT_ONLY"
},
"REJECT": {
"description": "News is not worthy, stale, duplicate, too unclear, or not tradable.",
"route_to": "REJECT_LOG",
"conditions": [
"market_impact_score < 70",
"source_reliability_score < 7.0",
"duplicate_check == FAIL",
"expected_direction == NO_TRADE",
"news_is_stale == true"
],
"a_plus_action": "REJECT_AND_LOG"
}
},
"worthy_news_scanner": {
"enabled": true,
"run_on_every_headline": true,
"minimum_market_impact_score_for_a_plus_review": 70,
"minimum_market_impact_score_for_a_plus_candidate": 78,
"minimum_source_reliability_for_a_plus_candidate": 7,
"minimum_direction_confidence_for_a_plus_candidate": 60,
"classify_outputs_required": [
"is_market_moving",
"market_impact_score",
"event_type",
"headline_theme",
"primary_ticker",
"sector",
"affected_assets",
"expected_direction",
"direction_confidence",
"time_sensitivity",
"requires_confirmation",
"source_reliability_score",
"duplicate_status",
"stale_status",
"route"
],
"market_moving_event_types": [
"earnings_surprise",
"guidance_change",
"analyst_upgrade",
"analyst_downgrade",
"price_target_change",
"sector_rotation",
"sympathy_move",
"ai_continuation_momentum",
"enterprise_ai_deployment",
"ai_infrastructure_demand",
"software_spending_trend",
"cybersecurity_spending_trend",
"cloud_spending_trend",
"semiconductor_cycle_shift",
"commodity_trend_shift",
"oil_macro_trend",
"geopolitical_theme",
"interest_rate_shift",
"inflation_theme",
"jobs_data_reaction",
"treasury_yield_move",
"m_and_a_speculation",
"strategic_review",
"short_seller_follow_through",
"regulatory_follow_through",
"fda_follow_through",
"government_contract_follow_through",
"index_inclusion",
"index_removal",
"capital_raise_digestion",
"credit_downgrade_follow_through"
]
},
"a_plus_candidate_types": {
"analyst_upgrade_or_downgrade": {
"enabled": true,
"description": "Usually not Fast News unless extreme. Route to A+ if price confirms.",
"default_time_sensitivity": "FAST_CONFIRMATION",
"requires_confirmation": true,
"confirmation_needed": [
"price holds direction for 5 to 15 minutes",
"volume_relative >= 1.5",
"above_vwap_for_calls_or_below_vwap_for_puts",
"options_spread_acceptable"
],
"reject_if": [
"stock gaps and fades",
"premium already overexpanded",
"upgrade\/downgrade is stale"
]
},
"earnings_digest_or_continuation": {
"enabled": true,
"description": "Earnings news that is important but not caught instantly. Route to A+ continuation.",
"default_time_sensitivity": "FAST_CONFIRMATION",
"requires_confirmation": true,
"confirmation_needed": [
"breaks premarket high or low",
"holds VWAP",
"relative volume >= 2",
"option premium confirms after consolidation"
],
"examples": [
"DELL continuation",
"HPE continuation",
"MRVL continuation"
]
},
"ai_continuation_momentum": {
"enabled": true,
"description": "AI theme continuation that is not fresh enough for Fast News.",
"default_time_sensitivity": "SLOW_CONFIRMATION",
"requires_confirmation": true,
"tickers": [
"NVDA",
"AMD",
"DELL",
"HPE",
"SMCI",
"MRVL",
"AVGO",
"ANET",
"SNOW",
"MSFT",
"GOOGL",
"AMZN"
],
"confirmation_needed": [
"sector strength confirmed",
"leader stock confirms",
"target ticker above VWAP for calls",
"higher-high structure",
"options premium rising after consolidation"
],
"reject_if": [
"only sympathy with no price confirmation",
"leader stock is red",
"premium inflated before confirmation"
]
},
"sector_sympathy_move": {
"enabled": true,
"description": "Anchor stock moves strongly and related names may follow.",
"default_time_sensitivity": "FAST_CONFIRMATION",
"requires_confirmation": true,
"anchor_rules": {
"minimum_anchor_move_percent": 5,
"minimum_anchor_volume_relative": 2,
"anchor_news_source_reliability_min": 8
},
"confirmation_needed": [
"sympathy ticker moves in same direction",
"sympathy ticker volume_relative >= 1.5",
"sympathy ticker holds VWAP",
"options liquidity passes"
],
"reject_if": [
"sympathy ticker not moving",
"anchor move already exhausted",
"sector breadth is weak"
]
},
"macro_theme_confirmation": {
"enabled": true,
"description": "Macro news that needs market confirmation before trading indexes, ETFs, energy, rates, or gold.",
"default_time_sensitivity": "SLOW_CONFIRMATION",
"requires_confirmation": true,
"assets": [
"SPY",
"QQQ",
"IWM",
"XLE",
"XLF",
"TLT",
"GLD",
"USO",
"DIA"
],
"confirmation_needed": [
"index or ETF confirms direction",
"related asset confirms direction",
"no contradictory headline cluster",
"price holds key level or VWAP"
],
"reject_if": [
"conflicting macro headlines",
"direction changes within 15 minutes",
"related asset disagrees"
]
},
"software_or_cloud_theme": {
"enabled": true,
"description": "Software\/cloud spending themes that are not instant shocks but can trend.",
"default_time_sensitivity": "SLOW_CONFIRMATION",
"requires_confirmation": true,
"tickers": [
"CRM",
"SNOW",
"NOW",
"DDOG",
"ZS",
"CRWD",
"PANW",
"OKTA"
],
"confirmation_needed": [
"sector basket confirms",
"ticker holds trend",
"relative volume >= 1.5",
"option premium confirms"
]
}
},
"a_plus_confirmation_engine": {
"enabled": true,
"auto_trade_enabled": false,
"manual_approval_required": true,
"paper_trade_allowed": true,
"minimum_a_plus_score_for_alert": 75,
"minimum_a_plus_score_for_manual_trade": 85,
"minimum_a_plus_score_for_auto_trade_if_later_enabled": 92,
"confirmation_windows_minutes": [
5,
10,
15,
30
],
"must_pass_for_a_plus_candidate": [
"worthy_news_check",
"route_is_a_plus_confirmation",
"duplicate_check",
"direction_confidence_check",
"ticker_liquidity_check",
"underlying_confirmation_check",
"volume_confirmation_check",
"vwap_confirmation_check",
"options_chain_check",
"spread_check",
"risk_check"
],
"underlying_confirmation_check": {
"calls_require": [
"price_above_vwap == true",
"higher_high_or_breakout == true",
"relative_volume >= 1.5",
"leader_or_sector_confirmation == true"
],
"puts_require": [
"price_below_vwap == true",
"lower_low_or_breakdown == true",
"relative_volume >= 1.5",
"leader_or_sector_confirmation == true"
]
},
"options_confirmation_check": {
"minimum_open_interest": 100,
"minimum_volume": 50,
"minimum_bid": 0.2,
"max_spread_percent": 15,
"preferred_delta_range": {
"min": 0.35,
"max": 0.65
},
"reject_if": [
"zero_bid",
"spread_too_wide",
"premium_already_exploded_without_consolidation",
"no_option_volume"
]
},
"risk_rules": {
"max_contracts": 2,
"default_contracts": 1,
"max_dollar_risk_per_trade": 300,
"max_daily_a_plus_loss": 600,
"stop_loss_percent": 20,
"time_stop_minutes": 30,
"reject_if_stop_monitor_unavailable": true
}
},
"routing_decision_logic": {
"order_of_operations": [
"ingest_news",
"score_market_impact",
"classify_event_type",
"classify_time_sensitivity",
"classify_expected_direction",
"check_source_reliability",
"check_duplicate_and_stale_status",
"route_to_fast_news_or_a_plus_or_manual_or_reject",
"if_a_plus_then_wait_for_confirmation",
"if_confirmed_then_alert_or_paper_trade",
"log_all_results"
],
"fast_news_not_a_plus_conditions": [
"time_sensitivity == IMMEDIATE",
"news_age_seconds <= 180",
"market_impact_score >= 85",
"direction_confidence >= 80",
"underlying_reaction_agrees == true",
"options_validation_pass == true"
],
"a_plus_conditions": [
"market_impact_score >= 70",
"time_sensitivity in ['FAST_CONFIRMATION','SLOW_CONFIRMATION']",
"requires_confirmation == true",
"direction_confidence >= 60",
"source_reliability_score >= 7.0",
"duplicate_check == PASS",
"news_is_stale == false"
],
"manual_review_conditions": [
"market_impact_score >= 70",
"direction_confidence < 80",
"headline_is_mixed == true",
"affected_assets_unclear == true",
"source_reliability_score >= 7.0 AND source_reliability_score < 8.0"
],
"reject_conditions": [
"market_impact_score < 70",
"source_reliability_score < 7.0",
"duplicate_check == FAIL",
"expected_direction == NO_TRADE",
"news_is_stale == true",
"ticker_untradable == true"
]
},
"duplicate_news_logic": {
"enabled": true,
"duplicate_key_fields": [
"event_date",
"trading_session",
"source_cluster",
"headline_theme",
"primary_ticker",
"expected_direction",
"route"
],
"same_day_duplicate_window_minutes": 30,
"same_event_action": "SUPPRESS_OR_CONFIDENCE_BOOST_ONLY",
"do_not_create_second_trade": true,
"allow_new_event_if": [
"new_trading_day",
"new_trading_session",
"material_escalation",
"official_confirmation_after_rumor",
"opposite_direction_update",
"new_guidance_change",
"new_contract_confirmation",
"new_price_breakout_after_consolidation"
]
},
"api_output_schema": {
"required_output": {
"news_id": "string",
"route": "FAST_NEWS | A_PLUS_CONFIRMATION | MANUAL_REVIEW | REJECT",
"strategy": "A_PLUS_CONFIRMATION_ROUTER",
"headline_theme": "string",
"event_type": "string",
"primary_ticker": "string_or_null",
"sector": "string_or_null",
"expected_direction": "CALLS | PUTS | MIXED | NO_TRADE",
"direction_confidence": "number",
"market_impact_score": "number",
"source": "string",
"source_reliability_score": "number",
"duplicate_status": "PASS | FAIL | CONFIDENCE_BOOST_ONLY",
"stale_status": "FRESH | STALE | LATE",
"time_sensitivity": "IMMEDIATE | FAST_CONFIRMATION | SLOW_CONFIRMATION | IGNORE",
"requires_confirmation": "boolean",
"a_plus_score": "number_or_null",
"confirmation_status": "WAITING | CONFIRMED | FAILED | NOT_APPLICABLE",
"reason": "string",
"execution": {
"should_execute_trade_api": false,
"manual_approval_required": true,
"paper_trade_allowed": true
}
}
},
"learning_engine": {
"enabled": true,
"run_after_market_close": true,
"store_all_routed_news": true,
"track_which_a_plus_candidates_confirmed": true,
"track_which_candidates_failed_confirmation": true,
"track_missed_a_plus_moves": true,
"track_false_positive_routes": true,
"update_category_weights_daily": true,
"fields_to_log": [
"date",
"news_id",
"published_at",
"received_at",
"source",
"headline_theme",
"event_type",
"primary_ticker",
"sector",
"market_impact_score",
"expected_direction",
"actual_direction",
"direction_confidence",
"route",
"confirmation_status",
"a_plus_score",
"underlying_move_5m",
"underlying_move_15m",
"underlying_move_30m",
"option_premium_change",
"spread_percent",
"paper_entry",
"paper_exit",
"net_pnl",
"reject_reason",
"lesson_learned"
]
},
"developer_required_tests": {
"must_pass_before_live": [
"Immediate Fast News events route to FAST_NEWS and not A_PLUS_CONFIRMATION",
"A+ candidates require confirmation before trade alert",
"Analyst upgrades do not auto-trade on headline alone",
"Sector sympathy requires anchor and target confirmation",
"AI continuation momentum requires leader and ticker confirmation",
"Macro themes require related asset confirmation",
"Duplicate A+ routes do not create duplicate trade alerts",
"A+ router returns should_execute_trade_api false by default",
"Manual approval is required for A+ trades unless explicitly changed later",
"All rejected and missed candidates are logged for learning"
]
}
}