518 lines
29 KiB
HTML
518 lines
29 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN" data-theme="night">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>深度投研报告:“马”字辈概念</title>
|
||
<script src="https://cdn.tailwindcss.com"></script>
|
||
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.10.2/dist/full.min.css" rel="stylesheet" type="text/css" />
|
||
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/echarts@5.5.0/dist/echarts.min.js"></script>
|
||
<style>
|
||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;700&display=swap');
|
||
|
||
body {
|
||
font-family: 'Inter', sans-serif;
|
||
background-color: #000000;
|
||
color: #E0E0E0;
|
||
overflow-x: hidden;
|
||
}
|
||
|
||
.bg-deep-space {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
z-index: -1;
|
||
background: radial-gradient(ellipse at 50% 50%, rgba(20, 25, 60, 0.6) 0%, #010409 100%), #010409;
|
||
animation: pulse-glow 20s infinite alternate;
|
||
}
|
||
|
||
@keyframes pulse-glow {
|
||
0% {
|
||
background: radial-gradient(ellipse at 40% 60%, rgba(30, 35, 80, 0.7) 0%, #010409 100%), #010409;
|
||
}
|
||
100% {
|
||
background: radial-gradient(ellipse at 60% 40%, rgba(40, 25, 70, 0.7) 0%, #010409 100%), #010409;
|
||
}
|
||
}
|
||
|
||
.glass-card {
|
||
background: rgba(10, 12, 28, 0.5);
|
||
-webkit-backdrop-filter: blur(24px);
|
||
backdrop-filter: blur(24px);
|
||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||
border-radius: 2rem; /* 极致圆角 */
|
||
transition: all 0.3s ease-in-out;
|
||
}
|
||
|
||
.glass-card:hover {
|
||
transform: translateY(-5px);
|
||
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(118, 143, 255, 0.3);
|
||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||
}
|
||
|
||
.bento-grid {
|
||
display: grid;
|
||
gap: 1.5rem;
|
||
grid-template-columns: repeat(12, 1fr);
|
||
}
|
||
|
||
.grid-span-12 { grid-column: span 12; }
|
||
.grid-span-8 { grid-column: span 12; }
|
||
.grid-span-7 { grid-column: span 12; }
|
||
.grid-span-6 { grid-column: span 12; }
|
||
.grid-span-5 { grid-column: span 12; }
|
||
.grid-span-4 { grid-column: span 12; }
|
||
|
||
@media (min-width: 1024px) {
|
||
.grid-span-8 { grid-column: span 8; }
|
||
.grid-span-7 { grid-column: span 7; }
|
||
.grid-span-6 { grid-column: span 6; }
|
||
.grid-span-5 { grid-column: span 5; }
|
||
.grid-span-4 { grid-column: span 4; }
|
||
}
|
||
|
||
.fui-title {
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-weight: 700;
|
||
letter-spacing: 0.05em;
|
||
background: linear-gradient(90deg, #A8B5FF, #668CFF);
|
||
-webkit-background-clip: text;
|
||
-webkit-text-fill-color: transparent;
|
||
}
|
||
|
||
.fui-subtitle {
|
||
font-family: 'JetBrains Mono', monospace;
|
||
color: #A8B5FF;
|
||
}
|
||
|
||
.highlight {
|
||
color: #82aaff;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.highlight-red {
|
||
color: #ff8282;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.table-custom thead th {
|
||
background-color: rgba(173, 186, 255, 0.05);
|
||
color: #A8B5FF;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
letter-spacing: 0.05em;
|
||
font-weight: 600;
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
.table-custom tbody tr {
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
||
}
|
||
|
||
.table-custom tbody tr:hover {
|
||
background-color: rgba(173, 186, 255, 0.03);
|
||
}
|
||
|
||
.table-custom a {
|
||
color: #82aaff;
|
||
text-decoration: none;
|
||
transition: color 0.2s;
|
||
}
|
||
|
||
.table-custom a:hover {
|
||
color: #adbeff;
|
||
}
|
||
|
||
h3 {
|
||
font-size: 1.25rem;
|
||
font-weight: 600;
|
||
margin-bottom: 1rem;
|
||
color: #cdd6f4;
|
||
padding-bottom: 0.5rem;
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||
}
|
||
|
||
ul {
|
||
list-style-type: none;
|
||
padding-left: 0;
|
||
}
|
||
|
||
li {
|
||
position: relative;
|
||
padding-left: 1.5rem;
|
||
margin-bottom: 0.75rem;
|
||
}
|
||
|
||
li::before {
|
||
content: '>>';
|
||
position: absolute;
|
||
left: 0;
|
||
color: #82aaff;
|
||
font-family: 'JetBrains Mono', monospace;
|
||
font-size: 0.8rem;
|
||
top: 4px;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body x-data="{}" x-init="
|
||
$nextTick(() => {
|
||
initTimelineChart();
|
||
});
|
||
">
|
||
<div class="bg-deep-space"></div>
|
||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 py-16">
|
||
|
||
<header class="text-center mb-16">
|
||
<h1 class="text-4xl md:text-6xl font-bold tracking-tighter mb-4" style="background: linear-gradient(90deg, #FFFFFF, #A8B5FF); -webkit-background-clip: text; -webkit-text-fill-color: transparent;">
|
||
深度投研报告: "马"字辈概念
|
||
</h1>
|
||
<p class="text-lg text-gray-400 max-w-3xl mx-auto">
|
||
一个由市场情绪、资金偏好和“玄学”逻辑共同催生的事件驱动型主题分析
|
||
</p>
|
||
<div class="mt-6 text-xs text-gray-500 font-mono tracking-widest">
|
||
<p>北京价值前沿科技有限公司 AI投研agent:“价小前投研” 进行投研呈现</p>
|
||
<p>本报告为AI合成数据,投资需谨慎</p>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="bento-grid">
|
||
|
||
<!-- 核心观点摘要 -->
|
||
<div class="glass-card grid-span-12 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">核心观点摘要 (Core View)</h2>
|
||
<p class="text-lg text-gray-300 leading-relaxed">
|
||
“马”字辈是一个典型的<span class="highlight">A股事件驱动型主题投资概念</span>,其本质是基于“生肖玄学”和名称关联的<span class="highlight">情绪与叙事驱动</span>,而非统一的基本面逻辑。当前,该概念已从情绪高点回落,进入<span class="highlight-red">分化阶段</span>。其核心驱动力是市场游资的短期炒作偏好,未来潜力在于内部个股能否将“标签”转化为与自身主营业务相关的实质性催化,否则概念本身将随着市场情绪的转换而消散。
|
||
</p>
|
||
</div>
|
||
|
||
<!-- 核心逻辑与市场认知 -->
|
||
<div class="glass-card grid-span-7 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">核心逻辑与市场认知 (Logic & Cognition)</h2>
|
||
<div>
|
||
<h3>驱动力分析</h3>
|
||
<ul>
|
||
<li><span class="fui-subtitle">“玄学”与文化叙事:</span> 最根本驱动力。新闻中<span class="highlight">“玄学炒作火热”、“马年马字辈妖股”</span>等表述直接印证了这一点,为投机行为提供了简单易懂的“剧本”。</li>
|
||
<li><span class="fui-subtitle">热点概念“容器”:</span> 概念本身无产业逻辑,但其成分股广泛分布于无人驾驶、AI、机器人等热门赛道,成为一个易于识别的备选池。</li>
|
||
<li><span class="fui-subtitle">龙头示范效应:</span> <span class="highlight">海马汽车 (10天6板)</span>、<span class="highlight">中马传动 (4板)</span> 等个股的强劲表现,形成强大的赚钱效应,吸引大量跟风资金。</li>
|
||
</ul>
|
||
<h3>市场热度与情绪</h3>
|
||
<p class="text-gray-400 mt-4 leading-relaxed">
|
||
市场表现出<span class="highlight">高度的投机热情和显著的波动性</span>。热度主要集中在二级市场交易层面,<span class="highlight-red">未得到机构研究层面的认可</span> (研报与路演数据中完全未提及此概念),缺乏机构共识支撑。
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 概念炒作时间轴 -->
|
||
<div class="glass-card grid-span-5 p-8 flex flex-col">
|
||
<h2 class="fui-title text-2xl mb-4">概念炒作时间轴 (Market Timeline)</h2>
|
||
<div id="timeline-chart" class="flex-grow min-h-[300px]"></div>
|
||
</div>
|
||
|
||
<!-- 预期差分析 -->
|
||
<div class="glass-card grid-span-12 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">预期差分析 (Expectation Gap)</h2>
|
||
<p class="text-gray-400 mb-6">该概念存在巨大预期差,是其最大风险与特征。市场叙事与公司现实严重脱节。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||
<div class="p-6 border border-dashed border-yellow-500/30 rounded-2xl bg-yellow-500/5">
|
||
<h4 class="font-bold text-yellow-300 mb-2">市场叙事:集体狂欢</h4>
|
||
<p class="text-gray-400">市场沉浸在“马”字辈集体上涨的宏大叙事中,将其视为一个具备联动效应的板块。</p>
|
||
</div>
|
||
<div class="p-6 border border-dashed border-red-500/30 rounded-2xl bg-red-500/5">
|
||
<h4 class="font-bold text-red-300 mb-2">公司现实:各自为战</h4>
|
||
<p class="text-gray-400">
|
||
路演数据显示相关公司正专注于自身主业精细化运营:<br>
|
||
- <span class="highlight">森马服饰:</span> 讨论SKU管理和单店坪效。<br>
|
||
- <span class="highlight">玉马遮阳:</span> 讨论跨境电商与产能释放。<br>
|
||
- <span class="highlight-red">德马科技:</span> 主业净利润同比<span class="font-mono font-bold">-38.3%</span>。<br>
|
||
这些经营活动与“马”字辈的玄学炒作<span class="highlight-red font-bold">毫无关联</span>。
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="mt-4 text-sm text-gray-500 italic">
|
||
<p>研报数据甚至提出批判性假设:“‘马’字辈可能为‘展望’(2024年展望)的笔误或特定指代”,从根本上动摇了该概念的严肃性。</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 催化剂与未来发展 -->
|
||
<div class="glass-card grid-span-6 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">催化剂与未来发展 (Catalysts & Future Path)</h2>
|
||
<h3>近期催化剂 (3-6个月)</h3>
|
||
<ul>
|
||
<li><span class="fui-subtitle">情绪再次点燃:</span> 市场缺乏主线时,游资可能再次利用“马跃龙门”叙事发动行情。</li>
|
||
<li><span class="fui-subtitle">个股独立催化:</span> 核心标的发布超预期业绩或重大合同,可能激活板块联想。</li>
|
||
<li><span class="fui-subtitle">政策热点嫁接:</span> 与成分股主营业务(如机器人、无人驾驶)相关的重磅政策出台。</li>
|
||
</ul>
|
||
<h3>长期发展路径</h3>
|
||
<p class="text-gray-400 mt-4 leading-relaxed">
|
||
作为一个整体概念,其长期路径是<span class="highlight-red">必然走向分化和消亡</span>。它不具备持续创造价值的产业基础。最终,个股走势将完全回归其自身的基本面定价。
|
||
</p>
|
||
</div>
|
||
|
||
<!-- 产业链主题图谱 -->
|
||
<div class="glass-card grid-span-6 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">产业链主题图谱 (Thematic Map)</h2>
|
||
<p class="text-gray-400 mb-4">“马”字辈不存在传统产业链,而是一个基于“市场标签”的横跨多行业的主题组合。</p>
|
||
<div class="space-y-4">
|
||
<div>
|
||
<h4 class="fui-subtitle">AI与机器人</h4>
|
||
<p class="text-sm text-gray-400">
|
||
<span class="highlight">上游:</span> 神马股份 (尼龙), 万马股份 (线缆) <br>
|
||
<span class="highlight">中游:</span> 福龙马 (环卫机器人), 德马科技 (物流机器人) <br>
|
||
<span class="highlight">下游:</span> 天亿马 (数据要素), 创业黑马 (大模型)
|
||
</p>
|
||
</div>
|
||
<div>
|
||
<h4 class="fui-subtitle">新能源与汽车</h4>
|
||
<p class="text-sm text-gray-400">
|
||
<span class="highlight">整车:</span> 海马汽车, 汉马科技 <br>
|
||
<span class="highlight">零部件:</span> 中马传动 (减速器), 万马股份 (充电桩)
|
||
</p>
|
||
</div>
|
||
<div>
|
||
<h4 class="fui-subtitle">大消费</h4>
|
||
<p class="text-sm text-gray-400">
|
||
森马服饰 (服饰), 天马科技 (预制菜), 马应龙 (医药)
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 核心玩家对比与风险 -->
|
||
<div class="glass-card grid-span-12 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">核心玩家对比与风险 (Key Players & Risks)</h2>
|
||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
|
||
<div>
|
||
<h3>核心玩家对比</h3>
|
||
<div class="space-y-4">
|
||
<div class="p-4 rounded-lg bg-black/20">
|
||
<p><span class="highlight">龙头 (投机): 海马汽车</span> - 小市值+多标签,游资偏好,但基本面未改善,持续性差。</p>
|
||
</div>
|
||
<div class="p-4 rounded-lg bg-black/20">
|
||
<p><span class="highlight">中军 (逻辑): 万马股份</span> - 兼具新能源与机器人概念,历史共振基因,基本面叙事更扎实。</p>
|
||
</div>
|
||
<div class="p-4 rounded-lg bg-black/20">
|
||
<p><span class="highlight">价值 (错杀): 森马服饰, 马应龙</span> - 基本面稳健,与概念无关,若因退潮被错杀可能存在机会。</p>
|
||
</div>
|
||
</div>
|
||
<h3 class="mt-6">验证与证伪</h3>
|
||
<ul>
|
||
<li><span class="fui-subtitle text-red-400">证伪案例: 德马科技</span> 市场炒作机器人概念,但路演数据显示<span class="highlight-red">主业净利润同比下滑38.3%</span>,逻辑与基本面背离。</li>
|
||
<li><span class="fui-subtitle text-yellow-400">验证交叉点: 福龙马</span> 新闻与个股数据均指向其“环卫机器人龙头”地位,逻辑自洽,但仍需订单和盈利能力验证。</li>
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<h3>潜在风险与挑战</h3>
|
||
<div class="p-6 border-2 border-red-500/50 rounded-2xl bg-red-900/20">
|
||
<ul>
|
||
<li><span class="fui-subtitle text-red-300">叙事脆弱性:</span> 基于“玄学”的逻辑极易被新主题替代,资金会迅速撤离。新闻明确警示<span class="highlight-red">“个股炒作持续性不佳”</span>。</li>
|
||
<li><span class="fui-subtitle text-red-300">伪板块效应:</span> 成分股无业务协同,龙头股崩盘会引发整个概念的情绪踩踏。</li>
|
||
<li><span class="fui-subtitle text-red-300">信息交叉验证风险:</span> 新闻热度与公司基本面严重脱节。投资者若仅凭新闻热度入场将面临巨大基本面风险。研报亦指出市场流传数据存在偏差甚至错误。</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 综合结论与投资启示 -->
|
||
<div class="glass-card grid-span-12 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">综合结论与投资启示 (Conclusion & Takeaways)</h2>
|
||
<p class="mb-4 text-gray-300">
|
||
“马”字辈概念 unequivocally 处于<span class="highlight">主题炒作阶段</span>,是一个“交易型”而非“投资型”概念,内在价值低,风险极高。价值不在于概念本身,而在于利用概念进行<span class="highlight">标的筛选和策略区分</span>。
|
||
</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||
<div class="p-6 rounded-2xl bg-blue-900/20">
|
||
<h4 class="font-bold text-blue-300 mb-2">投机策略方向</h4>
|
||
<p class="text-gray-400">关注板块内具备“小市值+多重热门标签+高换手率”特征的个股,如<span class="highlight">海马汽车、中马传动</span>。核心是跟踪市场情绪和资金流向。</p>
|
||
</div>
|
||
<div class="p-6 rounded-2xl bg-green-900/20">
|
||
<h4 class="font-bold text-green-300 mb-2">价值策略方向</h4>
|
||
<p class="text-gray-400">关注被错误划入概念、但自身基本面扎实的公司,如<span class="highlight">森马服饰、马应龙</span>。当市场炒作退潮导致其股价被错杀时,可能出现布局良机。</p>
|
||
</div>
|
||
</div>
|
||
<h3 class="mt-6">需重点跟踪的关键指标</h3>
|
||
<ul class="text-sm">
|
||
<li><span class="fui-subtitle">投机标的:</span> 每日成交额、换手率、媒体提及频率、龙头股龙虎榜数据。</li>
|
||
<li><span class="fui-subtitle">价值标的:</span>
|
||
<span class="highlight">森马服饰</span>(同店增速、库存周转率);
|
||
<span class="highlight">马应龙</span>(核心产品终端零售价、市场份额);
|
||
<span class="highlight">万马股份</span>(机器人线缆、充电桩订单增长)。
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- 股票数据列表 -->
|
||
<div class="glass-card grid-span-12 p-8">
|
||
<h2 class="fui-title text-2xl mb-4">"马"字辈概念股全览 (Stock Universe)</h2>
|
||
<div class="overflow-x-auto">
|
||
<table class="table w-full table-custom">
|
||
<thead>
|
||
<tr>
|
||
<th>股票名称</th>
|
||
<th>代码</th>
|
||
<th>核心概念</th>
|
||
<th>市场标签</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<!-- Data will be injected here by JS -->
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
</main>
|
||
</div>
|
||
|
||
<script>
|
||
const stockData = {
|
||
"福龙马": { "code": "603686", "reason": "无人驾驶清扫机器人+电池回收+环卫服务", "tags": "无人驾驶, 100亿以上" },
|
||
"三羊马": { "code": "001317", "reason": "无人驾驶+低空经济+统一大市场", "tags": "无人驾驶, 市值50亿以下" },
|
||
"万马科技": { "code": "300698", "reason": "自动驾驶+英伟达+数据中心+车联网+医疗信息化", "tags": "无人驾驶, 50-100亿" },
|
||
"海马汽车": { "code": "000572", "reason": "战略合作京东+汽车整车(海南)+无人驾驶", "tags": "无人驾驶, 100亿以上" },
|
||
"皇马科技": { "code": "603181", "reason": "液冷上游+特种表面活性剂龙头+混凝土外加剂", "tags": "人工智能, 100亿以上" },
|
||
"马钢股份": { "code": "600808", "reason": "钢铁+数据中心+高速车轮(高铁)", "tags": "人工智能, 100亿以上" },
|
||
"天亿马": { "code": "301178", "reason": "数据要素+人工智能+半导体", "tags": "人工智能, 市值50亿以下" },
|
||
"创业黑马": { "code": "300688", "reason": "合作阿里+大模型+战略合作智谱AI", "tags": "人工智能, 50-100亿" },
|
||
"神马股份": { "code": "600810", "reason": "机器人材料(尼龙)+控股股东战略重组+润滑油+军工", "tags": "机器人, 100亿以上" },
|
||
"万马股份": { "code": "002276", "reason": "机器人线缆+供货宇树+数据中心+充电桩", "tags": "机器人, 100亿以上" },
|
||
"云中马": { "code": "603130", "reason": "人形机器人(腱绳材料)+纺织制造", "tags": "机器人, 50-100亿" },
|
||
"玉马科技": { "code": "300993", "reason": "功能性遮阳材料+露营经济+智能物流", "tags": "消费, 50-100亿" },
|
||
"森马服饰": { "code": "002563", "reason": "童装+社区团购", "tags": "消费, 100亿以上" },
|
||
"天马科技": { "code": "603668", "reason": "预制菜+鳗鱼+水产饲料", "tags": "消费, 50-100亿" },
|
||
"深天马A": { "code": "000050", "reason": "折叠手机+合作华为+合作小鹏+国企改革", "tags": "消费, 100亿以上" },
|
||
"天马新材": { "code": "838971", "reason": "low-α射线球形氧化铝粉体+北交所+锂电池涂覆材料", "tags": "新能源产业链, 市值50亿以下" },
|
||
"汉马科技": { "code": "600375", "reason": "吉利控股+氢能源汽车", "tags": "新能源产业链, 100亿以上" },
|
||
"中马传动": { "code": "603767", "reason": "车载减速器+农机", "tags": "新能源产业链, 50-100亿" },
|
||
"万里马": { "code": "300591", "reason": "防弹防护产品+军工+母婴产品", "tags": "军工, 市值50亿以下" },
|
||
"野马电池": { "code": "605378", "reason": "固态电池(专利或可降低锰成本)+锌锰电池+外销", "tags": "军工, 50-100亿" },
|
||
"威马农机": { "code": "301533", "reason": "农业机械+一带一路", "tags": "工程机械, 市值50亿以下" },
|
||
"金马游乐": { "code": "300756", "reason": "游乐设施+VR", "tags": "工程机械, 50-100亿" },
|
||
"马可波罗": { "code": "001386", "reason": "建筑陶瓷+家居家电+建筑幕墙", "tags": "地产, 100亿以上" },
|
||
"四川双马": { "code": "000935", "reason": "水泥+四川建材+多肽原料药+CDMO+创投", "tags": "地产, 100亿以上" },
|
||
"马应龙": { "code": "600993", "reason": "中医药+电商+民营医院", "tags": "医药, 100亿以上" },
|
||
"通化金马": { "code": "000766", "reason": "阿尔茨海默病+医药", "tags": "医药, 100亿以上" },
|
||
"飞马国际": { "code": "002210", "reason": "物流(深圳)+控股股东拟变更+环保", "tags": "物流, 100亿以上" },
|
||
"德马科技": { "code": "688360", "reason": "物流分拣+机器人", "tags": "物流, 50-100亿" },
|
||
"神马电力": { "code": "603530", "reason": "核电+绝缘子+海上光伏+出海", "tags": "核电, 100亿以上" },
|
||
// Merge unique entries from the first dataset if any, though the second one seems comprehensive
|
||
"玉马遮阳": { "code": "300993", "reason": "功能性遮阳材料+露营经济+智能物流", "tags": "消费, 50-100亿" } // Already exists as 玉马科技
|
||
};
|
||
|
||
// Populate the table
|
||
const tableBody = document.querySelector('.table-custom tbody');
|
||
// A bit of cleanup for duplicate names like 玉马科技/玉马遮阳
|
||
const uniqueStocks = {};
|
||
Object.entries(stockData).forEach(([name, data]) => {
|
||
if(name === "玉马科技" || name === "玉马遮阳") {
|
||
uniqueStocks['玉马科技/遮阳'] = { code: '300993', reason: data.reason, tags: data.tags };
|
||
} else {
|
||
uniqueStocks[name] = data;
|
||
}
|
||
});
|
||
|
||
Object.entries(uniqueStocks).forEach(([name, data]) => {
|
||
const row = document.createElement('tr');
|
||
const codeCell = data.code ? `<a href="https://valuefrontier.cn/company?scode=${data.code}" target="_blank">${data.code}</a>` : 'N/A';
|
||
row.innerHTML = `
|
||
<td class="font-semibold text-gray-200">${name}</td>
|
||
<td class="font-mono">${codeCell}</td>
|
||
<td class="text-gray-400 text-sm">${data.reason}</td>
|
||
<td class="text-gray-400 text-sm">${data.tags.split(', ').map(tag => `<span class="inline-block bg-gray-700/50 text-gray-300 rounded-full px-2 py-1 text-xs mr-1 mb-1">${tag}</span>`).join('')}</td>
|
||
`;
|
||
tableBody.appendChild(row);
|
||
});
|
||
|
||
// Initialize ECharts
|
||
function initTimelineChart() {
|
||
var chartDom = document.getElementById('timeline-chart');
|
||
var myChart = echarts.init(chartDom);
|
||
var option;
|
||
|
||
option = {
|
||
tooltip: {
|
||
trigger: 'axis',
|
||
formatter: '{b}: {c}',
|
||
backgroundColor: 'rgba(10, 12, 28, 0.8)',
|
||
borderColor: 'rgba(255, 255, 255, 0.1)',
|
||
textStyle: { color: '#E0E0E0' }
|
||
},
|
||
grid: {
|
||
left: '3%',
|
||
right: '4%',
|
||
bottom: '3%',
|
||
containLabel: true
|
||
},
|
||
xAxis: {
|
||
type: 'category',
|
||
boundaryGap: false,
|
||
data: ['6月27日', '9月3日', '9月23日', '10月21日', '11月4日', '11月11日', '11月13日', '11月后'],
|
||
axisLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.2)' } },
|
||
axisLabel: { color: '#9ca3af' }
|
||
},
|
||
yAxis: {
|
||
type: 'value',
|
||
name: '市场热度',
|
||
nameTextStyle: { color: '#9ca3af' },
|
||
axisLine: { show: true, lineStyle: { color: 'rgba(255, 255, 255, 0.2)' } },
|
||
splitLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.1)', type: 'dashed' } },
|
||
axisLabel: { color: '#9ca3af' }
|
||
},
|
||
series: [
|
||
{
|
||
name: '事件',
|
||
type: 'line',
|
||
smooth: true,
|
||
symbol: 'circle',
|
||
symbolSize: 8,
|
||
itemStyle: {
|
||
color: '#A8B5FF'
|
||
},
|
||
lineStyle: {
|
||
width: 3,
|
||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||
{ offset: 0, color: '#8E9DFF' },
|
||
{ offset: 1, color: '#668CFF' }
|
||
])
|
||
},
|
||
areaStyle: {
|
||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||
{ offset: 0, color: 'rgba(130, 170, 255, 0.3)' },
|
||
{ offset: 1, color: 'rgba(130, 170, 255, 0)' }
|
||
])
|
||
},
|
||
data: [
|
||
{ value: 20, name: '炒生肖行情再现' },
|
||
{ value: 40, name: '神马股份涨停,板块异动' },
|
||
{ value: 60, name: '飞马国际触及涨停' },
|
||
{ value: 50, name: '福龙马快速涨停' },
|
||
{ value: 80, name: '海马汽车3连板' },
|
||
{ value: 90, name: '神马股份、福龙马涨停' },
|
||
{ value: 100, name: '海马汽车10天6板,炒作高潮' },
|
||
{ value: 30, name: '龙头大跌,持续性不佳' }
|
||
],
|
||
markPoint: {
|
||
data: [
|
||
{ type: 'max', name: '炒作顶峰' },
|
||
{ type: 'min', name: '行情起点' }
|
||
],
|
||
symbolSize: [80, 40],
|
||
label: {
|
||
color: '#000',
|
||
fontFamily: 'JetBrains Mono'
|
||
},
|
||
itemStyle: {
|
||
color: '#A8B5FF'
|
||
}
|
||
}
|
||
}
|
||
]
|
||
};
|
||
myChart.setOption(option);
|
||
window.addEventListener('resize', myChart.resize);
|
||
}
|
||
</script>
|
||
|
||
</body>
|
||
</html> |