Fix scoring/recommendation correctness and calibration
Triggered by CNC showing "LONG (High Confidence)" with SHORT reasoning and no long setup. - A: recommendation action + reasoning are ticker-level and identical on both setups; reasoning always matches the shown action - B: recommended_action only picks a direction with a tradeable setup; strong bias with no setup (e.g. price at ATH) → NEUTRAL with an explanatory reason instead of a fake LONG_HIGH - C: confidence is a directional-agreement model — opposing signals push it below 50 (SHORT on a 92-technical/99-momentum stock ~0%, not 55%) - D: fundamental score requires >=2 real metrics (market-cap-only no longer yields a high score) - E: RSI score peaks at healthy momentum (~60) and penalizes overbought/oversold extremes instead of treating RSI 90 as maximal - F: fundamentals chain merges fields across providers (FMP market cap + Finnhub P/E) instead of stopping at the first with any field - NEUTRAL label: "No Clear Setup" (covers untradeable-bias case) Scores recompute on next scan/scoring run; C and E shift score distributions intentionally. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ export const RECOMMENDATION_ACTION_LABELS: Record<RecommendationAction, string>
|
||||
LONG_MODERATE: 'LONG (Moderate Confidence)',
|
||||
SHORT_HIGH: 'SHORT (High Confidence)',
|
||||
SHORT_MODERATE: 'SHORT (Moderate Confidence)',
|
||||
NEUTRAL: 'NEUTRAL (Conflicting Signals)',
|
||||
NEUTRAL: 'NEUTRAL (No Clear Setup)',
|
||||
};
|
||||
|
||||
export const RECOMMENDATION_ACTION_GLOSSARY: Array<{ action: RecommendationAction; description: string }> = [
|
||||
@@ -29,7 +29,7 @@ export const RECOMMENDATION_ACTION_GLOSSARY: Array<{ action: RecommendationActio
|
||||
},
|
||||
{
|
||||
action: 'NEUTRAL',
|
||||
description: 'No strong directional edge. Signals are mixed or confidence gap is too small.',
|
||||
description: 'No actionable setup — either signals are mixed, or the favored direction has no tradeable setup (e.g. price extended with no target). See the reasoning for which.',
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user