基于金融帝国 (Financial Empire),走出幻觉·走向成熟 (Out of Illusion, Toward Maturity)
走出幻觉·走向成熟 是一位中国交易员从持续亏损到持续盈利的心理和 方法论转变的亲身记录。该书以"金融帝国"为笔名撰写,记录了每位严肃交易者都必须经历的心理和方法论旅程。
核心论点:
大多数交易者失败,不是因为缺乏智慧或信息,而是因为他们在一套关于市场、
关于交易、关于自己的幻觉中运作。盈利需要首先摧毁这些幻觉,然后在心理
成熟的基础上建立系统化方法。
这条路有两个阶段:
第一阶段:走出幻觉 — 认识和抛弃导致亏损的错误信念
第二阶段:走向成熟 — 构建一个稳健的交易系统和遵循它的纪律
第一阶段:新手热情期(第1-2年)
- 相信可以通过交易快速致富
- 依赖消息、图形和"热门"股票
- 疯狂过度交易
- 结果:重大亏损
第二阶段:系统寻找期(第2-4年)
- 开始深入学习技术分析
- 尝试了数十种指标和系统
- 每次亏损后切换系统
- 结果:持续亏损,越来越沮丧
第三阶段:危机与突破(第4-5年)
- 累积亏损导致的情绪和财务危机
- 开始深入自我反思为何亏损
- 意识到问题是心理上的,不是技术上的
- 开始构建匹配自己性格的系统
- 结果:首次实现持续(虽然微薄)盈利
第四阶段:成熟期(第5年以上)
- 接受交易是概率游戏
- 将亏损作为业务的必要成本
- 根据系统机械交易
- 关注过程,而非个别交易结果
- 结果:多年持续盈利
这本书是由一位中国交易员为中国交易员写的,专注于A股市场。与翻译的西方交易书籍不同,它针对的是中国市场环境的具体心理挑战和市场结构。
幻觉 #1:"我可以预测市场"
现实:没有人能持续预测短期市场方向。市场是一个受数百万参与者影响的复杂适应系统。即使是最优秀的交易者正确率也只有40-60%。
对策:交易概率,而非预测。
幻觉 #2:"存在一个圣杯指标"
现实:没有指标、图形或系统会永远获胜。每个系统都有回撤期。寻找"永不亏损"的系统是无止境的。
对策:接受所有系统有时都会亏损。目标是正期望值,而非每笔交易都完美。
幻觉 #3:"更多信息 = 更好的决策"
现实:信息过载导致分析瘫痪和矛盾信号。拥有3个清晰信号的交易者优于拥有30个矛盾指标的交易者。
对策:简化。掌握少数工具。忽略噪音。
幻觉 #4:"市场欠我的"
现实:市场不知道你的存在。它不在乎你的亏损、你的目标或你恢复的需要。它是一个冷漠的机制。
对策:为每个结果承担全部责任。不责备,不找借口。
幻觉 #5:"我与其他亏损者不同"
现实:你和所有人一样受制于同样的心理偏见。对自己独特性的过度自信本身就是偏见。
对策:谦卑。研究你实际的业绩记录。数字不会说谎。
幻觉 #6:"亏损是异常的"
现实:亏损是交易的正常、预期和必要成本。胜率55%的系统在每100笔交易中会亏损45笔。
对策:将亏损重新定义为业务支出,而非失败。
幻觉 #7:"我可以不靠系统赚钱"
现实:没有规则的自主交易是赌博。即使你有好的直觉,没有系统也无法复制成功或从失败中学习。
对策:构建一个完整的、书面的、可测试的交易系统。
步骤1:带着热情和 unrealistic 期望进入市场
步骤2:早期赚了一些钱(通常是牛市中的运气)
步骤3:把运气误认为技能。增加仓位和交易频率。
步骤4:市场转向。遭受重大亏损。
步骤5:拒绝接受亏损。持有亏损仓位。逆势加仓。
步骤6:最终被迫以更大的亏损卖出。
步骤7:试图通过激进的情绪化交易"恢复"亏损
步骤8:亏损加剧。最终:
a) 完全退出市场(70%的亏损者)
b) 触底并开始真正的学习过程(最终盈利的10%)
为什么交易者重复同样的错误?
1. 情绪化决策:在恐惧或贪婪下做出的决策系统性错误
2. 没有书面规则:没有明确规则,每次决策都是即兴发挥
3. 关注结果:依据结果(P&L)而非过程(我是否遵守了规则?)评判
4. 没有反馈循环:不记录交易意味着不从模式中学习
5. 保护自尊:承认交易错误感觉像承认"你"是错的
6. 近因偏差:上一笔交易主导下一笔交易的决策
交易系统是一套完整的书面规则,回答:
1. 交易什么:哪些股票/品种符合你的方法
2. 何时入场:触发买入的具体、客观标准
3. 买多少:根据风险确定仓位规则
4. 何时出场(亏损):止损规则 — 最重要的部分
5. 何时出场(盈利):止盈或跟踪止损规则
6. 如何管理:加仓、调整止损等的规则
当两个不同的人遵循相同的规则会在同一时间做出相同的交易时,系统才是完整的。
一个好的交易系统必须:
1. 客观:规则足够清晰,计算机可以执行
错误:"当股票看起来要上涨时买入"
正确:"当价格以成交量 > 1.5倍均值的方式收于20日均线上方时买入"
2. 可测试:规则可以通过历史数据进行回测
如果你无法测试它,你就无法知道它是否有效。
3. 完整:覆盖交易者将遇到的所有场景
不完整的系统会在需要 discretion 的时刻产生情绪。
4. 个性化:匹配交易者的性格、时间可用性和风险承受能力
日内交易系统不适合有全职工作的人。
超耐心系统不适合需要频繁操作的人。
5. 简单:使用所需的最少规则和指标
复杂性增加了曲线拟合的机会和执行难度。
组成部分1:优势(正期望值)
期望值 =(胜率 × 平均盈利)-(亏损率 × 平均亏损)
必须在大样本交易中为正。
示例:
胜率:45%,平均盈利:¥3,000
亏损率:55%,平均亏损:¥1,200
期望值 = (0.45 × 3,000) - (0.55 × 1,200) = ¥1,350 - ¥660 = ¥690/笔
具有正期望值的系统会长期赚钱,
即使亏损次数多于盈利次数。
组成部分2:风险管理(生存)
仓位调整和止损确保任何单一交易或亏损
都不会摧毁账户。
组成部分3:纪律(执行)
一致执行系统的心理能力,
特别是在回撤期间,当每种本能都尖叫着要改变时。
作者的系统建立在趋势跟踪之上,他认为这是A股散户最稳健的方法:
核心原则:跟随趋势。不预测。反应。
为什么趋势跟踪:
1. 趋势存在于所有市场和时间框架(经验证明)
2. 趋势跟踪在A股具有正期望值(已测试)
3. 它不需要预测 — 只需要识别和反应
4. 它自然截断亏损(趋势突破 = 出场)并让利润奔跑(趋势继续 = 持有)
5. 它在心理上易于管理,因为规则清晰
为什么不反向交易或均值回归:
1. 在A股,趋势持续时间往往比预期更长(散户从众)
2. 反向交易的胜率更低,需要精确时机
3. 均值回归假设一种可能在政策驱动的市场中不存在的"常态"
作者主张将系统时间框架与个人情况匹配:
时间框架 | 持仓周期 | 监控频率 | 适合人群
------------|----------------|---------------|---------------------------
日内 | 分钟-小时 | 持续 | 全职交易者(因T+1不适合A股)
波段 | 3-20天 | 每天2次 | 兼职交易者
仓位 | 3-12个月 | 每周 | 有全职工作的投资者
长期 | 1-5年 | 每月 | 纯价值投资者
作者主要使用波段和仓位时间框架。
对于T+1结算的A股,日内交易在结构上处于劣势。
越少越好。作者仅使用:
1. 移动平均线(20日、60日、120日)— 趋势方向和支撑/阻力
2. 成交量 — 趋势确认和衰竭信号
3. 相对强度 — 比较股票与指数的表现
这就是完整的指标集。没有RSI,没有MACD,没有布林带,没有随机指标。
理由:每个额外指标都会增加噪音和矛盾信号的可能性。
以上三个工具捕捉了基本信息:趋势、信念和相对价值。
第一阶段:无意识的无能
交易者不知道他所不知道的。凭直觉和消息交易。
特征:过度自信、兴奋、大型随机赌注。
第二阶段:有意识的无能
交易者意识到他在亏损,并开始理解原因。
特征:沮丧、寻找系统、不断改变策略。
第三阶段:有意识的有能
交易者有一个可行的系统,但必须自觉地与偏离的冲动作斗争。
特征:纪律需要努力,经常有超越系统的诱惑。
第四阶段:无意识的有能
遵循系统变得自动。情绪不再控制决策。
特征:无聊(好迹象)、机械执行、稳定结果。
第五阶段:大师
交易者深入理解系统的局限性和优势。能够在不放弃核心原则的情况下适应
变化的市场条件。
特征:冷静自信、持续改进、教学他人。
大多数交易者永远不会超越第二阶段。
本书旨在弥合第二到第四阶段。
目标不是消除情绪(不可能),而是防止它们影响交易。
市场开盘前:
- 回顾系统的规则(提醒自己将要做什么)
- 回顾所有持仓及其止损水平
- 书面承诺今天的行动
市场交易时段:
- 只执行计划好的行动
- 如果你感到强烈的冲动要做计划外的事:什么都不做
- 如果你感到恐惧:检查是否已触及止损。如果没有,持有。
- 如果你感到贪婪:检查是否已达到目标。如果没有,持有。
市场收盘后:
- 记录你做了什么和感受到了什么
- 评分:过程A(遵守规则)/ 过程F(偏离规则)
- 识别任何情绪触发器以及下次如何处理
关键规则:绝不在情绪激动时做出交易决策。
如果你强烈地感到想做某事,那是最重要的什么都不做的时候。
盈利需要接受:
1. 接受亏损:亏损不是惩罚。它们是业务成本。
每位成功的交易者都在数千笔交易中亏损过。
2. 接受不确定性:你永远不会知道下一笔交易是赢还是输。
你只知道你的系统在100笔交易后会盈利。
3. 接受不完美:你不会抓住每个走势。你不会卖在最高点。
你不会买在最低点。完美是一种幻觉。
4. 接受无聊:成熟的交易是无聊的。如果你很兴奋,你可能做错了。
兴奋表示情绪参与。
5. 接受责任:每个结果都是你决策的结果。
不是市场的错。不是运气差。你的决策。
前置条件:市场环境
- 上证指数高于其120日均线(宏观上升趋势)
- 如果低于120日均线:只交易具有极端相对强度的股票
选股设置:
- 股票高于其60日均线(中期上升趋势确认)
- 股票过去20天相对沪深300有正相对强度
- 成交量模式:上涨日扩张,下跌日收缩
触发:入场信号
选择其一(不是多个):
A) 突破:价格以成交量 > 1.5倍均值收于20日区间高点之上
B) 回撤:价格在上升趋势中回撤至20日均线,企稳并恢复
(通过次日收于回撤低点之上确认)
C) 均线金叉:20日均线穿越至60日均线之上(较慢但更可靠)
确认(可选):
- 入场日成交量 > 20日平均成交量的1.2倍
- 入场点上方5%内无重大阻力
步骤1:信号在交易时段触发
步骤2:不要立即行动。记录信号。
步骤3:收盘后,验证所有标准是否满足(防止假信号)
步骤4:计算仓位(第八节)
步骤5:为次日早晨设置入场订单
步骤6:同时设置止损订单(如果可能,在成交前)
步骤7:在交易日志中记录入场,包括完整推理
永远不要在没有预先计算止损的情况下入场。
止损水平决定了交易是否有效。
如果所需止损太宽(风险超过资本的2%),跳过交易。
即使信号触发,也不要入场当:
1. 你已达到最大持仓数(此系统为5个)
2. 今日市场指数下跌超过3%(恐慌日 — 等待尘埃落定)
3. 2天内有重大经济数据发布或政策公告
4. 你已达到月度亏损限额
5. 你强烈地被迫入场(情绪信号 = 危险信号)
第一级:初始止损
在入场时设置。永远不要进一步远离入场价移动。
方法:低于最近的摆动低点,或入场价下方2x ATR
最大值:入场价下方8%(硬性上限,与ATR无关)
第二级:盈亏平衡止损
交易向你有利的方向移动1R后(R = 初始风险):
将止损移动至入场价(盈亏平衡)
目的:消除交易风险,创造"免费交易"
第三级:跟踪止损
交易向你有利的方向移动2R+后:
在每个连续更高的摆动低点下方跟踪止损
或:使用20日均线跟踪(如果股票收盘于其下方,次日出场)
目的:在保护利润的同时捕捉最大趋势
市场状况 | 首选止损方法
---------------------|----------------------------------
强势上升趋势 | 跟踪止损(让利润奔跑)
弱势/震荡上升趋势 | 固定目标2-3R(获取你能得到的)
突破交易 | 初始在突破位下方跟踪,然后摆动低点
回撤交易 | 在20日均线下方跟踪
本书最重要的规则:
当你的止损被触发时,出场。没有例外。没有犹豫。没有"让我再等一天"。
没有"这可能只是噪音"。
止损是防止小亏损变成大亏损的唯一机制。
即使一次违反止损也会为你的大脑创造一个先例,用来再次
违反它。一次又一次。直到一笔交易摧毁你的账户。
如果你不能遵守你的止损,你就不能盈利交易。就这样。
每笔交易最大风险:总交易资本的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%)
任何时候的最大总组合风险:
保守:6%(3个仓位各2%)
中等:8%(4个仓位各2%)
激进:10%(5个仓位各2%)
作者使用中等(8%)作为标准限制。
在仓位移动至盈亏平衡止损后,来自这些仓位的"热量"降至零,
为新交易释放风险预算。
回撤水平 | 行动
<5% | 正常运作,继续按系统交易
5-10% | 所有新交易仓位减半
10-15% | 停止交易1周。回顾系统和近期交易。
15-20% | 停止交易1个月。全面系统回顾。
>20% | 完全停止交易。仅模拟交易直至信心恢复。
| 可能需要重新设计系统。
毁灭概率取决于每笔交易风险和胜率:
风险/交易 | 胜率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%风险,相同胜率:毁灭概率相当可观。
这就是为什么仓位调整比入场信号更重要。
盘前(15分钟):
1. 检查可能影响持仓的任何事件新闻
2. 回顾所有持仓的止损水平
3. 检查观察清单中可能接近入场信号的标的
4. 写下今天的行动计划:每个场景"如果X,则Y"
5. 情绪检查:我平静吗?我清醒吗?如果不,今天不要交易。
市场交易时段:
- 只执行计划好的订单
- 监控持仓止损
- 不要修改止损(它们设置是有原因的)
- 不要追涨没有跟随你的股票(总会有更多交易)
- 如果可能,限制屏幕时间为2次查看(开盘、收盘)
盘后(15分钟):
1. 记录所有交易和结果
2. 评估每个决策:A(遵守系统)、B(轻微偏离)、F(重大偏离)
3. 记录关键决策时的情绪状态
4. 更新交易日志
5. 为明天准备观察清单
每笔交易必须记录以下字段:
交易记录:
- 入场和出场日期/时间
- 股票代码和名称
- 设置类型(突破/回撤/均线交叉)
- 入场价、止损价、仓位
- 以人民币计的风险和资本百分比
- 出场价和原因(止损触发、目标达到、跟踪止损等)
- 以人民币和R倍数计的盈亏
- 持仓期
- 过程评分(A/B/F)
- 入场和出场时的情绪状态
- 入场和出场的图表截图
- 我会有什么不同的做法(如果有的话)
每周:回顾所有交易。计算:
- 胜率
- 平均R倍数
- 最大盈利和亏损(以R倍数计)
- 过程评分分布
- 错误中的任何模式
每月:全面回顾。计算:
- 月度回报和回撤
- 系统期望值(运行平均)
- 与基准的比较
- 最常见错误和纠正行动
规则1:疲劳、生病、醉酒或情绪激动时绝对不要交易。
你的判断力受损。市场明天还会在。
规则2:永远不要为了证明什么而交易(对自己或他人)。
交易不是为了自我。而是为了盈利。
规则3:永远不要在社交媒体上讨论持仓。
一旦你公开承诺一个仓位,你的自我就投入了。
你会持有亏损者以避免公开尴尬。
规则4:永远不要与他人比较回报。
你在用你的系统、你的资本和你的风险承受能力进行交易。
他人的回报无关紧要。
规则5:休息。每周休息一天。每季度休息一周。
交易是精神消耗。疲劳导致错误。
错误 #1:过度优化(曲线拟合)
设计一个在历史数据上完美但在实际中失败的系统。
原因:太多参数被调整以精确拟合过去的数据。
修复:使用参数少的简单系统。在样本外数据上测试。
经验法则:如果你的系统有超过5条规则,它可能过度拟合了。
错误 #2:忽略交易成本
回测时不考虑佣金、滑点和价差。
影响:显示20%年回报的系统在实际成本后可能只有5%。
修复:在回测中每笔交易增加0.3%的往返成本。
错误 #3:样本不足
基于20-30笔交易得出系统"有效"的结论。
修复:需要至少100笔交易(理想情况下200+)才能有统计置信度。
错误 #4:系统跳转
在5-10笔亏损交易后放弃一个系统。
现实:即使是很棒的系统也会有8-10笔连续亏损。
修复:承诺在评估前进行100笔交易。按总表现判断,而非连续亏损。
错误 #5:将止损进一步远离
"它就在我的止损下方,我会给它更多空间。"
结果:你计划的8%亏损变成25%亏损。
修复:止损设置一次,永远不要远离入场价移动。只能朝向盈利方向移动。
错误 #6:向亏损者加仓
"现在更便宜了!"
结果:增加亏损仓位的敞口。与系统所说的相反。
修复:永远不要向亏损仓位加仓。只向盈利者加仓。
错误 #7:过早卖出盈利者
"我有15%的收益,我应该在它消失之前了结。"
结果:你的平均盈利缩小到低于平均亏损。系统期望值变为负。
修复:让跟踪止损完成工作。唯一可接受的提前出场是系统信号。
错误 #8:报复交易
"我刚亏损了¥10,000。我需要立刻赚回来。"
结果:情绪化、超规模的交易加剧亏损。
修复:亏损后,至少24小时什么都不做。然后恢复正常系统。
背景:
资本:¥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/笔。
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,
}
"市场是一面反映你内心世界的镜子。如果你内心混乱,
你的交易结果也会混乱。如果你内心有纪律,你的结果也会有纪律。"
"从幻觉到成熟的旅程是从'我什么都知道'到
'我几乎什么都不知道,但我有一个处理这种不确定性的系统'的旅程。"
"交易系统不是预测机器。它是一个决策框架,在一段时间内产生积极结果,
而不是在每一笔单独交易上。"
"止损不是你的敌人。它是唯一能阻挡灾难性损失的东西。
像尊重灭火器一样尊重它。"
"大多数交易者将90%的时间用于寻找完美入场,只有10%用于其他一切。
成熟的交易者反过来:10%用于入场,90%用于出场、风险管理和心理。"
"无聊是成熟交易的标志。如果你对你的交易感到兴奋,
你仍在幻觉阶段。"
"市场奖励一致性,而非才华。平庸的系统一致执行
优于出色的系统不规律执行。"
"每个交易者都必须向市场交学费。问题不是你是否会交,
而是交多少。那些每笔交易冒险2%的人交负担得起的学费。
那些每笔交易冒险20%的人交的学费是他们无法恢复的。"
"七个幻觉不是智力问题 — 它们是情绪问题。你可以在一个小时内
在智力上理解它们。需要数年才能在情绪上克服它们。"
"走出幻觉意味着接受你是一个普通人在不确定世界中玩概率游戏。
走向成熟意味着构建系统和习惯,一次一笔交易地将这些概率转向对你有利。"
"你的交易日志是你拥有的最有价值的工具。不是你的图表软件。
不是你的指标。是你的日志。因为它是唯一有真相的地方。"
"成熟的交易者不害怕亏损。他只害怕一件事:偏离他的系统。"
实施规范编译自金融帝国(金融帝国),走出幻觉·走向成熟。 本文件是用于实际应用的系统化提炼,不替代阅读原作。
(文件结束 — 共982行)