-
观察池
-
这些标的保留后台观察,不该和可操作标的一起抢注意力。
+
后台观察
+
只保留少量名字方便回看,不参与今天的主决策。
{observe.length} 只
@@ -396,6 +417,7 @@ export default function RecommendationsPage() {
}
function buildFocusSummary({
+ strategyProfile,
actionable,
watch,
observe,
@@ -404,6 +426,7 @@ function buildFocusSummary({
iteration,
performance,
}: {
+ strategyProfile: LatestResult["strategy_profile"];
actionable: RecommendationData[];
watch: RecommendationData[];
observe: RecommendationData[];
@@ -412,36 +435,46 @@ function buildFocusSummary({
iteration: StrategyIterationReport | null;
performance: PerformanceStats | null;
}) {
+ const allowTrading = strategyProfile?.allow_trading ?? actionable.length > 0;
const headline =
- actionable.length > 0
- ? `今天先看 ${actionable.length} 只可操作标的`
- : watch.length > 0
- ? `今天没有直接执行标的,重点看 ${watch.length} 只等待确认`
- : "今天没有明确焦点,先保留观察";
+ !allowTrading
+ ? "今天不主动出手,只保留观察名单"
+ : actionable.length > 0
+ ? `今天只处理 ${actionable.length} 只可操作标的`
+ : watch.length > 0
+ ? `今天没有直接执行标的,重点看 ${watch.length} 只等待确认`
+ : "今天没有明确优势机会,先观察";
const detail =
- actionable.length > 0
- ? "推荐池首页只保留最接近执行的标的。真正的个股长分析进入详情页,不在这里堆满。"
- : watch.length > 0
- ? "今天更偏等待确认,不适合在大量候选里反复横跳。"
- : "当前更多是维护候选池和复盘闭环,不是积极出手阶段。";
+ strategyProfile?.decision_note
+ ?? (!allowTrading
+ ? "系统判断今天更适合防守观察,不需要为了参与而强行找票。"
+ : actionable.length > 0
+ ? "首页只保留最接近执行的标的,真正长分析进入个股详情。"
+ : watch.length > 0
+ ? "今天偏等待确认,不适合在大量候选里反复横跳。"
+ : "当前更多是维护候选池和复盘闭环,不是积极出手阶段。");
const now = [
- actionable[0]
+ !allowTrading
+ ? "先看最强主线是否重新形成扩散和回流,再决定是否恢复进攻。"
+ : actionable[0]
? `先看 ${actionable[0].name}${actionable[0].trigger_condition ? ` 的触发条件是否成立` : " 是否进一步确认"}。`
: watch[0]
? `盯住 ${watch[0].name} 是否从观察转成可操作。`
: "只保留最强主线的少量候选,不主动扩池。",
watch.length > 0
? `${watch.length} 只重点关注标的只做跟踪,不提前下结论。`
- : "没有重点关注时,不要强行从观察池里挑票。",
+ : allowTrading
+ ? "没有重点关注时,不要强行从观察池里挑票。"
+ : "没有确认信号前,不把观察股抬升为执行名单。",
tracking.length > 0
? `${tracking.length} 只跟踪中标的继续看兑现情况,避免只看新增不看结果。`
: "如果没有跟踪样本,说明闭环还不够,要继续积累和复盘。",
];
const later = [
- observe.length > 0 ? `${observe.length} 只观察池标的不应占据首页主注意力。` : "没有必要把弱标的堆在默认视图。",
+ observe.length > 0 ? `${observe.length} 只后台观察标的不应占据首页主注意力。` : "没有必要把弱标的堆在默认视图。",
closed.length > 0 ? `${closed.length} 只已结束样本主要用于复盘,不参与今日执行决策。` : "没有结束样本时,先积累更多闭环数据。",
iteration?.summary || performance
? "策略迭代和胜率统计放在辅助区,不应该压过今天的执行结论。"
@@ -509,3 +542,12 @@ function FreshnessCell({ label, value }: { label: string; value: string }) {
);
}
+
+function SummaryChip({ label, value }: { label: string; value: string }) {
+ return (
+