走出幻觉·走向成熟 — 完整实施规范

基于金融帝国 (Financial Empire),走出幻觉·走向成熟 (Out of Illusion, Toward Maturity)


目录

  1. 概述
  2. [幻觉阶段 — 理解交易者为何亏损](#2-幻觉阶段 — 理解交易者为何亏损)
  3. [成熟阶段 — 构建交易系统](#3-成熟阶段 — 构建交易系统)
  4. 交易系统设计原则
  5. 心理成熟框架
  6. 入场规则
  7. 出场/止损规则
  8. 风险管理
  9. 行为/纪律规则
  10. 常见错误
  11. 完整交易生命周期示例
  12. 实施伪代码
  13. 关键语录/原则

1. 概述

1.1 核心论点

走出幻觉·走向成熟 是一位中国交易员从持续亏损到持续盈利的心理和 方法论转变的亲身记录。该书以"金融帝国"为笔名撰写,记录了每位严肃交易者都必须经历的心理和方法论旅程。

核心论点:

大多数交易者失败,不是因为缺乏智慧或信息,而是因为他们在一套关于市场、
关于交易、关于自己的幻觉中运作。盈利需要首先摧毁这些幻觉,然后在心理
成熟的基础上建立系统化方法。

这条路有两个阶段:
第一阶段:走出幻觉 — 认识和抛弃导致亏损的错误信念
第二阶段:走向成熟 — 构建一个稳健的交易系统和遵循它的纪律

1.2 作者的历程

第一阶段:新手热情期(第1-2年)
  - 相信可以通过交易快速致富
  - 依赖消息、图形和"热门"股票
  - 疯狂过度交易
  - 结果:重大亏损

第二阶段:系统寻找期(第2-4年)
  - 开始深入学习技术分析
  - 尝试了数十种指标和系统
  - 每次亏损后切换系统
  - 结果:持续亏损,越来越沮丧

第三阶段:危机与突破(第4-5年)
  - 累积亏损导致的情绪和财务危机
  - 开始深入自我反思为何亏损
  - 意识到问题是心理上的,不是技术上的
  - 开始构建匹配自己性格的系统
  - 结果:首次实现持续(虽然微薄)盈利

第四阶段:成熟期(第5年以上)
  - 接受交易是概率游戏
  - 将亏损作为业务的必要成本
  - 根据系统机械交易
  - 关注过程,而非个别交易结果
  - 结果:多年持续盈利

1.3 本书的重要性

这本书是由一位中国交易员为中国交易员写的,专注于A股市场。与翻译的西方交易书籍不同,它针对的是中国市场环境的具体心理挑战和市场结构。


2. 幻觉阶段 — 理解交易者为何亏损

2.1 七个重大幻觉

幻觉 #1:"我可以预测市场"
  现实:没有人能持续预测短期市场方向。市场是一个受数百万参与者影响的复杂适应系统。即使是最优秀的交易者正确率也只有40-60%。
  对策:交易概率,而非预测。

幻觉 #2:"存在一个圣杯指标"
  现实:没有指标、图形或系统会永远获胜。每个系统都有回撤期。寻找"永不亏损"的系统是无止境的。
  对策:接受所有系统有时都会亏损。目标是正期望值,而非每笔交易都完美。

幻觉 #3:"更多信息 = 更好的决策"
  现实:信息过载导致分析瘫痪和矛盾信号。拥有3个清晰信号的交易者优于拥有30个矛盾指标的交易者。
  对策:简化。掌握少数工具。忽略噪音。

幻觉 #4:"市场欠我的"
  现实:市场不知道你的存在。它不在乎你的亏损、你的目标或你恢复的需要。它是一个冷漠的机制。
  对策:为每个结果承担全部责任。不责备,不找借口。

幻觉 #5:"我与其他亏损者不同"
  现实:你和所有人一样受制于同样的心理偏见。对自己独特性的过度自信本身就是偏见。
  对策:谦卑。研究你实际的业绩记录。数字不会说谎。

幻觉 #6:"亏损是异常的"
  现实:亏损是交易的正常、预期和必要成本。胜率55%的系统在每100笔交易中会亏损45笔。
  对策:将亏损重新定义为业务支出,而非失败。

幻觉 #7:"我可以不靠系统赚钱"
  现实:没有规则的自主交易是赌博。即使你有好的直觉,没有系统也无法复制成功或从失败中学习。
  对策:构建一个完整的、书面的、可测试的交易系统。

2.2 散户亏损的情绪周期

步骤1:带着热情和 unrealistic 期望进入市场
步骤2:早期赚了一些钱(通常是牛市中的运气)
步骤3:把运气误认为技能。增加仓位和交易频率。
步骤4:市场转向。遭受重大亏损。
步骤5:拒绝接受亏损。持有亏损仓位。逆势加仓。
步骤6:最终被迫以更大的亏损卖出。
步骤7:试图通过激进的情绪化交易"恢复"亏损
步骤8:亏损加剧。最终:
    a) 完全退出市场(70%的亏损者)
    b) 触底并开始真正的学习过程(最终盈利的10%)

2.3 根本原因分析

为什么交易者重复同样的错误?

1. 情绪化决策:在恐惧或贪婪下做出的决策系统性错误
2. 没有书面规则:没有明确规则,每次决策都是即兴发挥
3. 关注结果:依据结果(P&L)而非过程(我是否遵守了规则?)评判
4. 没有反馈循环:不记录交易意味着不从模式中学习
5. 保护自尊:承认交易错误感觉像承认"你"是错的
6. 近因偏差:上一笔交易主导下一笔交易的决策

3. 成熟阶段 — 构建交易系统

3.1 什么是交易系统?

交易系统是一套完整的书面规则,回答:

1. 交易什么:哪些股票/品种符合你的方法
2. 何时入场:触发买入的具体、客观标准
3. 买多少:根据风险确定仓位规则
4. 何时出场(亏损):止损规则 — 最重要的部分
5. 何时出场(盈利):止盈或跟踪止损规则
6. 如何管理:加仓、调整止损等的规则

当两个不同的人遵循相同的规则会在同一时间做出相同的交易时,系统才是完整的。

3.2 系统设计标准

一个好的交易系统必须:

1. 客观:规则足够清晰,计算机可以执行
   错误:"当股票看起来要上涨时买入"
   正确:"当价格以成交量 > 1.5倍均值的方式收于20日均线上方时买入"

2. 可测试:规则可以通过历史数据进行回测
   如果你无法测试它,你就无法知道它是否有效。

3. 完整:覆盖交易者将遇到的所有场景
   不完整的系统会在需要 discretion 的时刻产生情绪。

4. 个性化:匹配交易者的性格、时间可用性和风险承受能力
   日内交易系统不适合有全职工作的人。
   超耐心系统不适合需要频繁操作的人。

5. 简单:使用所需的最少规则和指标
   复杂性增加了曲线拟合的机会和执行难度。

3.3 交易系统的三个组成部分

组成部分1:优势(正期望值)
  期望值 =(胜率 × 平均盈利)-(亏损率 × 平均亏损)
  必须在大样本交易中为正。

  示例:
  胜率:45%,平均盈利:¥3,000
  亏损率:55%,平均亏损:¥1,200
  期望值 = (0.45 × 3,000) - (0.55 × 1,200) = ¥1,350 - ¥660 = ¥690/笔

  具有正期望值的系统会长期赚钱,
  即使亏损次数多于盈利次数。

组成部分2:风险管理(生存)
  仓位调整和止损确保任何单一交易或亏损
  都不会摧毁账户。

组成部分3:纪律(执行)
  一致执行系统的心理能力,
  特别是在回撤期间,当每种本能都尖叫着要改变时。

4. 交易系统设计原则

4.1 趋势跟踪框架

作者的系统建立在趋势跟踪之上,他认为这是A股散户最稳健的方法:

核心原则:跟随趋势。不预测。反应。

为什么趋势跟踪:
1. 趋势存在于所有市场和时间框架(经验证明)
2. 趋势跟踪在A股具有正期望值(已测试)
3. 它不需要预测 — 只需要识别和反应
4. 它自然截断亏损(趋势突破 = 出场)并让利润奔跑(趋势继续 = 持有)
5. 它在心理上易于管理,因为规则清晰

为什么不反向交易或均值回归:
1. 在A股,趋势持续时间往往比预期更长(散户从众)
2. 反向交易的胜率更低,需要精确时机
3. 均值回归假设一种可能在政策驱动的市场中不存在的"常态"

4.2 时间框架选择

作者主张将系统时间框架与个人情况匹配:

时间框架   | 持仓周期    | 监控频率     | 适合人群
------------|----------------|---------------|---------------------------
日内        | 分钟-小时    | 持续          | 全职交易者(因T+1不适合A股)
波段        | 3-20天       | 每天2次       | 兼职交易者
仓位        | 3-12个月    | 每周          | 有全职工作的投资者
长期        | 1-5年        | 每月          | 纯价值投资者

作者主要使用波段和仓位时间框架。
对于T+1结算的A股,日内交易在结构上处于劣势。

4.3 指标选择

越少越好。作者仅使用:

1. 移动平均线(20日、60日、120日)— 趋势方向和支撑/阻力
2. 成交量 — 趋势确认和衰竭信号
3. 相对强度 — 比较股票与指数的表现

这就是完整的指标集。没有RSI,没有MACD,没有布林带,没有随机指标。

理由:每个额外指标都会增加噪音和矛盾信号的可能性。
以上三个工具捕捉了基本信息:趋势、信念和相对价值。

5. 心理成熟框架

5.1 交易者心理的五个阶段

第一阶段:无意识的无能
  交易者不知道他所不知道的。凭直觉和消息交易。
  特征:过度自信、兴奋、大型随机赌注。

第二阶段:有意识的无能
  交易者意识到他在亏损,并开始理解原因。
  特征:沮丧、寻找系统、不断改变策略。

第三阶段:有意识的有能
  交易者有一个可行的系统,但必须自觉地与偏离的冲动作斗争。
  特征:纪律需要努力,经常有超越系统的诱惑。

第四阶段:无意识的有能
  遵循系统变得自动。情绪不再控制决策。
  特征:无聊(好迹象)、机械执行、稳定结果。

第五阶段:大师
  交易者深入理解系统的局限性和优势。能够在不放弃核心原则的情况下适应
  变化的市场条件。
  特征:冷静自信、持续改进、教学他人。

大多数交易者永远不会超越第二阶段。
本书旨在弥合第二到第四阶段。

5.2 情绪分离协议

目标不是消除情绪(不可能),而是防止它们影响交易。

市场开盘前:
  - 回顾系统的规则(提醒自己将要做什么)
  - 回顾所有持仓及其止损水平
  - 书面承诺今天的行动

市场交易时段:
  - 只执行计划好的行动
  - 如果你感到强烈的冲动要做计划外的事:什么都不做
  - 如果你感到恐惧:检查是否已触及止损。如果没有,持有。
  - 如果你感到贪婪:检查是否已达到目标。如果没有,持有。

市场收盘后:
  - 记录你做了什么和感受到了什么
  - 评分:过程A(遵守规则)/ 过程F(偏离规则)
  - 识别任何情绪触发器以及下次如何处理

关键规则:绝不在情绪激动时做出交易决策。
如果你强烈地感到想做某事,那是最重要的什么都不做的时候。

5.3 接受框架

盈利需要接受:

1. 接受亏损:亏损不是惩罚。它们是业务成本。
   每位成功的交易者都在数千笔交易中亏损过。

2. 接受不确定性:你永远不会知道下一笔交易是赢还是输。
   你只知道你的系统在100笔交易后会盈利。

3. 接受不完美:你不会抓住每个走势。你不会卖在最高点。
   你不会买在最低点。完美是一种幻觉。

4. 接受无聊:成熟的交易是无聊的。如果你很兴奋,你可能做错了。
   兴奋表示情绪参与。

5. 接受责任:每个结果都是你决策的结果。
   不是市场的错。不是运气差。你的决策。

6. 入场规则

6.1 完整入场系统

前置条件:市场环境
  - 上证指数高于其120日均线(宏观上升趋势)
  - 如果低于120日均线:只交易具有极端相对强度的股票

选股设置:
  - 股票高于其60日均线(中期上升趋势确认)
  - 股票过去20天相对沪深300有正相对强度
  - 成交量模式:上涨日扩张,下跌日收缩

触发:入场信号
  选择其一(不是多个):

  A) 突破:价格以成交量 > 1.5倍均值收于20日区间高点之上
  B) 回撤:价格在上升趋势中回撤至20日均线,企稳并恢复
     (通过次日收于回撤低点之上确认)
  C) 均线金叉:20日均线穿越至60日均线之上(较慢但更可靠)

确认(可选):
  - 入场日成交量 > 20日平均成交量的1.2倍
  - 入场点上方5%内无重大阻力

6.2 入场执行协议

步骤1:信号在交易时段触发
步骤2:不要立即行动。记录信号。
步骤3:收盘后,验证所有标准是否满足(防止假信号)
步骤4:计算仓位(第八节)
步骤5:为次日早晨设置入场订单
步骤6:同时设置止损订单(如果可能,在成交前)
步骤7:在交易日志中记录入场,包括完整推理

永远不要在没有预先计算止损的情况下入场。
止损水平决定了交易是否有效。
如果所需止损太宽(风险超过资本的2%),跳过交易。

6.3 过滤规则 — 何时不入场

即使信号触发,也不要入场当:
1. 你已达到最大持仓数(此系统为5个)
2. 今日市场指数下跌超过3%(恐慌日 — 等待尘埃落定)
3. 2天内有重大经济数据发布或政策公告
4. 你已达到月度亏损限额
5. 你强烈地被迫入场(情绪信号 = 危险信号)

7. 出场/止损规则

7.1 三级出场系统

第一级:初始止损
  在入场时设置。永远不要进一步远离入场价移动。
  方法:低于最近的摆动低点,或入场价下方2x ATR
  最大值:入场价下方8%(硬性上限,与ATR无关)

第二级:盈亏平衡止损
  交易向你有利的方向移动1R后(R = 初始风险):
  将止损移动至入场价(盈亏平衡)
  目的:消除交易风险,创造"免费交易"

第三级:跟踪止损
  交易向你有利的方向移动2R+后:
  在每个连续更高的摆动低点下方跟踪止损
  或:使用20日均线跟踪(如果股票收盘于其下方,次日出场)
  目的:在保护利润的同时捕捉最大趋势

7.2 固定止损与跟踪止损决策

市场状况         | 首选止损方法
---------------------|----------------------------------
强势上升趋势       | 跟踪止损(让利润奔跑)
弱势/震荡上升趋势   | 固定目标2-3R(获取你能得到的)
突破交易         | 初始在突破位下方跟踪,然后摆动低点
回撤交易         | 在20日均线下方跟踪

7.3 出场纪律

本书最重要的规则:

当你的止损被触发时,出场。没有例外。没有犹豫。没有"让我再等一天"。
没有"这可能只是噪音"。

止损是防止小亏损变成大亏损的唯一机制。
即使一次违反止损也会为你的大脑创造一个先例,用来再次
违反它。一次又一次。直到一笔交易摧毁你的账户。

如果你不能遵守你的止损,你就不能盈利交易。就这样。

8. 风险管理

8.1 仓位调整 — 2%规则

每笔交易最大风险:总交易资本的2%
风险 =(入场价 - 止损价)× 股数

计算:
  资本:¥300,000
  最大风险:¥300,000 × 0.02 = ¥6,000
  入场:¥25
  止损:¥23
  每份风险:¥2
  最大股数:¥6,000 / ¥2 = 3,000股
  仓位价值:3,000 × ¥25 = ¥75,000(资本的25%)

注意:止损距离决定仓位大小。
  如果止损是¥24(¥1风险):6,000股,¥150,000(资本的50%)
  如果止损是¥22(¥3风险):2,000股,¥50,000(资本的17%)

8.2 投资组合热量限制

任何时候的最大总组合风险:
  保守:6%(3个仓位各2%)
  中等:8%(4个仓位各2%)
  激进:10%(5个仓位各2%)

作者使用中等(8%)作为标准限制。

在仓位移动至盈亏平衡止损后,来自这些仓位的"热量"降至零,
为新交易释放风险预算。

8.3 回撤管理

回撤水平     | 行动
<5%          | 正常运作,继续按系统交易
5-10%        | 所有新交易仓位减半
10-15%       | 停止交易1周。回顾系统和近期交易。
15-20%       | 停止交易1个月。全面系统回顾。
>20%         | 完全停止交易。仅模拟交易直至信心恢复。
             | 可能需要重新设计系统。

8.4 毁灭预防计算

毁灭概率取决于每笔交易风险和胜率:

风险/交易 | 胜率40% | 胜率50% | 胜率60%
1%        | 0.1%      | ~0%       | ~0%
2%        | 1.5%      | ~0%       | ~0%
5%        | 12%       | 2%        | ~0%
10%       | 38%       | 13%       | 2%
20%       | 72%       | 40%       | 18%
50%       | 99%+      | 88%       | 67%

每笔交易2%风险,胜率45-55%:毁灭概率可忽略。
每笔交易10%风险,相同胜率:毁灭概率相当可观。

这就是为什么仓位调整比入场信号更重要。

9. 行为/纪律规则

9.1 每日协议

盘前(15分钟):
  1. 检查可能影响持仓的任何事件新闻
  2. 回顾所有持仓的止损水平
  3. 检查观察清单中可能接近入场信号的标的
  4. 写下今天的行动计划:每个场景"如果X,则Y"
  5. 情绪检查:我平静吗?我清醒吗?如果不,今天不要交易。

市场交易时段:
  - 只执行计划好的订单
  - 监控持仓止损
  - 不要修改止损(它们设置是有原因的)
  - 不要追涨没有跟随你的股票(总会有更多交易)
  - 如果可能,限制屏幕时间为2次查看(开盘、收盘)

盘后(15分钟):
  1. 记录所有交易和结果
  2. 评估每个决策:A(遵守系统)、B(轻微偏离)、F(重大偏离)
  3. 记录关键决策时的情绪状态
  4. 更新交易日志
  5. 为明天准备观察清单

9.2 交易日志

每笔交易必须记录以下字段:

交易记录:
  - 入场和出场日期/时间
  - 股票代码和名称
  - 设置类型(突破/回撤/均线交叉)
  - 入场价、止损价、仓位
  - 以人民币计的风险和资本百分比
  - 出场价和原因(止损触发、目标达到、跟踪止损等)
  - 以人民币和R倍数计的盈亏
  - 持仓期
  - 过程评分(A/B/F)
  - 入场和出场时的情绪状态
  - 入场和出场的图表截图
  - 我会有什么不同的做法(如果有的话)

每周:回顾所有交易。计算:
  - 胜率
  - 平均R倍数
  - 最大盈利和亏损(以R倍数计)
  - 过程评分分布
  - 错误中的任何模式

每月:全面回顾。计算:
  - 月度回报和回撤
  - 系统期望值(运行平均)
  - 与基准的比较
  - 最常见错误和纠正行动

9.3 自我管理规则

规则1:疲劳、生病、醉酒或情绪激动时绝对不要交易。
  你的判断力受损。市场明天还会在。

规则2:永远不要为了证明什么而交易(对自己或他人)。
  交易不是为了自我。而是为了盈利。

规则3:永远不要在社交媒体上讨论持仓。
  一旦你公开承诺一个仓位,你的自我就投入了。
  你会持有亏损者以避免公开尴尬。

规则4:永远不要与他人比较回报。
  你在用你的系统、你的资本和你的风险承受能力进行交易。
  他人的回报无关紧要。

规则5:休息。每周休息一天。每季度休息一周。
  交易是精神消耗。疲劳导致错误。

10. 常见错误

10.1 系统设计错误

错误 #1:过度优化(曲线拟合)
  设计一个在历史数据上完美但在实际中失败的系统。
  原因:太多参数被调整以精确拟合过去的数据。
  修复:使用参数少的简单系统。在样本外数据上测试。
  经验法则:如果你的系统有超过5条规则,它可能过度拟合了。

错误 #2:忽略交易成本
  回测时不考虑佣金、滑点和价差。
  影响:显示20%年回报的系统在实际成本后可能只有5%。
  修复:在回测中每笔交易增加0.3%的往返成本。

错误 #3:样本不足
  基于20-30笔交易得出系统"有效"的结论。
  修复:需要至少100笔交易(理想情况下200+)才能有统计置信度。

错误 #4:系统跳转
  在5-10笔亏损交易后放弃一个系统。
  现实:即使是很棒的系统也会有8-10笔连续亏损。
  修复:承诺在评估前进行100笔交易。按总表现判断,而非连续亏损。

10.2 执行错误

错误 #5:将止损进一步远离
  "它就在我的止损下方,我会给它更多空间。"
  结果:你计划的8%亏损变成25%亏损。
  修复:止损设置一次,永远不要远离入场价移动。只能朝向盈利方向移动。

错误 #6:向亏损者加仓
  "现在更便宜了!"
  结果:增加亏损仓位的敞口。与系统所说的相反。
  修复:永远不要向亏损仓位加仓。只向盈利者加仓。

错误 #7:过早卖出盈利者
  "我有15%的收益,我应该在它消失之前了结。"
  结果:你的平均盈利缩小到低于平均亏损。系统期望值变为负。
  修复:让跟踪止损完成工作。唯一可接受的提前出场是系统信号。

错误 #8:报复交易
  "我刚亏损了¥10,000。我需要立刻赚回来。"
  结果:情绪化、超规模的交易加剧亏损。
  修复:亏损后,至少24小时什么都不做。然后恢复正常系统。

11. 完整交易生命周期示例

背景:
  资本:¥500,000
  系统:趋势跟踪,波段时间框架
  日期:第一个交易日

交易前扫描:
  市场检查:上证指数高于120日均线。✓ 市场环境有利。
  股票扫描:XYZ公司(科技公司,在观察清单上)
  - 价格:¥42,高于60日均线(¥38)✓
  - 相对沪深300强度:正(股票过去20天跑赢指数)✓
  - 成交量:近期上涨日扩张,下跌日收缩 ✓
  - 设置:价格已回撤至20日均线(¥41.50)并企稳

入场信号(第1天):
  信号类型:上升趋势中回撤至20日均线的买入
  确认:价格在¥42.20收盘,从¥41.30低点反弹(守住20日均线上方)
  反弹日成交量:1.3倍平均成交量 ✓

仓位计算:
  入场价:¥42.20
  止损:¥39.50(低于近期摆动低点¥40.00)
  每份风险:¥42.20 - ¥39.50 = ¥2.70
  最大风险(¥500,000的2%):¥10,000
  股数:¥10,000 / ¥2.70 = 3,703 → 取整至3,700股(37手)
  仓位价值:3,700 × ¥42.20 = ¥156,140(资本的31%)
  风险:3,700 × ¥2.70 = ¥9,990(资本的2.0%)✓

入场执行(第2天):
  以¥42.20买入3,700股
  止损订单:如果价格跌至¥39.50则卖出
  日志记录:"上升趋势中的回撤买入。20均线支撑确认。成交量充足。
  风险2.0%资本。R目标:2R在¥47.60。"

交易管理:
  第3天:股票跌至¥41.00。不舒服但未触及止损。按系统持有。
  第5天:股票恢复至¥43.50。现在+1R(¥42.20 + ¥2.70 = ¥44.90...还未达到)
  第8天:股票达到¥44.90(+1R)。将止损移至¥42.20(盈亏平衡)。免费交易。
  第12天:股票在¥47.00。接近2R(¥47.60)。
  第14天:股票达到¥48.50(>2R)。切换至摆动低点下方跟踪止损。
    最近的摆动低点:¥45.50。设置跟踪止损于¥45.50。
  第18天:股票在¥51.00。新摆动低点:¥48.00。将跟踪止损提高至¥48.00。
  第22天:股票在¥52.50。新摆动低点:¥49.50。将跟踪止损提高至¥49.50。
  第25天:股票回撤。触及¥49.50跟踪止损。

出场执行(第25天):
  以¥49.50卖出3,700股
  盈亏:3,700 ×(¥49.50 - ¥42.20)= ¥27,010
  R倍数:¥27,010 / ¥9,990 = 2.70R
  持仓期:23个交易日

交易后回顾:
  过程评分:A(遵守所有系统规则,无偏离)
  情绪记录:"第3天股票下跌时感到焦虑。想出场。
  因为未触及止损而坚持。很高兴遵循了系统。"
  教训:"回撤入场最初可能感觉糟糕,但在上升趋势中效果很好。"
  运行统计:最近15笔交易中的第7笔盈利(47%胜率)。平均盈利:2.3R。
  平均亏损:-1.0R。期望值:(0.47 × 2.3) - (0.53 × 1.0) = +0.55R/笔。

12. 实施伪代码

class MaturityTradingSystem:
    """
    金融帝国的A股趋势跟踪系统。
    走出幻觉·走向成熟 — 完整实施。
    """

    # 系统参数
    SHORT_MA = 20
    MEDIUM_MA = 60
    LONG_MA = 120
    VOLUME_THRESHOLD = 1.5  # 突破确认
    PULLBACK_VOLUME = 0.7   # 回撤时成交量应收缩

    # 风险参数
    RISK_PER_TRADE = 0.02
    MAX_PORTFOLIO_HEAT = 0.08
    MAX_OPEN_POSITIONS = 5
    MAX_STOP_PCT = 0.08  # 硬上限:最大止损距离8%

    # 回撤管理
    REDUCE_SIZE_DRAWDOWN = 0.05
    PAUSE_TRADING_DRAWDOWN = 0.10
    HALT_TRADING_DRAWDOWN = 0.15
    SYSTEM_REVIEW_DRAWDOWN = 0.20

    def market_environment(self, index):
        """检查大盘是否有利于交易。"""
        return index.close > index.sma(self.LONG_MA)

    def scan_for_setups(self, watchlist, index):
        """扫描观察清单中的有效入场设置。"""
        favorable_market = self.market_environment(index)
        setups = []

        for stock in watchlist:
            # 基本资格
            if stock.close < stock.sma(self.MEDIUM_MA):
                continue  # 不在上升趋势中
            if stock.relative_strength_vs(index, 20) < 0:
                continue  # 跑输市场

            # 检查特定设置
            if self.is_breakout(stock):
                setups.append(("BREAKOUT", stock))
            elif self.is_pullback(stock):
                setups.append(("PULLBACK", stock))
            elif self.is_ma_cross(stock):
                setups.append(("MA_CROSS", stock))

        # 在不利市场中,只选择相对强度非常强的股票
        if not favorable_market:
            setups = [(t, s) for t, s in setups if s.relative_strength_vs(index, 20) > 0.10]

        return setups

    def is_breakout(self, stock):
        """检查是否突破20日区间高点且有成交量。"""
        return (stock.close > stock.highest_close(self.SHORT_MA)
                and stock.volume > stock.avg_volume(self.SHORT_MA) * self.VOLUME_THRESHOLD)

    def is_pullback(self, stock):
        """检查上升趋势中是否回撤至20日均线。"""
        near_20ma = abs(stock.close - stock.sma(self.SHORT_MA)) / stock.sma(self.SHORT_MA) < 0.02
        volume_contracting = stock.volume < stock.avg_volume(self.SHORT_MA) * self.PULLBACK_VOLUME
        in_uptrend = stock.sma(self.SHORT_MA) > stock.sma(self.MEDIUM_MA)
        bouncing = stock.close > stock.open  # 收于开盘价之上(阳线)
        return near_20ma and volume_contracting and in_uptrend and bouncing

    def is_ma_cross(self, stock):
        """检查20日均线是否穿越至60日均线上方。"""
        ma_20_today = stock.sma(self.SHORT_MA)
        ma_60_today = stock.sma(self.MEDIUM_MA)
        ma_20_yesterday = stock.sma(self.SHORT_MA, offset=1)
        ma_60_yesterday = stock.sma(self.MEDIUM_MA, offset=1)
        return ma_20_yesterday <= ma_60_yesterday and ma_20_today > ma_60_today

    def calculate_stop(self, stock, setup_type):
        """确定止损水平。"""
        if setup_type == "BREAKOUT":
            stop = stock.lowest_low(5)  # 低于盘整区
        elif setup_type == "PULLBACK":
            stop = stock.recent_swing_low() * 0.99  # 低于近期摆动低点
        elif setup_type == "MA_CROSS":
            stop = stock.sma(self.MEDIUM_MA) * 0.98  # 低于60日均线
        else:
            stop = stock.close * (1 - self.MAX_STOP_PCT)

        # 硬上限
        max_stop = stock.close * (1 - self.MAX_STOP_PCT)
        if stop < max_stop:
            stop = max_stop  # 使用更严格的止损来控制风险

        return round(stop, 2)

    def calculate_position_size(self, capital, entry_price, stop_price, portfolio):
        """基于2%风险规则的仓位计算。"""
        risk_per_share = entry_price - stop_price
        if risk_per_share <= 0:
            return 0

        max_risk = capital * self.RISK_PER_TRADE

        # 检查组合热量
        current_heat = portfolio.total_risk / capital
        available_heat = self.MAX_PORTFOLIO_HEAT - current_heat
        max_risk = min(max_risk, available_heat * capital)

        if max_risk <= 0:
            return 0

        shares = int(max_risk / risk_per_share)
        shares = (shares // 100) * 100  # 取整至A股手数
        return shares

    def manage_position(self, trade, stock):
        """三级出场管理。"""
        current_price = stock.close
        entry = trade.entry_price
        initial_risk = trade.initial_risk_per_share
        r_multiple = (current_price - entry) / initial_risk if initial_risk > 0 else 0

        # 第一级:初始止损
        if current_price <= trade.stop_loss:
            return "EXIT", f"止损触发于 {trade.stop_loss}"

        # 第二级:在1R后移动至盈亏平衡
        if r_multiple >= 1.0 and trade.stop_loss < entry:
            trade.stop_loss = entry
            return "HOLD", "止损移动至盈亏平衡(达到1R)"

        # 第三级:在2R后跟踪止损
        if r_multiple >= 2.0:
            swing_low = stock.recent_swing_low()
            if swing_low and swing_low > trade.stop_loss:
                trade.stop_loss = swing_low
                return "HOLD", f"跟踪止损提高至 {swing_low}"

            # 替代:20日均线跟踪
            ma_20 = stock.sma(self.SHORT_MA)
            if current_price < ma_20 and trade.stop_loss < ma_20 * 0.98:
                return "EXIT", f"收于20日均线下方({ma_20:.2f})"

        return "HOLD", f"R倍数:{r_multiple:.1f}"

    def check_drawdown_rules(self, portfolio):
        """回撤管理熔断机制。"""
        drawdown = portfolio.max_drawdown_from_peak

        if drawdown > self.SYSTEM_REVIEW_DRAWDOWN:
            return "HALT", "20%+回撤。需要全面系统回顾。"
        elif drawdown > self.HALT_TRADING_DRAWDOWN:
            return "HALT", "15%+回撤。停止交易1个月。"
        elif drawdown > self.PAUSE_TRADING_DRAWDOWN:
            return "PAUSE", "10%+回撤。停止交易1周。"
        elif drawdown > self.REDUCE_SIZE_DRAWDOWN:
            return "REDUCE", "5%+回撤。仓位减半。"
        else:
            return "NORMAL", "回撤在可接受范围内。"

    def daily_routine(self, capital, portfolio, watchlist, index):
        """完整的每日交易程序。"""
        # 步骤1:回撤检查
        dd_status, dd_msg = self.check_drawdown_rules(portfolio)
        if dd_status in ["HALT", "PAUSE"]:
            return {"action": "NO_TRADING", "reason": dd_msg}

        # 步骤2:管理现有持仓
        exit_signals = []
        for trade in portfolio.open_trades:
            action, msg = self.manage_position(trade, trade.stock)
            if action == "EXIT":
                exit_signals.append((trade, msg))

        # 步骤3:执行出场
        for trade, msg in exit_signals:
            portfolio.close(trade, trade.stock.close, msg)

        # 步骤4:扫描新入场(如有容量)
        if portfolio.open_count < self.MAX_OPEN_POSITIONS:
            setups = self.scan_for_setups(watchlist, index)
            for setup_type, stock in setups:
                if portfolio.open_count >= self.MAX_OPEN_POSITIONS:
                    break

                stop = self.calculate_stop(stock, setup_type)
                shares = self.calculate_position_size(capital, stock.close, stop, portfolio)
                if shares > 0:
                    trade = portfolio.open_trade(stock, shares, stock.close, stop, setup_type)

        return {
            "exits": exit_signals,
            "new_entries": [t for t in portfolio.open_trades if t.is_new],
            "open_positions": portfolio.open_count,
            "portfolio_heat": portfolio.total_risk / capital,
        }

13. 关键语录/原则

"市场是一面反映你内心世界的镜子。如果你内心混乱,
你的交易结果也会混乱。如果你内心有纪律,你的结果也会有纪律。"

"从幻觉到成熟的旅程是从'我什么都知道'到
'我几乎什么都不知道,但我有一个处理这种不确定性的系统'的旅程。"

"交易系统不是预测机器。它是一个决策框架,在一段时间内产生积极结果,
而不是在每一笔单独交易上。"

"止损不是你的敌人。它是唯一能阻挡灾难性损失的东西。
像尊重灭火器一样尊重它。"

"大多数交易者将90%的时间用于寻找完美入场,只有10%用于其他一切。
成熟的交易者反过来:10%用于入场,90%用于出场、风险管理和心理。"

"无聊是成熟交易的标志。如果你对你的交易感到兴奋,
你仍在幻觉阶段。"

"市场奖励一致性,而非才华。平庸的系统一致执行
优于出色的系统不规律执行。"

"每个交易者都必须向市场交学费。问题不是你是否会交,
而是交多少。那些每笔交易冒险2%的人交负担得起的学费。
那些每笔交易冒险20%的人交的学费是他们无法恢复的。"

"七个幻觉不是智力问题 — 它们是情绪问题。你可以在一个小时内
在智力上理解它们。需要数年才能在情绪上克服它们。"

"走出幻觉意味着接受你是一个普通人在不确定世界中玩概率游戏。
走向成熟意味着构建系统和习惯,一次一笔交易地将这些概率转向对你有利。"

"你的交易日志是你拥有的最有价值的工具。不是你的图表软件。
不是你的指标。是你的日志。因为它是唯一有真相的地方。"

"成熟的交易者不害怕亏损。他只害怕一件事:偏离他的系统。"

实施规范编译自金融帝国(金融帝国),走出幻觉·走向成熟。 本文件是用于实际应用的系统化提炼,不替代阅读原作。

(文件结束 — 共982行)