Files
Toolbox/public/tools/thought_lab/labs/humanity_and_investing/index.html
T
yangxiangyuan 4492b4106a feat: 新增3个思想实验室项目,完善私有剪贴板授权与上传功能,添加配套测试脚本
1. 新增怀旧弹珠台、人性与投资、穿越三体、四维空间四个思想实验室项目
2. 为私有剪贴板添加业务层授权校验,优化上传进度显示与鉴权失败处理
3. 新增多个调试与单元测试脚本,覆盖三体积分、弹珠台物理、集成测试等场景
4. 补全穿越三体项目的完整HTML页面资源
2026-08-07 17:49:24 +08:00

1178 lines
47 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>思想实验室 · 人性与投资</title>
<style>
:root {
--bg: #07111d;
--bg-2: #0b1626;
--panel: rgba(10, 18, 31, 0.76);
--panel-strong: rgba(10, 18, 31, 0.92);
--line: rgba(119, 160, 255, 0.18);
--text: #e6ecff;
--muted: #96a7cb;
--accent: #8aa5ff;
--accent-2: #7de3b5;
--gold: #f7c97c;
--red: #ff9c9c;
--shadow: 0 18px 48px rgba(0, 0, 0, 0.26);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
color: var(--text);
background:
radial-gradient(circle at top, #14294e 0%, #0a1627 36%, #050a12 100%);
font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
overflow-x: hidden;
}
a { color: inherit; }
#bg {
position: fixed;
inset: 0;
width: 100vw;
height: 100vh;
z-index: 0;
opacity: 0.95;
}
.page {
position: relative;
z-index: 1;
}
.topbar {
position: sticky;
top: 0;
z-index: 20;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 14px 22px;
border-bottom: 1px solid var(--line);
background: rgba(5, 10, 18, 0.68);
backdrop-filter: blur(12px);
}
.brand {
display: flex;
flex-direction: column;
gap: 4px;
}
.brand .kicker {
font-size: 12px;
letter-spacing: 0.22em;
color: var(--accent);
text-transform: uppercase;
}
.brand h1 {
margin: 0;
font-size: 24px;
line-height: 1.1;
}
.brand p {
margin: 0;
color: var(--muted);
font-size: 13px;
}
.topnav {
display: flex;
gap: 10px;
flex-wrap: wrap;
justify-content: flex-end;
}
.topnav a {
text-decoration: none;
padding: 8px 12px;
border-radius: 999px;
border: 1px solid rgba(138, 165, 255, 0.16);
background: rgba(11, 22, 38, 0.55);
color: #cfd9ff;
font-size: 13px;
}
.topnav a.active {
background: rgba(27, 49, 90, 0.8);
border-color: rgba(138, 165, 255, 0.38);
color: #fff;
}
.hero {
min-height: 100vh;
display: grid;
grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
gap: 22px;
align-items: center;
padding: 42px 26px 30px;
}
.hero-copy,
.hero-side,
.section-card,
.quote-box,
.checklist,
.timeline-card,
.source-card {
border: 1px solid var(--line);
background: var(--panel);
backdrop-filter: blur(12px);
box-shadow: var(--shadow);
}
.hero-copy {
padding: 28px;
border-radius: 28px;
}
.hero-copy .eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
margin-bottom: 16px;
padding: 8px 12px;
border-radius: 999px;
background: rgba(18, 32, 55, 0.72);
color: var(--accent);
font-size: 12px;
letter-spacing: 0.08em;
}
.hero-copy h2 {
margin: 0 0 18px;
font-size: clamp(34px, 5vw, 64px);
line-height: 1.08;
}
.hero-copy p {
margin: 0 0 16px;
color: #dce6ff;
line-height: 1.95;
font-size: 16px;
}
.hero-copy .lead {
color: var(--gold);
font-size: 18px;
}
.hero-metrics {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
margin-top: 18px;
}
.metric {
padding: 14px;
border-radius: 18px;
background: rgba(12, 22, 38, 0.76);
border: 1px solid rgba(138, 165, 255, 0.12);
}
.metric strong {
display: block;
margin-bottom: 8px;
font-size: 24px;
color: #fff;
}
.metric span {
color: var(--muted);
font-size: 13px;
line-height: 1.7;
}
.hero-side {
padding: 22px;
border-radius: 28px;
}
.hero-side h3 {
margin: 0 0 10px;
font-size: 18px;
color: var(--accent-2);
}
.hero-side p {
margin: 0 0 12px;
color: var(--muted);
line-height: 1.85;
font-size: 14px;
}
.hero-side .principle {
margin-top: 12px;
padding: 14px 15px;
border-radius: 18px;
background: rgba(8, 15, 27, 0.68);
border: 1px solid rgba(125, 227, 181, 0.14);
color: #d8ffe7;
line-height: 1.85;
}
.main {
display: grid;
grid-template-columns: 240px minmax(0, 1fr);
gap: 24px;
padding: 6px 26px 60px;
}
.side-rail {
position: sticky;
top: 92px;
align-self: start;
padding: 16px;
border-radius: 24px;
border: 1px solid var(--line);
background: rgba(9, 16, 28, 0.7);
backdrop-filter: blur(12px);
box-shadow: var(--shadow);
}
.side-rail h3 {
margin: 0 0 10px;
font-size: 14px;
color: var(--gold);
}
.side-rail a {
display: block;
margin: 8px 0;
padding: 10px 12px;
border-radius: 14px;
text-decoration: none;
color: #d4defb;
background: rgba(10, 18, 31, 0.48);
border: 1px solid transparent;
font-size: 13px;
line-height: 1.6;
}
.side-rail a.active {
border-color: rgba(138, 165, 255, 0.26);
background: rgba(25, 42, 74, 0.86);
}
.side-rail .note {
margin-top: 10px;
color: var(--muted);
font-size: 12px;
line-height: 1.75;
}
.content {
min-width: 0;
}
section.block {
margin-bottom: 22px;
}
.section-card {
padding: 24px;
border-radius: 28px;
}
.section-head {
margin-bottom: 16px;
}
.section-head .mini {
display: inline-block;
margin-bottom: 6px;
color: var(--accent);
font-size: 12px;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.section-head h2 {
margin: 0 0 8px;
font-size: 30px;
}
.section-head p {
margin: 0;
color: var(--muted);
line-height: 1.8;
}
.section-card p {
line-height: 1.95;
color: #dce6ff;
font-size: 15px;
}
.grid-2, .grid-3 {
display: grid;
gap: 14px;
}
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quote-box {
padding: 18px;
border-radius: 22px;
}
.quote-box strong {
display: block;
margin-bottom: 10px;
color: var(--gold);
font-size: 15px;
}
.quote-box p {
margin: 0;
color: #e9efff;
line-height: 1.9;
}
.style-card {
position: relative;
padding: 18px;
border-radius: 24px;
border: 1px solid rgba(138, 165, 255, 0.12);
background: rgba(10, 18, 31, 0.74);
overflow: hidden;
}
.style-card::after {
content: "";
position: absolute;
inset: auto -30% -55% auto;
width: 180px;
height: 180px;
border-radius: 50%;
background: radial-gradient(circle, rgba(138, 165, 255, 0.22), rgba(138, 165, 255, 0));
transform: translateZ(0);
}
.style-card h3 {
margin: 0 0 8px;
font-size: 18px;
}
.style-card .tag {
display: inline-block;
margin-bottom: 12px;
padding: 6px 10px;
border-radius: 999px;
background: rgba(20, 34, 58, 0.82);
color: var(--accent);
font-size: 12px;
}
.style-card ul {
margin: 0;
padding-left: 18px;
color: #d7e1ff;
line-height: 1.8;
font-size: 14px;
}
.style-card li + li {
margin-top: 6px;
}
.mirror {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
.mirror-item {
padding: 18px 16px;
border-radius: 22px;
background: rgba(10, 18, 31, 0.68);
border: 1px solid rgba(138, 165, 255, 0.1);
}
.mirror-item strong {
display: block;
margin-bottom: 10px;
color: #fff;
font-size: 17px;
}
.mirror-item em {
display: block;
margin-bottom: 10px;
color: var(--gold);
font-style: normal;
font-size: 13px;
}
.mirror-item p {
margin: 0;
color: #dbe6ff;
font-size: 14px;
}
.timeline {
display: grid;
gap: 12px;
}
.timeline-card {
display: grid;
grid-template-columns: 92px 1fr;
gap: 14px;
padding: 18px;
border-radius: 24px;
}
.timeline-no {
display: flex;
align-items: center;
justify-content: center;
border-radius: 18px;
background: rgba(18, 33, 57, 0.9);
color: var(--accent);
font-size: 24px;
font-weight: 700;
}
.timeline-card h3 {
margin: 0 0 8px;
font-size: 18px;
}
.timeline-card p {
margin: 0;
}
.checklist {
padding: 18px;
border-radius: 24px;
}
.checklist h3 {
margin: 0 0 12px;
font-size: 18px;
color: var(--accent-2);
}
.checklist ul {
margin: 0;
padding-left: 18px;
line-height: 1.9;
color: #e2ebff;
}
.source-card {
padding: 18px;
border-radius: 24px;
}
.source-card h3 {
margin: 0 0 10px;
font-size: 18px;
}
.source-card p {
margin: 0;
color: #dce6ff;
line-height: 1.9;
}
.source-card .src {
margin-top: 10px;
color: var(--muted);
font-size: 13px;
}
.footer {
padding: 0 26px 60px;
}
.footer .section-card {
padding-bottom: 26px;
}
.reveal {
opacity: 0;
transform: translateY(18px);
transition: opacity 0.55s ease, transform 0.55s ease;
}
.reveal.show {
opacity: 1;
transform: translateY(0);
}
@media (max-width: 1100px) {
.hero {
grid-template-columns: 1fr;
}
.main {
grid-template-columns: 1fr;
}
.side-rail {
position: relative;
top: 0;
}
.grid-3 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.mirror {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 720px) {
.topbar,
.hero,
.main,
.footer {
padding-left: 14px;
padding-right: 14px;
}
.hero-metrics,
.grid-2,
.grid-3,
.mirror {
grid-template-columns: 1fr;
}
.timeline-card {
grid-template-columns: 1fr;
}
.topnav {
display: none;
}
.hero-copy h2 {
font-size: 34px;
}
}
</style>
</head>
<body>
<canvas id="bg" aria-hidden="true"></canvas>
<div class="page">
<header class="topbar">
<div class="brand">
<div class="kicker">Thought Lab</div>
<h1>思想实验室 · 人性与投资</h1>
<p>不是教你天天下单,而是帮你看清:钱、机会、性格、纪律,彼此到底是什么关系。</p>
</div>
<nav class="topnav" id="topnav">
<a href="#hero">开场</a>
<a href="#cash">现金与机会</a>
<a href="#styles">六种风格</a>
<a href="#mirror">人性镜子</a>
<a href="#rhythm">操作节奏</a>
<a href="#training">培训场景</a>
<a href="#sources">备注来源</a>
</nav>
</header>
<section class="hero" id="hero">
<div class="hero-copy reveal">
<div class="eyebrow">Training Web Lab</div>
<h2>炒股不是比谁更急,<br />而是比谁更知道<br />什么时候该动,什么时候该等。</h2>
<p class="lead">现金,本质上是未来的期权。</p>
<p>很多人一有仓位就手痒,一见波动就想证明自己没看错,一有利润就怕飞,一有亏损就不肯认。最后看起来是在研究市场,实际上是在被自己的贪婪、恐惧、赌性和执念来回牵着走。</p>
<p>这页不是做行情预测,也不是鼓动高频交易。它更像一间培训教室,把常见的人性弱点摊开来讲,把常见的投资风格讲成人能听懂的话:谁适合什么路子,谁为什么总在错误的时间做了错误的事,为什么真正的大机会往往不是“盯出来”的,而是“等出来”的。</p>
<div class="hero-metrics">
<div class="metric">
<strong>等待</strong>
<span>不是没本事,是不把子弹浪费在普通波动里。</span>
</div>
<div class="metric">
<strong>纪律</strong>
<span>不是冷血,是事先决定,临场执行,不让情绪接管账户。</span>
</div>
<div class="metric">
<strong>复盘</strong>
<span>不是后悔,是把每一次盈亏都变成下一次少犯错的资本。</span>
</div>
</div>
</div>
<aside class="hero-side reveal">
<h3>这页适合谁</h3>
<p>适合拿来做培训、带新人、做团队共识,也适合给“交易很勤奋但结果很焦虑”的人看。它尽量少用行业黑话,多用白话讲关系。</p>
<div class="principle">
<strong>核心主线</strong><br />
市场从来都不只是在考判断力,它还在考一个人有没有耐心、有没有边界、有没有承认错误的能力。<br /><br />
你是怎么追高的,就会怎么杀跌;你是怎么满仓的,就会怎么扛单;你是怎么幻想一夜暴富的,就会怎么在回撤里心态崩掉。<br /><br />
所以“投资风格”不是穿搭标签,而是一个人的性格在账户里的投影。
</div>
</aside>
</section>
<main class="main">
<aside class="side-rail">
<h3>阅读导航</h3>
<a href="#cash">一、现金与机会</a>
<a href="#styles">二、六种风格</a>
<a href="#mirror">三、人性镜子</a>
<a href="#rhythm">四、操作节奏</a>
<a href="#training">五、培训场景</a>
<a href="#sources">六、备注与来源</a>
<div class="note">
本页面用于培训与认知梳理,不构成投资建议。涉及名人时,只做观念引介,并附上书籍或公开来源线索。
</div>
</aside>
<div class="content">
<section class="block reveal" id="cash">
<div class="section-card">
<div class="section-head">
<div class="mini">Section 01</div>
<h2>现金,不只是钱,还是未来的选择权</h2>
<p>很多培训里最容易被忽略的一点是:空仓和轻仓,不等于“什么都没做”。有时候,最重要的动作,恰恰是不动。</p>
</div>
<div class="grid-2">
<div class="quote-box">
<strong>通俗一点说</strong>
<p>你手里的现金,像一张还没使用的门票。它让你在真正好的机会来时能进场,也让你在烂机会很多的时候还能站在门外。你现在把钱打光了,等于把未来的主动权也一并卖掉了。</p>
</div>
<div class="quote-box">
<strong>金融常识上怎么理解</strong>
<p>现金本身不一定高收益,但它有流动性、有安全垫、有再配置能力。市场机会分布通常并不均匀,尤其在高波动资产里,“值得大举出手”的时点,往往远少于“让人手痒但没必要动”的时点。</p>
</div>
</div>
<p>所以,一个成熟投资者最先学会的,不是怎么每天交易,而是怎么分辨:<strong>这次波动,到底只是噪音,还是值得动真格的机会?</strong> 一年里真正有质量的大机会,很多时候确实没有几次。大部分时间,市场给你的不是红包,而是诱惑。</p>
<div class="grid-3">
<div class="checklist">
<h3>错误理解</h3>
<ul>
<li>手里有钱就难受,总想找个地方放进去。</li>
<li>看到别人赚钱,怕错过,于是把等待误解为落后。</li>
<li>把“满仓参与”当成敬业,把“轻仓观察”当成胆小。</li>
</ul>
</div>
<div class="checklist">
<h3>正确理解</h3>
<ul>
<li>轻仓,是给未来保留出手权。</li>
<li>空仓,是在保护判断力不被噪音拖走。</li>
<li>等,不是消极,而是在筛选确定性。</li>
</ul>
</div>
<div class="checklist">
<h3>培训一句话</h3>
<ul>
<li>不是每一次市场波动都配得上你的资金。</li>
<li>真正厉害的人,往往不是天天动的人,而是关键时刻动得够准的人。</li>
</ul>
</div>
</div>
<div class="grid-2" style="margin-top:14px;">
<div class="quote-box">
<strong>为什么“普通波动”最容易吃掉你的弹药</strong>
<p>因为普通波动最会制造“好像有机会”的错觉。它不给你特别高的胜率,也不给你特别舒服的赔率,却足够频繁,足够让人手痒。很多账户不是死在一次巨大判断失误上,而是死在几十次看起来都不算太离谱的小动作上。每次都不严重,累积起来却把耐心、仓位和心态一起掏空了。</p>
</div>
<div class="quote-box">
<strong>培训时可以怎么解释“等”</strong>
<p>可以这样讲:等待不是坐着发呆,而是在做筛选。像猎人伏在草丛里,不是因为懒,而是因为他知道,不是每一阵风吹草动都值得扣动扳机。真正有效的等待,背后其实有标准、有判断、有忍耐,而不是空想。</p>
</div>
</div>
<div class="grid-3" style="margin-top:14px;">
<div class="checklist">
<h3>轻仓最有用的三个时刻</h3>
<ul>
<li>看法刚形成,但还没被市场验证的时候。</li>
<li>环境很吵、板块轮动快、胜率不清楚的时候。</li>
<li>自己状态一般、情绪波动明显的时候。</li>
</ul>
</div>
<div class="checklist">
<h3>重仓真正适合的前提</h3>
<ul>
<li>机会级别明显高于平时,不是“差不多”。</li>
<li>退出计划已经想清楚,不是先上车再说。</li>
<li>这笔交易即使出错,也不会把整个账户节奏打崩。</li>
</ul>
</div>
<div class="checklist">
<h3>一句适合培训的提醒</h3>
<ul>
<li>现金不是闲着,是在值班。</li>
<li>仓位不是勇气证明,而是机会等级的翻译器。</li>
</ul>
</div>
</div>
</div>
</section>
<section class="block reveal" id="styles">
<div class="section-card">
<div class="section-head">
<div class="mini">Section 02</div>
<h2>六种常见风格,本质上是六种性格</h2>
<p>同样是做股票,不同的人其实在走完全不同的路。路没有绝对高低,但有适不适合。关键不是“哪种最牛”,而是“哪种和你的性格、时间、能力圈匹不匹配”。</p>
</div>
<div class="grid-2">
<article class="style-card">
<span class="tag">1 · 猎人型</span>
<h3>等大机会,不做无效开火</h3>
<ul>
<li>特点:一年出手不多,宁愿错过,也不愿凑合。</li>
<li>优点:交易次数少,更容易把精力留给真正有把握的节点。</li>
<li>风险:如果没有真本事,容易把“不会做”伪装成“我在等”。</li>
<li>一句白话:不开枪则已,一开枪就要先想好怎么带着利润离场。</li>
</ul>
</article>
<article class="style-card">
<span class="tag">2 · 守株型</span>
<h3>认准企业,愿意熬时间</h3>
<ul>
<li>特点:看趋势、看基本面、看行业位置,不太看分时波动。</li>
<li>优点:能避免频繁交易带来的情绪消耗和手续费消耗。</li>
<li>风险:容易把“长期”误用成“死扛”,把逻辑变了的票也拿很久。</li>
<li>一句白话:拿三五年可以,但前提是逻辑还在,不是嘴上长期、心里侥幸。</li>
</ul>
</article>
<article class="style-card">
<span class="tag">3 · 工匠型</span>
<h3>只做熟票,反复磨成本</h3>
<ul>
<li>特点:围绕熟悉的标的做波段、做 T、做节奏。</li>
<li>优点:对个股脾气更熟,更容易形成自己的“手感数据库”。</li>
<li>风险:过度自信后,容易在趋势反转时还以为只是正常震荡。</li>
<li>一句白话:把成本磨低很厉害,但前提是你磨的是玉,不是石头。</li>
</ul>
</article>
<article class="style-card">
<span class="tag">4 · 龙头型</span>
<h3>只做主线,只做最强</h3>
<ul>
<li>特点:聚焦市场主线题材,只盯辨识度最高、资金最集中的票。</li>
<li>优点:一旦节奏对,弹性通常比杂毛更高,也更容易形成统一预期。</li>
<li>风险:最强股波动也最大,没有纪律时,回撤同样会最凶。</li>
<li>一句白话:这条路拼的不是胆子大,而是复盘够深、执行够快。</li>
</ul>
</article>
<article class="style-card">
<span class="tag">5 · 系统型</span>
<h3>规则先行,信号说了算</h3>
<ul>
<li>特点:提前写好买卖规则,到点执行,不靠临场灵感。</li>
<li>优点:能减少情绪化操作,让账户更可复盘、可检验。</li>
<li>风险:系统若没有经过足够样本检验,机械执行也可能机械亏损。</li>
<li>一句白话:不猜新闻、不追故事,先问规则有没有给你绿灯。</li>
</ul>
</article>
<article class="style-card">
<span class="tag">6 · 清醒型</span>
<h3>不贪最后一口,知道见好就收</h3>
<ul>
<li>特点:不执着卖在最高点,重视兑现,重视盈亏比。</li>
<li>优点:能把纸面盈利尽量变成真实收益,不被“再等等”拖回原地。</li>
<li>风险:如果过早离场,也可能总是赚小钱、错过大波段。</li>
<li>一句白话:会卖的人,不一定卖得最顶,但通常活得更久。</li>
</ul>
</article>
</div>
<p>培训时可以直接讲清楚一件事:<strong>风格不是勋章,是适配。</strong> 上班很忙的人,不适合硬学高频节奏;情绪不稳的人,不适合天天追龙头;没有复盘习惯的人,做系统也很容易沦为口号。真正高效的培训,不是让每个人都学同一招,而是先帮他认清自己适合在哪个战场打仗。</p>
<div class="grid-3" style="margin-top:14px;">
<div class="checklist">
<h3>时间少的人</h3>
<ul>
<li>更适合守株型、部分系统型。</li>
<li>不适合盯盘依赖太强的打法。</li>
<li>重点在减少动作,而不是增加技巧。</li>
</ul>
</div>
<div class="checklist">
<h3>情绪起伏大的人</h3>
<ul>
<li>更适合规则明确、频率较低的风格。</li>
<li>不适合“最强、最快、最刺激”的战场。</li>
<li>先把节奏放慢,往往比学新战法更重要。</li>
</ul>
</div>
<div class="checklist">
<h3>研究能力强的人</h3>
<ul>
<li>更适合守株型、猎人型、部分龙头型。</li>
<li>但也容易掉进“研究越多越舍不得认错”的坑。</li>
<li>研究能力越强,越要配退出纪律。</li>
</ul>
</div>
</div>
<div class="grid-2" style="margin-top:14px;">
<div class="quote-box">
<strong>最常见的培训误区</strong>
<p>很多人一上来就问:“哪种风格最赚钱?” 这个问题本身就容易误导。更应该先问的是:“哪种风格最不容易把我做废?” 因为如果风格和性格不匹配,再好的方法也会在执行时变形。</p>
</div>
<div class="quote-box">
<strong>适配,比模仿重要</strong>
<p>你看到别人做龙头赚钱,不代表你也适合追最强;你看到别人长期持有赚钱,也不代表你能承受三个月不看分时。真正有效的学习,不是照抄招式,而是先认识自己的时间结构、情绪结构和认知结构。</p>
</div>
</div>
</div>
</section>
<section class="block reveal" id="mirror">
<div class="section-card">
<div class="section-head">
<div class="mini">Section 03</div>
<h2>账户就是镜子:你怎么交易,就怎么暴露自己</h2>
<p>很多操作表面上像是在判断市场,实质上是在暴露性格。追高、杀跌、扛亏、梭哈,背后往往不是技术问题,而是人的问题。</p>
</div>
<div class="mirror">
<div class="mirror-item">
<strong>追高</strong>
<em>常见底色:贪婪 + 怕错过</em>
<p>真正让人冲进去的,很多时候不是逻辑,而是“别人都赚钱了,我不能落下”。这不是研究之后的果断,而是 FOMO 在控制手指。</p>
</div>
<div class="mirror-item">
<strong>杀跌</strong>
<em>常见底色:恐惧 + 无计划</em>
<p>该止损时不止,等到情绪崩的时候才砍;很多人不是止损不及时,而是止损标准从来没提前定过。</p>
</div>
<div class="mirror-item">
<strong>满仓</strong>
<em>常见底色:赌性 + 过度自信</em>
<p>重仓不是绝对错误,但“随便一次想法就满仓”通常说明,你不是在配置风险,而是在赌自己这次肯定对。</p>
</div>
<div class="mirror-item">
<strong>深套</strong>
<em>常见底色:不愿承认失败</em>
<p>很多深套并不是市场突然背刺,而是人在最早应该认错的时候,选择了拖、熬、骗自己“再等等就回来”。</p>
</div>
</div>
<p>所以培训里最值得反复讲的一句话是:<strong>每一次操作,既是在和市场交手,也是在和自己交手。</strong> 市场不负责迁就你的性格,账户也不会替你隐藏缺点。你是急、是贪、是倔、是赌,它都会最后体现在曲线上。</p>
<div class="grid-2">
<div class="quote-box">
<strong>为什么有人总在“错的时候特别勤奋”</strong>
<p>因为等待很无聊,承认错误很难,什么都不做又让人没有存在感。于是人会下意识地通过“不断交易”来证明自己在掌控局面。实际上,这恰恰是最容易被市场牵着走的时候。</p>
</div>
<div class="quote-box">
<strong>真正成熟的变化是什么</strong>
<p>不是从此百战百胜,而是开始接受:错过没关系,踏空没关系,卖飞一点也没关系。只要大错少犯,账户就会开始从“情绪日记”变成“纪律成果”。</p>
</div>
</div>
<div class="grid-3" style="margin-top:14px;">
<div class="source-card">
<h3>侥幸心理</h3>
<p>最常见的话是“再等等,也许就回来了”。它看起来像希望,实质上往往是在逃避决策。侥幸最大的伤害,不是让你错过最佳处理点,而是让你习惯把问题往后拖。</p>
</div>
<div class="source-card">
<h3>证明心理</h3>
<p>很多人加仓不是因为机会变好了,而是因为想证明自己一开始没错。可市场并不负责给谁面子。你越急着证明,越容易把一次错误判断变成一场持久战。</p>
</div>
<div class="source-card">
<h3>比较心理</h3>
<p>别人涨停、别人翻倍、别人晒单,这些画面最容易把人的节奏打乱。比较一旦成为驱动力,交易就会越来越像赶路,而不是按自己的节奏走路。</p>
</div>
</div>
<p>培训里还可以把“人性”讲得更直白一点:<strong>人最容易在两种情况下犯错。</strong> 一种是太兴奋的时候,以为自己无所不能;另一种是太难受的时候,想赶紧做点什么缓解痛苦。可市场从不因为你难受就给你低风险机会,也不因为你自信就送你确定利润。</p>
</div>
</section>
<section class="block reveal" id="rhythm">
<div class="section-card">
<div class="section-head">
<div class="mini">Section 04</div>
<h2>一笔成熟的交易,往往不是从买入开始,而是从等待开始</h2>
<p>很多人只学买点、卖点,却不学节奏。可真正决定长期结果的,往往是节奏有没有完整。</p>
</div>
<div class="timeline">
<div class="timeline-card">
<div class="timeline-no">01</div>
<div>
<h3>先等,不先猜</h3>
<p>先等市场把条件走出来,而不是自己在脑子里提前下结论。好交易通常是“信号到了我才动”,而不是“我觉得要涨所以先埋伏”。</p>
</div>
</div>
<div class="timeline-card">
<div class="timeline-no">02</div>
<div>
<h3>看清机会等级</h3>
<p>不是所有机会都值得重仓。把机会分级,本质上是在给资金安排轻重缓急。普通机会轻仓试,强机会再上强度。</p>
</div>
</div>
<div class="timeline-card">
<div class="timeline-no">03</div>
<div>
<h3>先想错了怎么办</h3>
<p>成熟的人会先写“退出条件”,再写“盈利预期”。因为真正能把账户拖垮的,往往不是少赚,而是大错不认。</p>
</div>
</div>
<div class="timeline-card">
<div class="timeline-no">04</div>
<div>
<h3>赚到手,比看对更重要</h3>
<p>判断对方向只是开始,把纸面盈利变成真实盈利,靠的是兑现能力。见好就收,不是保守,而是尊重市场的不确定性。</p>
</div>
</div>
<div class="timeline-card">
<div class="timeline-no">05</div>
<div>
<h3>复盘,不是复仇</h3>
<p>复盘的目的不是骂自己,也不是证明自己其实早就知道,而是把每次盈亏拆成“哪里对了、哪里错了、以后怎么少犯”。</p>
</div>
</div>
</div>
<div class="grid-2" style="margin-top:14px;">
<div class="checklist">
<h3>培训可直接落地的四个纪律问题</h3>
<ul>
<li>这次机会属于普通、较强,还是极强?</li>
<li>如果错了,我在哪里退出,不拖泥带水?</li>
<li>如果对了,我准备分批兑现,还是趋势持有?</li>
<li>这笔交易,事后能不能写成一页清楚的复盘?</li>
</ul>
</div>
<div class="checklist">
<h3>一句适合培训反复讲的话</h3>
<ul>
<li>机会不是天天都好,账户也不是天天都该满。</li>
<li>能长期活下来的人,往往不是猜得最准的人,而是节奏最稳的人。</li>
<li>把错扛成灾难,通常不是因为市场太坏,而是因为人不愿认错。</li>
</ul>
</div>
</div>
<div class="grid-2" style="margin-top:14px;">
<div class="quote-box">
<strong>仓位为什么是节奏放大器</strong>
<p>同样的判断,对错都可能存在;但不同仓位,带来的心理压力和账户波动完全不同。仓位一大,人的解释欲、侥幸心和临场冲动都会被放大。所以很多人不是分析错了,而是仓位先把心态压垮了。培训时一定要讲清楚:仓位管理不是附属动作,它本身就是交易系统的一部分。</p>
</div>
<div class="quote-box">
<strong>止损为什么难</strong>
<p>不是因为不知道“应该止损”,而是因为止损在情绪上像承认自己失败。但成熟的交易者会慢慢理解:止损不是人格否定,它只是一次业务处理。把错误限制在可承受范围内,本身就是专业的一部分。</p>
</div>
</div>
<div class="grid-3" style="margin-top:14px;">
<div class="checklist">
<h3>仓位轻时要做什么</h3>
<ul>
<li>观察市场是否认可自己的判断。</li>
<li>记录进入理由是否仍在增强。</li>
<li>防止自己因为“仓位轻”而乱加快节奏。</li>
</ul>
</div>
<div class="checklist">
<h3>仓位重时要记住什么</h3>
<ul>
<li>仓位越重,越不能临场改规则。</li>
<li>仓位越重,越要提前准备退出动作。</li>
<li>仓位越重,越不能拿情绪当依据。</li>
</ul>
</div>
<div class="checklist">
<h3>复盘可追问三件事</h3>
<ul>
<li>我是看对了,还是运气好?</li>
<li>我是亏在判断,还是亏在执行?</li>
<li>下次同样情形,我要删掉哪个坏动作?</li>
</ul>
</div>
</div>
</div>
</section>
<section class="block reveal" id="training">
<div class="section-card">
<div class="section-head">
<div class="mini">Section 05</div>
<h2>培训场景:把概念讲成人能立刻懂的画面</h2>
<p>下面这些不是荐股模板,而是可直接拿来培训的“情景化说法”。讲人的行为,比单讲术语更容易让人记住。</p>
</div>
<div class="grid-3">
<div class="source-card">
<h3>场景 A:涨停后第二天冲进去</h3>
<p>可以这样讲:你以为自己买的是强势,其实很多时候买的是情绪最热的那一分钟。此时最需要问的不是“还能不能涨”,而是“我是不是因为怕错过才冲进去”。</p>
</div>
<div class="source-card">
<h3>场景 B:跌一点就想补仓摊平</h3>
<p>可以这样讲:补仓不是爱,补仓是二次决策。第一次买错了,第二次更应该先问逻辑还在不在,而不是因为账面难看就继续往里填。</p>
</div>
<div class="source-card">
<h3>场景 C:赚了 8% 不舍得走</h3>
<p>可以这样讲:很多人不是不会买,是不会收。总想卖在最高点,最后常常把已经到手的利润又看回去。账户不是比谁卖得最神,而是比谁真正带走了钱。</p>
</div>
<div class="source-card">
<h3>场景 D:一年忙了很多,收益却一般</h3>
<p>可以这样讲:市场不按出勤率发工资。你忙,说明你很投入;但交易世界里,投入不等于有效。真正值钱的是高质量出手,而不是高频存在感。</p>
</div>
<div class="source-card">
<h3>场景 E:明知不该做,还是手痒</h3>
<p>可以这样讲:这不是技术问题,是情绪需要。很多人不是看到了机会才交易,而是因为焦虑、无聊、想扳回一局,所以找机会交易。</p>
</div>
<div class="source-card">
<h3>场景 F:别人赚钱了,自己踏空</h3>
<p>可以这样讲:踏空很难受,但踏空不致命,乱追才致命。市场最喜欢利用人的比较心。只要你为了不落后而失去节奏,后面就容易越做越乱。</p>
</div>
</div>
<div class="grid-2" style="margin-top:14px;">
<div class="checklist">
<h3>适合现场互动提问</h3>
<ul>
<li>你最近一次冲动交易,是因为机会真的好,还是因为自己不舒服?</li>
<li>你最常犯的是追高、扛亏、频繁切换,还是拿不住利润?</li>
<li>你现在的风格,是自己选的,还是被情绪推着形成的?</li>
</ul>
</div>
<div class="checklist">
<h3>适合培训收口的三句话</h3>
<ul>
<li>真正伤账户的,往往不是一次看错,而是连续很多次乱动。</li>
<li>交易不是证明自己聪明,而是保护自己别犯大错。</li>
<li>能长期稳定的人,通常都先学会了少做。</li>
</ul>
</div>
</div>
<div class="quote-box" style="margin-top:14px;">
<strong>如果要带新人,可以这样串起来讲</strong>
<p>先讲现金,告诉他“不是天天都要出手”;再讲风格,让他知道“不是每条路都适合自己”;再讲人性,让他明白“真正的敌人常常在自己心里”;最后讲节奏,告诉他“市场不按勤奋发工资,而按纪律给结果”。这样一条线下来,培训对象会更容易把零散概念串成一个整体。</p>
</div>
</div>
</section>
<section class="block reveal" id="sources">
<div class="section-card">
<div class="section-head">
<div class="mini">Section 06</div>
<h2>名人备注与来源</h2>
<p>这部分不是“谁说了就一定对”,而是告诉培训对象:很多成熟投资观念,前人早就反复强调过。这里不做生硬语录堆砌,只给出可查的名字和来源。</p>
</div>
<div class="grid-2">
<div class="source-card">
<h3>本杰明·格雷厄姆</h3>
<p>常被视为价值投资重要奠基者之一。关于“安全边际”“市场先生”等观念,核心不是让人死守某只股票,而是提醒人:市场价格经常带情绪,投资者要学会区分价格与价值。</p>
<div class="src">来源:Benjamin Graham,《The Intelligent Investor》(《聪明的投资者》)。</div>
</div>
<div class="source-card">
<h3>霍华德·马克斯</h3>
<p>他的很多公开备忘录与《周期》都在反复强调一件事:市场机会不是均匀分布的,风险偏好、估值和周期位置会变。投资者的重要能力之一,是在机会差的时候克制,在赔率好的时候出手。</p>
<div class="src">来源:Howard Marks,《Mastering the Market Cycle》(《周期》);Oaktree Capital 公开备忘录。</div>
</div>
<div class="source-card">
<h3>查理·芒格</h3>
<p>他长期强调理性、耐心、能力圈和少犯大错。培训里借用他的思路时,重点不在模仿口头风格,而在理解:真正高质量的决策,很多时候来自等待少数足够好的球,而不是什么都想挥棒。</p>
<div class="src">来源:Peter D. Kaufman 编,《Poor Charlie's Almanack》(《穷查理宝典》)。</div>
</div>
<div class="source-card">
<h3>杰西·利弗莫尔</h3>
<p>市场人物与交易故事经常被拿来讲“顺势”“等待”“人性反复”。但培训时要提醒:关于他的很多流传名句,网上版本混杂,适合引用其思想脉络,不宜把所有热门短句都当成原文。</p>
<div class="src">来源:Edwin Lefevre,《Reminiscences of a Stock Operator》(《股票作手回忆录》)。</div>
</div>
</div>
<div class="grid-2" style="margin-top:14px;">
<div class="source-card">
<h3>关于“现金是期权”这类表达</h3>
<p>这是一种培训中常用的通俗比喻,意思是强调现金所代表的未来选择权、流动性和主动性,并不是在说现金真的等同于金融学定义中的标准化期权合约。培训使用时,最好把这个边界讲清楚,避免概念混淆。</p>
<div class="src">备注:属于认知比喻,不是严格术语替换。</div>
</div>
<div class="source-card">
<h3>关于本页的现实边界</h3>
<p>本页讲的是投资认知、风格适配与行为纪律,不涉及个股推荐、收益承诺或短线预测。培训落地时,也建议始终提醒听众:方法再好,也要和风险承受能力、资金来源、投资期限相匹配。</p>
<div class="src">备注:用于培训、认知梳理,不构成投资建议。</div>
</div>
</div>
<div class="quote-box" style="margin-top:14px;">
<strong>最后的培训收束</strong>
<p>如果要把这整页浓缩成一句适合结尾的话,可以这样讲:<br /><br />
<strong>炒股不是拼天赋,更像一场修行。</strong> 你会不会等,会不会认错,会不会克制,会不会感恩已经到手的利润,这些东西比“哪根均线金叉”更决定你的长期结果。<br /><br />
当你不再把每一次波动都当成机会,不再把每一次回撤都当成耻辱,不再把每一次盈利都想榨到最后一滴,你才算真正从“情绪交易”走向“成熟投资”。</p>
</div>
</div>
</section>
</div>
</main>
<footer class="footer">
<div class="section-card reveal">
<div class="section-head">
<div class="mini">Ending Note</div>
<h2>给培训者的一句提醒</h2>
<p>不要把投资培训讲成“技巧大全”,那样听的人只会更想快点下单。更有效的讲法,是先帮人建立边界:什么是机会,什么是诱惑;什么是纪律,什么是压抑;什么是长期,什么是死扛。边界清了,风格才会稳,动作才会少,结果才会慢慢变好。</p>
</div>
</div>
</footer>
</div>
<script>
'use strict';
const canvas = document.getElementById('bg');
const ctx = canvas.getContext('2d');
const dpr = Math.min(window.devicePixelRatio || 1, 2);
let w = 0;
let h = 0;
let cw = 0;
let ch = 0;
const particles = [];
const lineBands = [];
function rand(seed) {
let s = seed >>> 0;
return function next() {
s += 0x6D2B79F5;
let t = s;
t = Math.imul(t ^ (t >>> 15), t | 1);
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
};
}
const random = rand(20260807);
function resize() {
cw = window.innerWidth;
ch = window.innerHeight;
w = Math.round(cw * dpr);
h = Math.round(ch * dpr);
canvas.width = w;
canvas.height = h;
canvas.style.width = cw + 'px';
canvas.style.height = ch + 'px';
}
function initScene() {
particles.length = 0;
lineBands.length = 0;
for (let i = 0; i < 80; i += 1) {
particles.push({
x: random(),
y: random(),
r: 0.8 + random() * 2.2,
a: 0.08 + random() * 0.22,
speed: 0.02 + random() * 0.06,
phase: random() * Math.PI * 2
});
}
for (let i = 0; i < 5; i += 1) {
lineBands.push({
base: 0.18 + i * 0.14,
amp: 0.015 + i * 0.005,
speed: 0.28 + i * 0.08,
color: i % 2 ? 'rgba(138,165,255,0.14)' : 'rgba(125,227,181,0.1)'
});
}
}
function drawBackground(t) {
const g = ctx.createLinearGradient(0, 0, 0, h);
g.addColorStop(0, '#112247');
g.addColorStop(0.34, '#091322');
g.addColorStop(1, '#03060d');
ctx.fillStyle = g;
ctx.fillRect(0, 0, w, h);
ctx.strokeStyle = 'rgba(126, 162, 255, 0.06)';
ctx.lineWidth = 1 * dpr;
for (let i = 0; i < 11; i += 1) {
const y = h * (0.14 + i * 0.07);
ctx.beginPath();
ctx.moveTo(0, y);
ctx.lineTo(w, y);
ctx.stroke();
}
lineBands.forEach((band, index) => {
ctx.strokeStyle = band.color;
ctx.lineWidth = (1.6 + index * 0.35) * dpr;
ctx.beginPath();
for (let x = 0; x <= w; x += 8 * dpr) {
const nx = x / w;
const y = h * (band.base + Math.sin(nx * 12 + t * band.speed + index) * band.amp + Math.sin(nx * 33 - t * 0.18) * 0.007);
if (x === 0) ctx.moveTo(x, y);
else ctx.lineTo(x, y);
}
ctx.stroke();
});
const pulseX = w * 0.74;
const pulseY = h * 0.28;
const pulseR = (120 + Math.sin(t * 0.7) * 22) * dpr;
const radial = ctx.createRadialGradient(pulseX, pulseY, 0, pulseX, pulseY, pulseR);
radial.addColorStop(0, 'rgba(247, 201, 124, 0.18)');
radial.addColorStop(1, 'rgba(247, 201, 124, 0)');
ctx.fillStyle = radial;
ctx.beginPath();
ctx.arc(pulseX, pulseY, pulseR, 0, Math.PI * 2);
ctx.fill();
particles.forEach((p) => {
const x = p.x * w;
const y = (p.y + Math.sin(t * p.speed + p.phase) * 0.012) * h;
ctx.fillStyle = `rgba(230,236,255,${p.a})`;
ctx.beginPath();
ctx.arc(x, y, p.r * dpr, 0, Math.PI * 2);
ctx.fill();
});
}
function animate(ms) {
drawBackground(ms / 1000);
requestAnimationFrame(animate);
}
const revealEls = [...document.querySelectorAll('.reveal')];
const sectionLinks = [...document.querySelectorAll('.side-rail a, .topnav a')];
const io = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) entry.target.classList.add('show');
});
}, { threshold: 0.12 });
revealEls.forEach((el) => io.observe(el));
const sectionObserver = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (!entry.isIntersecting) return;
const id = '#' + entry.target.id;
sectionLinks.forEach((link) => {
link.classList.toggle('active', link.getAttribute('href') === id);
});
});
}, { threshold: 0.35, rootMargin: '-20% 0px -55% 0px' });
document.querySelectorAll('section[id]').forEach((section) => sectionObserver.observe(section));
window.addEventListener('resize', resize);
resize();
initScene();
requestAnimationFrame(animate);
</script>
</body>
</html>