股票大作手利弗莫尔的交易精髓 — 完整实施规范

基于中文分析,股票大作手利弗莫尔的交易精髓(Trading Secrets of Jesse Livermore)


目录

  1. 概述
  2. 利弗莫尔核心交易规则提炼
  3. 盘口解读方法论
  4. 关键点与时机
  5. 金字塔加仓规则
  6. 资金管理
  7. 市场时机把握
  8. 做空
  9. 情绪纪律
  10. 常见错误
  11. 完整交易生命周期示例
  12. 实施伪代码
  13. 关键语录

1. 概述

股票大作手利弗莫尔的交易精髓 是一本中文提炼和分析 Jesse Livermore 交易方法论的书。不是重述利弗莫尔的故事(Reminiscences of a Stock OperatorHow to Trade in Stocks 已经做到了),这本书采用了实践者的方法:提取利弗莫尔方法的操作精髓(交易精髓),并将它们重新组织成现代交易者可以直接实施的框架。

本书的核心论点是:利弗莫尔的天才不在于任何单一技术,而在于他系统性地整合了五种能力:

  1. 盘口解读 — 理解价格和成交量实时告诉你的供需情况
  2. 识别关键点 — 识别股票从积累到上涨或从派发到下跌的确切转折时刻
  3. 纪律性金字塔加仓 — 以结构化的方式向确认的趋势增加敞口,最大化盈利
  4. 保存资本 — 将每一美元交易资本视为不可替代的,在管理盈利之前管理风险
  5. 掌握情绪 — 构建防止恐惧、贪婪、希望和无聊覆盖交易计划的心理框架

1.1 本书相对于利弗莫尔本人著作的增量

利弗莫尔本人的 How to Trade in Stocks 详细呈现了市场关键点系统,但没有将其置于更广泛交易工作流程的背景下。Reminiscences 提供了哲学基础但是叙事性的,非系统性的。这本中文分析通过以下方式弥合差距:

1.2 适用市场

这些原则与市场无关。利弗莫尔交易股票和商品;中文分析明确指出这些方法适用于:


2. 利弗莫尔核心交易规则提炼

本书将利弗莫尔的方法提炼成十二个核心规则层级,按优先级排序。当规则冲突时,编号较高的规则让位于编号较低的。

规则 1 — 只顺大势操作

最重要的单一规则。任何个股持仓都不应逆 prevailing 市场趋势开仓。涨潮抬升所有船;退潮使它们下沉。这是在任何其他分析之前必须满足的最高过滤器

如果 大势 == 不明确:
    行动 = 不做任何事
如果 大势 == 牛市:
    允许方向 = 仅做多
如果 大势 == 熊市:
    允许方向 = 仅做空

规则 2 — 只交易领先板块中的领先股票

在牛市中,并非所有股票同等上涨。利弗莫尔集中于龙头股 — 在最强行业板块中最早、最远上涨的股票。逻辑:如果你必须承担风险,在最有可能以最大幅度朝对你有利的方向移动的名称上承担。

按过去 6-12 个月的相对强度对板块排名
选择前 2-3 个板块
在每个板块内,按以下方式对股票排名:
    - 价格领先(最先创新高)
    - 成交量领先(上涨日相对成交量最高)
    - 盈利领先(增长最快)
每个板块选择前 1-2 只股票

规则 3 — 等待关键点

永远不要仅仅因为趋势有利就开仓。等待股票达到关键点 — 突破或跌破确认下一步走势的具体价格水平。在关键点入场提供最紧密的可能止损和最清晰的确认。

规则 4 — 用成交量确认

有效的关键点突破必须伴随高于平均水平的成交量。成交量是推动价格的燃料。低成交量的突破可疑;扩张成交量的突破可靠。

规则 5 — 用试探入场,而非一次性全押

永远不要一次性投入全部仓位。以阶段(试探)入场,仅当市场确认交易正在盈利时才增加规模。

规则 6 — 快速且绝对地砍仓

每笔持仓必须在入场前定义最大亏损阈值。当达到该阈值时,立即出场,没有犹豫,不向下摊平,不希望反转。

规则 7 — 让盈利奔跑

规则 6 的镜像。不要仅仅因为你有盈利就了结盈利持仓。仅当趋势反转或追踪止损被触发时才出场。砍仓短、让盈利奔跑之间的不对称是产生正期望的原因。

规则 8 — 永远不要向下摊平

向亏损持仓加仓是投机中最具破坏性的做法。它违反规则 6,增加对市场已告诉你错误的交易敞口,将小亏损变成灾难性的。

规则 9 — 现金是一种持仓

当市场不明确时,正确的持仓是现金。没有持仓本身就是一个强大的持仓 — 它保存资本并保存选择性。业余选手觉得必须始终持仓;专业选手知道最有利可图的行为往往是不作为。

规则 10 — 只在条件一致时交易

多 个条件必须在交易前汇聚:大盘方向、板块强度、个股在关键点、成交量确认。即使缺少一个条件也不要交易。这个耐心过滤器消除了绝大多数潜在交易——这正是重点。

规则 11 — 保持交易日志

记录每笔交易,包括入场的理由、出场的理由、每个决策点的情绪状态以及结果。这份记录是自我提升的原材料。

规则 12 — 专业化和专注

关注少量股票(最多 6-10 只)。深入了解少数名称远比肤浅了解多数更有价值。利弗莫尔监控整个市场但在任何给定时间将其资本集中于少数持仓。


3. 盘口解读方法论

3.1 盘口解读的真正含义

利弗莫尔的"盘口解读"(看盘)不是关于观看每一个 tick。它是关于解读价格和成交量行为以确定供需之间的平衡。中文分析识别了利弗莫尔观察的四个特定模式:

3.2 模式 1 — 吸筹

价格在成交量下降时保持稳定或轻微下跌,然后多次测试支撑位而不突破。每次测试成交量比前一次低。这表明卖出压力正在耗尽,强势资金正在吸收所有可用供应。

函数 detect_absorption(柱, 支撑位, 回溯=20):
    测试 = []
    对于 柱 在 柱[-回溯:]:
        如果 柱.低点 <= 支撑位 * 1.01:
            测试.append(柱)
    如果 len(测试) < 2:
        返回 False
    # 成交量应该在每次连续测试中下降
    成交量递减 = all(
        测试[i].成交量 < 测试[i-1].成交量
        对于 i 在 范围(1, len(测试))
    )
    # 价格区间应该收窄
    区间收窄 = all(
        (测试[i].高点 - 测试[i].低点) < (测试[i-1].高点 - 测试[i-1].低点)
        对于 i 在 范围(1, len(测试))
    )
    返回 成交量递减 且 区间收窄

3.3 模式 2 — 突破确认

在关键位整合一段时间后,价格以至少高于 20 日平均成交量 50% 的成交量向上突破关键位。突破日应在区间的上半部分收盘。这表明需求已压倒供应,下一步走势已开始。

函数 confirm_breakout(柱, 关键价格, 20日平均成交量):
    价格穿透 = 柱.收盘 > 关键价格
    成交量激增 = 柱.成交量 >= 20日平均成交量 * 1.5
    强势收盘 = (柱.收盘 - 柱.低点) / (柱.高点 - 柱.低点) >= 0.75
    返回 价格穿透 且 成交量激增 且 强势收盘

3.4 模式 3 — 派发

吸筹的镜像。价格达到新高但成交量下降。每次反弹至新高的努力都遭遇越来越强的卖出。宽范围、高成交量柱在区间下半部分收盘(搅动)是标志。这表明强势资金正在向公众派发股票。

函数 detect_distribution(柱, 回溯=20):
    高点 = [(i, b) 对于 i, b 在 枚举(柱[-回溯:]) 如果 是新高(b, 柱)]
    如果 len(高点) < 2:
        返回 False
    下跌日成交量增加 = False
    对于 i 在 范围(1, len(柱[-回溯:])):
        柱 = 柱[-回溯 + i]
        如果 柱.收盘 < 柱.开盘:  # 下跌日
            如果 柱.成交量 > 柱[-回溯 + i - 1].成交量:
                下跌日成交量增加 = True
    # 新高时成交量下降
    高点成交量递减 = all(
        高点[i][1].成交量 < 高点[i-1][1].成交量
        对于 i 在 范围(1, len(高点))
    )
    返回 高点成交量递减 或 下跌日成交量增加

3.5 模式 4 — 高潮行为

高潮是走势的终末阶段 — 上升趋势中买家或下降趋势中卖家的最终耗尽。特征:

函数 detect_climax(柱, 最近柱, 方向):
    最大成交量 = MAX(b.成交量 对于 b 在 最近柱中)
    最大区间 = MAX(b.高点 - b.低点 对于 b 在 最近柱中)
    是极端成交量 = 柱.成交量 >= 最大成交量 * 0.9
    是极端区间 = (柱.高点 - 柱.低点) >= 最大区间 * 0.9
    如果 方向 == "UP":
        反转收盘 = 柱.收盘 < (柱.高点 + 柱.低点) / 2
        返回 是极端成交量 且 是极端区间 且 反转收盘
    否则:
        反转收盘 = 柱.收盘 > (柱.高点 + 柱.低点) / 2
        返回 是极端成交量 且 是极端区间 且 反转收盘

4. 关键点与时机

4.1 关键点定义

关键点(关键点)是一个具体价格水平,在该水平上下一步方向性走势的概率最高。它不是一个计算值(如场内交易者的关键点公式);它是价格走势的结构性特征 — 由于之前交易活动,供需集中的水平。

4.2 三种关键点类型

类型 1 — 趋势延续关键点: 在既定上升趋势中,价格在窄区间内整合数天或数周,然后向上突破至新高。整合区间的顶部是关键点。这是最常见和最可靠的关键点类型。

类型 2 — 趋势反转关键点: 在延伸下跌之后,价格形成底部(吸筹形态),然后向上突破底部顶部。突破位是关键点。这风险更高,因为它赌趋势改变,但回报也更高,因为它抓住新趋势的开始。

类型 3 — 联动关键点: 当龙头股在关键点突破时,其最接近的同类股(联动股)在窄时间窗口(1-5 天)内监测其自身关键点的确认突破。联动确认提升了初始信号的概率。

4.3 关键点入场时机

中文分析强调,利弗莫尔的关键点入场不仅仅是价格水平 — 它们包含时间要素(时间要素):

函数 evaluate_pivot_timing(股票, 关键价格, 整合天数):
    """
    关键点突破前整合时间越长,后续走势越有力。
    """
    如果 整合天数 < 5:
        时机质量 = "弱"       # 太短;可能是噪音
    否则 如果 整合天数 < 15:
        时机质量 = "中等"   # 可接受
    否则 如果 整合天数 < 40:
        时机质量 = "强"     # 理想 — 弹簧完全压紧
    否则:
        时机质量 = "谨慎"    # 延伸底部;可能下跌
    返回 时机质量

4.4 突破后首次反应的关键重要性

利弗莫尔非常关注股票在突破关键点后立即的行为。中文分析将其编纂为"首次回踩测试"(首次回踩测试):

函数 evaluate_first_pullback(入场价格, 关键价格, 回踩低点, 回踩成交量, 突破成交量):
    下跌% = (入场价格 - 回踩低点) / 入场价格
    保持在关键位上方 = 回踩低点 > 关键价格
    成交量下降 = 回踩成交量 < 突破成交量 * 0.7

    如果 下跌% <= 0.05 且 保持在关键位上方 且 成交量下降:
        返回 "健康"    # 恢复时加仓
    否则 如果 下跌% > 0.07 或 非 保持在关键位上方:
        返回 "失败"     # 立即出场
    否则:
        返回 "模糊"  # 持有,不加仓,收紧止损

5. 金字塔加仓规则

5.1 核心原则

金字塔加仓(金字塔加仓法)是向盈利持仓递减增加的做法。中文分析强调,利弗莫尔从不全仓一次性加仓 — 他分阶段试探市场,使用每次后续加仓来确认交易正在盈利。

5.2 三次试探入场序列

试探 1(初始):     计划全仓的 20%
试探 2(确认):     计划全仓的 20%
试探 3(全额投入): 计划全仓的 60%

试探 1 在关键点突破且成交量足够时放置。风险被定义:如果股票反转穿过关键点,亏损很小(20% 计划规模乘以到止损的距离)。

试探 2 仅在试探 1 显示盈利后放置(通常比首次入场高 2-3%)。整个持仓的止损提高到试探 1 入场价,使交易在最坏情况下大致处于盈亏平衡。

试探 3 是剩余 60% 的投入。仅在试探 2 显示盈利且大势和板块条件仍然有利后放置。止损提高到试探 2 入场价。

5.3 为什么这个结构有效

该结构确保最大部分的资本仅在市场确认交易两次后才投入。如果交易早期失败,亏损控制在计划仓位的 20%。期望值为正,因为盈利仓位获得全规模,亏损仓位获得最小规模。

函数 pyramid_entry(股票, 关键价格, 计划股数, 账户):
    """
    利弗莫尔的三次试探金字塔序列。
    """
    # 试探 1
    试探1股数 = int(计划股数 * 0.20)
    试探1价格 = 关键价格  # 在关键点突破时入场
    初始止损 = 关键价格 * 0.93  # 关键点下方 7%

    执行买入(股票, 试探1股数, 试探1价格)
    设置止损(股票, 初始止损)

    # 等待确认...
    # 试探 2 — 仅在试探 1 盈利 2-3% 时
    如果 股票.当前价格 >= 试探1价格 * 1.025:
        试探2股数 = int(计划股数 * 0.20)
        试探2价格 = 股票.当前价格
        执行买入(股票, 试探2股数, 试探2价格)
        设置止损(股票, 试探1价格)  # 提高到盈亏平衡

    # 试探 3 — 仅在试探 2 盈利且条件仍然有效时
    如果 股票.当前价格 >= 试探2价格 * 1.025:
        如果 大势仍然看涨() 且 板块仍然领先():
            试探3股数 = int(计划股数 * 0.60)
            试探3价格 = 股票.当前价格
            执行买入(股票, 试探3股数, 试探3价格)
            设置止损(股票, 试探2价格)  # 再次提高止损

5.4 向现有盈利仓加仓的规则(全额持仓后)

一旦建立全仓,利弗莫尔不会在更高价格增加更多股数。金字塔加仓完成。从这一点起,唯一的行为是:

  1. 随着股票创新高向上追踪止损
  2. 如果检测到高潮行为,收紧止损
  3. 当止损被触发或趋势反转时出场

6. 资金管理

6.1 10% 最大亏损规则

利弗莫尔的绝对规则:任何单笔交易不要损失超过交易资本的 10%。中文分析指出这是硬天花板 — 实际目标应该是每笔交易 5-7%,10% 作为灾难止损。

函数 calculate_position_size(账户权益, 入场价格, 止损价格, 最大风险%=0.07):
    每份风险 = 入场价格 - 止损价格
    最大美元风险 = 账户权益 * 最大风险%
    最大股数 = int(最大美元风险 / 每份风险)
    返回 最大股数

6.2 储备资本原则

利弗莫尔从不部署所有资本。中文分析确定了他的标准配置:

活跃交易资本:     总权益的 60%
储备资本:         总权益的 30%(用于加仓/新机会)
绝对储备:         总权益的 10%(永不动用,应急资金)

储备资本有两个目的:

6.3 持仓集中规则

任何时候最大持仓数:           4-6
任何单一持仓的最大资本:        活跃资本的 25%
任何单一板块的最大资本:        活跃资本的 40%
任何时候最小现金储备:          总权益的 10%

6.4 亏损恢复协议

在重大回撤后,利弗莫尔大幅减少持仓规模。中文分析将其编纂为:

函数 adjust_size_after_drawdown(当前权益, 峰值权益, 正常规模):
    亏损% = (峰值权益 - 当前权益) / 峰值权益
    如果 亏损% < 0.10:
        返回 正常规模              # 正常规模
    否则 如果 亏损% < 0.20:
        返回 正常规模 * 0.50       # 一半规模
    否则 如果 亏损% < 0.30:
        返回 正常规模 * 0.25       # 四分之一规模
    否则:
        返回 0                        # 停止交易,转为现金,重新评估

6.5 盈利保护

一旦持仓显示重大未平盈利(20%+),追踪止损被收紧以保护至少一半收益。确切水平取决于股票的波动性和趋势特征。

函数 update_trailing_stop(持仓, 当前价格):
    未平盈% = (当前价格 - 持仓.平均入场) / 持仓.平均入场
    如果 未平盈% >= 0.20:
        # 保护至少 50% 的未平盈利
        最小止损 = 持仓.平均入场 + (当前价格 - 持仓.平均入场) * 0.50
        持仓.止损 = MAX(持仓.止损, 最小止损)
    否则 如果 未平盈% >= 0.10:
        # 保护至少 30% 的未平盈利
        最小止损 = 持仓.平均入场 + (当前价格 - 持仓.平均入场) * 0.30
        持仓.止损 = MAX(持仓.止损, 最小止损)

7. 市场时机把握

7.1 确定大势方向

中文分析识别了利弗莫尔阅读整体市场的方法,作为四个因素的综合评估

  1. 龙头股价格走势: 龙头股是在创新高还是在先前高点失败?龙头股在大盘之前转向。
  2. 板块行为: 多个板块(行业)是在上涨,还是上涨越来越窄?广度恶化信号顶部。
  3. 成交量模式: 成交量在上涨时扩张、下跌时收缩(健康)还是反过来(派发)?
  4. 市场对新闻的反应: 好新闻是产生能维持的反弹,还是市场在好新闻时抛售?后者信号趋势已耗尽。
函数 assess_general_market(龙头股, 板块数据, 市场成交量, 新闻反应):
    龙头股得分 = score_leaders(龙头股)
    广度得分 = score_breadth(板块数据)
    成交量得分 = score_volume_pattern(市场成交量)
    反应得分 = score_news_reactions(新闻反应)

    综合 = (龙头股得分 * 0.30 + 广度得分 * 0.25 +
             成交量得分 * 0.25 + 反应得分 * 0.20)

    如果 综合 > 0.65:
        返回 "看涨"
    否则 如果 综合 < 0.35:
        返回 "看跌"
    否则:
        返回 "不明确"

7.2 牛市的三个阶段

利弗莫尔认识到三个不同阶段,每个阶段有不同的交易含义:

阶段 1 — 积累期(积累期): 聪明钱在买入。公众仍受之前下跌影响。看空。股票筑底,吸筹形态出现,成交量平静。这个阶段奖励反转关键点入场,但风险较高。

阶段 2 — 参与期(参与期): 趋势已确立。盈利在改善。公众开始买入。成交量在上涨时扩张。这是趋势跟随者最安全和最有利可图的阶段。持续关键点丰富。

阶段 3 — 派发期(派发期): 每个人都看涨。股票在下降成交量下创新高。内部人士和聪明钱在向公众卖出。这个阶段产生假突破高潮行为。正确的姿态是开始减少持仓并积极提高止损。

7.3 何时全仓现金

强制现金条件:
- 大势方向不明确
- 市场处于阶段 3(派发)并显示高潮信号
- 发生重大回撤(从峰值权益下跌 >20%)
- 连续 3 笔交易亏损(方法可能不适合条件)
- 你感到情绪受损(愤怒、报复、兴奋)

8. 做空

8.1 做空是长仓的镜像

中文分析在卖空上投入了大量关注,指出利弗莫尔在空头方面赚了一些最大的财富(最著名的是 1907 年和 1929 年)。规则镜像长仓规则,有特定适应。

8.2 做空条件

以下所有必须为真:
1. 大势趋势 = 熊市
2. 目标股票板块/组是最弱的
3. 目标股票是弱势组中的落后者(不是组中最强的)
4. 价格已跌破关键支撑位(反转关键点)
5. 成交量在跌破时扩张
6. 之前的反弹尝试在下降的阻力位失败

8.3 短仓金字塔加仓

同样的三次试探结构适用,但反过来:

做空试探 1: 在支撑关键点跌破时卖出做空 20%
做空试探 2: 如果价格进一步下跌 2-3%,再卖出做空 20%
做空试探 3: 在持续确认时卖出做空剩余 60%
止损:       在被跌破的支撑位(现在成为阻力)上方 + 保证金

8.4 与长仓交易的关键差异

中文分析识别了三个不对称:

  1. 熊市中的反弹比牛市中的下跌更猛烈。 空头必须预期猛烈的反弹,并设置足够宽的止损以避免被震出。
  2. 回补空头更时间敏感。 熊市下跌比牛市上涨发生得更快。盈利积累迅速但可能在单日反弹中消失。在空头上更紧密地追踪止损。
  3. 轧空是真实的且危险的。 如果重仓做空的股票开始在扩张成交量上反弹,立即出场。不要等待止损。

8.5 空头侧高潮

卖出高潮(卖出高潮)标志下跌的结束:

函数 detect_selling_climax(柱, 最近柱, 趋势持续时间):
    是最高成交量 = 柱.成交量 >= MAX(b.成交量 对于 b 在 最近柱中) * 0.95
    是最宽区间 = (柱.高点 - 柱.低点) >= MAX(b.高点 - b.低点 对于 b 在 最近柱中) * 0.9
    跳空低开 = 柱.开盘 < 最近柱[-1].收盘
    反弹收盘 = 柱.收盘 > (柱.高点 + 柱.低点) / 2
    延伸趋势 = 趋势持续时间 >= 30  # 至少 30 天下跌

    返回 (是最高成交量 且 是最宽区间 且
            跳空低开 且 反弹收盘 且 延伸趋势)

当检测到卖出高潮时,立即回补所有空头持仓。


9. 情绪纪律

9.1 交易者的四个敌人

中文分析识别了利弗莫尔的四个心理对手:

恐惧(恐惧): 导致交易者过早了结盈利、避免进入有效形态,或在应该执行止损时冻结。恐惧在最阻止你遵循系统时最危险。

贪婪(贪婪): 导致交易者过度交易、过度杠杆、持有亏损持仓希望恢复,或向已经满规模的持仓加仓。

希望(希望): 最阴险的敌人。希望阻止交易者砍仓。它低语说股票会回来。利弗莫尔说希望应该留给盈利的一方 — 当你有盈利时,希望它继续。当你亏损时,希望没有位置。

无聊(无聊): 导致交易者在没有有效形态时进入持仓,仅仅因为不活跃感觉没有成效。利弗莫尔坚持认为,坐着什么都不动的能力是最稀有和最有价值的交易技能。

9.2 纪律协议

本书编纂了对抗每个敌人的具体行为规则:

协议:反恐惧
- 在入场前预定义每个止损
- 使用限价单执行止损以移除实时决策
- 接受亏损是做生意成本,不是个人失败
- 每月回顾你的胜率和平均盈亏比以建立信心

协议:反贪婪
- 无论信念如何,永不超出持仓规模限制
- 永不向亏损持仓加仓
- 如果你发现自己正在计算潜在盈利,停止并专注于风险
- 大赢后,在下一笔交易减少规模(兴奋损害判断)

协议:反希望
- 使用硬止损,而非心理止损
- 当止损被触发时,立即执行,稍后回顾
- 如果你发现自己合理化为什么应该移动止损,那是止损不应该移动的确认

协议:反无聊
- 即使在不交易时也保持日常程序(市场分析、日志)
- 书面定义你的等待标准并每天回顾
- 将现金视为活跃持仓,而非缺乏活动
- 设置必须满足的最少条件数才能进行任何交易

9.3 亏损后协议

每笔亏损交易后,利弗莫尔强制执行强制冷静期。中文分析建议:

函数 post_loss_protocol(连续亏损数, 最后亏损规模, 账户):
    如果 连续亏损数 == 1:
        # 单次亏损:回顾,日志,恢复正常操作
        等待天数 = 0
        规模倍数 = 1.0
    否则 如果 连续亏损数 == 2:
        # 两次连续:减少规模,放慢
        等待天数 = 1
        规模倍数 = 0.75
    否则 如果 连续亏损数 == 3:
        # 三次连续:显著减少,强制暂停
        等待天数 = 3
        规模倍数 = 0.50
    否则 如果 连续亏损数 >= 4:
        # 四次或更多:停止交易,转为现金,完全重新评估
        等待天数 = 7
        规模倍数 = 0.0  # 在回顾完成前不交易
    返回 等待天数, 规模倍数

10. 常见错误

中文分析编纂了利弗莫尔本人犯下和观察他人犯下的错误,按类别组织:

10.1 入场错误

  1. 在达到关键点之前入场。 预期突破而非等待确认。这是不耐烦的产物,产生更宽止损和更低概率的交易。

  2. 在成交量不足时入场。 没有成交量扩张的关键点突破不可靠。许多失败的交易源于忽视成交量要求。

  3. 逆大势入场。 在熊市中发现"好股票"并说服自己它会逆势。它几乎从不会。

  4. 同时入场过多持仓。 在太多名称上分散注意力和资本,使无法正确管理任何持仓。

10.2 持仓管理错误

  1. 向下摊平。 主要罪行。每向亏损持仓增加的一美元都增加了对市场已拒绝的论点的敞口。

  2. 移动止损以避免被止损。 这是希望伪装成分析。止损是有原因的;移动它使风险框架失效。

  3. 向满仓加仓。 一旦金字塔加仓完成,持仓就是满的。增加更多违反集中限制和风险预算。

10.3 出场错误

  1. 过早了结盈利。 在第一次回调迹象时卖出盈利者,而非等待追踪止损被触发。这封顶了上涨并破坏了系统的正偏度。

  2. 未在止损位出场。 每个系统都产生亏损。拒绝接受它们将小的、可管理的亏损变成威胁账户的回撤。

  3. 根据建议或意见出场。 让别人的观点覆盖你的系统。如果系统说持有,就持有。如果系统说出场,就出场。

10.4 心理错误

  1. 报复交易。 亏损后立即重新入场以"挽回"。这几乎总是导致第二笔亏损,加重损害。

  2. 因无聊而交易。 在没有有效形态时进入持仓,仅仅为了与市场保持联系。

  3. 在交易中途改变方法。 在技术突破时入场,然后在止损时持有,因为基本面论点。选择一种方法并一致遵循它。

  4. 连续盈利后过度自信。 在几次连续盈利后将规模增加到超出规则。下一次亏损,这是不可避免的,将是过大。


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

本示例说明利弗莫尔方法应用于牛市期间假设龙头股,遵循中文分析框架。

阶段 0 — 市场评估

大势: 确认看涨。领先指数在扩张成交量下创新高。广度强劲(80%+ 板块上涨)。我们处于阶段 2(公众参与)。

阶段 1 — 股票选择

板块扫描: 过去 6 个月技术和消费可选是两个最强板块。在技术板块内,股票 A 具有最高相对强度、最快盈利增长(同比 35%),且正在创新 52 周新高。

联动检查: 股票 B(同板块)也接近新高,确认板块强度。

阶段 2 — 关键点识别

股票 A 在从 75 上涨后,在 95 和 102 之间整合了 18 个交易日。整合期间成交量收缩(健康)。关键点是 102(整合区间顶部)。时机质量:强(18 天盘整)。

阶段 3 — 突破和试探 1

第 19 天:股票 A 在成交量为 20 日平均 2.3 倍的情况下收于 103.50。突破确认。

行动:买入试探 1 — 在 103.50 买入 200 股(1000 股目标的 20%)
止损: 95.00(整合低点下方,约入场价下方 8%)
风险: 200 * (103.50 - 95.00) = $1,700

阶段 4 — 首次回踩测试

第 20-23 天:股票 A 回踩至 101.20,在下降成交量下保持在 102 关键位之上。第 24 天:恢复上涨,收于 104.80。

评估:健康的回踩。关键位维持。成交量下降。

阶段 5 — 试探 2

第 26 天:股票 A 收于 106.50(比试探 1 入场高 2.9%)。

行动:买入试探 2 — 在 106.50 买入 200 股(现在已投入 40%)
将止损提高到 103.50(试探 1 入场 = 首批盈亏平衡)
风险:最坏情况,仅在试探 2 上亏损 — 200 * (106.50 - 103.50) = $600

阶段 6 — 试探 3(全额投入)

第 32 天:股票 A 收于 110.00。两批都盈利。大势仍然看涨。技术板块仍然领先。

行动:买入试探 3 — 在 110.00 买入 600 股(现在 100% 投入,1,000 股)
将止损提高到 106.50(试探 2 入场)
总持仓:200 @ 103.50, 200 @ 106.50, 600 @ 110.00
加权平均入场:108.10

阶段 7 — 趋势持有

第 33-60 天:股票 A 上涨至 135.00,途中正常回撤。每次回撤都创新低。止损追踪至最近摆动低点减去少量保证金。

追踪止损进展:
  第 40 天:股票回撤低点 = 118.00 → 止损提高到 117.00
  第 50 天:股票回撤低点 = 126.00 → 止损提高到 125.00
  第 55 天:股票回撤低点 = 130.00 → 止损提高到 129.00

阶段 8 — 出场信号

第 62 天:股票 A 跳空至 138.00,盘中高达 141.00,但在整个上涨期间最高成交量下反转收于 133.50。这是买入高潮。

反应:将止损收紧至 133.00(就在今日收盘下方)

第 63 天:股票 A 开盘于 132.00,跌破 133.00 的止损。

行动:以 133.00 卖出全部 1,000 股
结果:
  200 股:133.00 - 103.50 = +29.50/股 = +$5,900
  200 股:133.00 - 106.50 = +26.50/股 = +$5,300
  600 股:133.00 - 110.00 = +23.00/股 = +$13,800
  总利润:$25,000
  按加权平均入场回报:+23.0%

阶段 9 — 交易后回顾

记录到交易日志:形态、入场理由、金字塔加仓执行、出场信号、每个决策点的情绪状态、什么做得好、什么可以改进。


12. 实施伪代码

12.1 主交易系统

类 Livermore系统:
    """
    利弗莫尔交易方法的完整实施
    由中文分析提炼。
    """

    # 配置
    最大持仓数 = 5
    最大持仓% = 0.25        # 每持仓最多活跃资本的 25%
    最大板块% = 0.40          # 每板块最多 40%
    活跃资本% = 0.60      # 60% 活跃,30% 储备,10% 不可动用
    每笔交易最大风险 = 0.07      # 每笔交易最多权益的 7%
    试探1% = 0.20
    试探2% = 0.20
    试探3% = 0.60
    最小成交量比率 = 1.5         # 突破成交量 >= 1.5 倍平均
    最小整合天数 = 5
    理想整合天数 = 15

    def __init__(self, 总权益):
        self.总权益 = 总权益
        self.活跃资本 = 总权益 * self.活跃资本%
        self.持仓 = []
        self.交易日志 = []
        self.连续亏损 = 0
        self.峰值权益 = 总权益

    def 每日更新(self, 市场数据, 板块数据, 观察列表):
        """
        每日收盘后调用一次。
        这是系统的主循环。
        """
        # 步骤 1:评估大势
        大势 = self.评估市场(市场数据)

        # 步骤 2:管理现有持仓
        对于 持仓 在 self.持仓中:
            self.管理持仓(持仓, 市场数据, 大势)

        # 步骤 3:寻找新机会(仅在条件允许时)
        如果 大势 == "不明确":
            返回  # 什么都不做

        如果 len(self.持仓) >= self.最大持仓数:
            返回  # 已满

        如果 self.连续亏损 >= 4:
            返回  # 暂停中

        # 步骤 4:扫描观察列表寻找关键点突破
        对于 股票 在 观察列表中:
            如果 self.符合入场条件(股票, 大势, 板块数据):
                self.发起试探1(股票, 大势)

    def 评估市场(self, 市场数据):
        """
        综合大势方向评估。
        """
        龙头股得分 = self.评分龙头股(市场数据.龙头股)
        广度得分 = self.评分市场广度(市场数据.板块)
        成交量得分 = self.评分成交量模式(市场数据.指数柱)
        反应得分 = self.评分新闻反应(市场数据.新闻事件)

        综合 = (龙头股得分 * 0.30 + 广度得分 * 0.25 +
                 成交量得分 * 0.25 + 反应得分 * 0.20)

        如果 综合 > 0.65:
            返回 "看涨"
        否则 如果 综合 < 0.35:
            返回 "看跌"
        否则:
            返回 "不明确"

    def 符合入场条件(self, 股票, 大势, 板块数据):
        """
        检查所有入场条件。
        所有必须为真才能发起交易。
        """
        # 条件 1:股票板块在前几名(对于长仓)或后几名(对于短仓)
        如果 大势 == "看涨":
            如果 股票.板块 不在 板块数据.前几名板块(3)中:
                返回 False
        否则 如果 大势 == "看跌":
            如果 股票.板块 不在 板块数据.后几名板块(3)中:
                返回 False

        # 条件 2:股票是板块内的龙头
        如果 非 股票.is_sector_leader():
            返回 False

        # 条件 3:股票在关键点
        关键点 = self.找到关键点(股票)
        如果 关键点 是 None:
            返回 False

        # 条件 4:今天有关键点突破并有成交量
        如果 非 self.is_breakout_today(股票, 关键点):
            返回 False

        # 条件 5:成交量确认
        如果 股票.今日成交量 < 股票.日均成交量20 * self.最小成交量比率:
            返回 False

        # 条件 6:强势收盘(区间上半部分)
        柱 = 股票.今日柱
        如果 柱.高点 == 柱.低点:
            返回 False
        收盘位置 = (柱.收盘 - 柱.低点) / (柱.高点 - 柱.低点)
        如果 收盘位置 < 0.75:
            返回 False

        # 条件 7:板块集中度检查
        板块敞口 = 和(
            p.市值 对于 p 在 self.持仓中 如果 p.板块 == 股票.板块
        )
        如果 板块敞口 >= self.活跃资本 * self.最大板块%:
            返回 False

        返回 True

    def 找到关键点(self, 股票):
        """
        识别股票最近的的关键点。
        返回关键价格或 None。
        """
        柱 = 股票.日线柱

        # 寻找整合形态
        最近高点 = MAX(b.高点 对于 b 在 柱[-40:]中)
        整合柱 = []
        对于 柱 在 reversed(柱[-40:]):
            如果 柱.高点 >= 最近高点 * 0.95:
                整合柱.append(柱)
            否则:
                断开

        如果 len(整合柱) < self.最小整合天数:
            返回 None

        关键价格 = MAX(b.高点 对于 b 在 整合柱中)
        返回 关键价格

    def 发起试探1(self, 股票, 方向):
        """
        进入试探 1 — 初始测试持仓。
        """
        入场价格 = 股票.当前价格

        如果 方向 == "看涨":
            止损价格 = self.找到关键点(股票) * 0.97  # 关键点下方
            每份风险 = 入场价格 - 止损价格
        否则:  # 做空
            止损价格 = self.找到关键点(股票) * 1.03  # 关键点上方
            每份风险 = 止损价格 - 入场价格

        # 基于风险确定仓位规模
        最大风险美元 = self.总权益 * self.每笔交易最大风险
        最大总股数 = int(最大风险美元 / 每份风险)
        试探1股数 = int(最大总股数 * self.试探1%)

        # 执行
        持仓 = Position(
            股票=股票,
            方向=方向,
            计划股数=最大总股数,
            止损=止损价格,
            状态="试探1"
        )
        持仓.add_entry(试探1股数, 入场价格, "试探1")
        self.持仓.append(持仓)

    def 管理持仓(self, 持仓, 市场数据, 大势):
        """
        管理持仓的整个生命周期。
        """
        当前价格 = 持仓.股票.当前价格

        # 首先检查止损(始终)
        如果 持仓.is_stopped(当前价格):
            self.平仓(持仓, 当前价格, "止损触发")
            返回

        # 状态特定管理
        如果 持仓.状态 == "试探1":
            self.管理试探1(持仓, 当前价格, 大势)
        否则 如果 持仓.状态 == "试探2":
            self.管理试探2(持仓, 当前价格, 大势)
        否则 如果 持仓.状态 == "满仓":
            self.管理满仓(持仓, 当前价格)

    def 管理试探1(self, 持仓, 当前价格, 大势):
        """
        决定是否加仓试探 2 或持有。
        """
        首次入场 = 持仓.entries[0]
        如果 持仓.方向 == "看涨":
            盈% = (当前价格 - 首次入场.价格) / 首次入场.价格
        否则:
            盈% = (首次入场.价格 - 当前价格) / 首次入场.价格

        如果 盈% >= 0.025:  # 2.5% 盈利阈值
            试探2股数 = int(持仓.计划股数 * self.试探2%)
            持仓.add_entry(试探2股数, 当前价格, "试探2")
            持仓.止损 = 首次入场.价格  # 提高到盈亏平衡
            持仓.状态 = "试探2"

    def 管理试探2(self, 持仓, 当前价格, 大势):
        """
        决定是否投入全额持仓。
        """
        第二次入场 = 持仓.entries[1]
        如果 持仓.方向 == "看涨":
            盈% = (当前价格 - 第二次入场.价格) / 第二次入场.价格
        否则:
            盈% = (第二次入场.价格 - 当前价格) / 第二次入场.价格

        如果 盈% >= 0.025:
            如果 self.条件仍然有效(持仓, 大势):
                试探3股数 = int(持仓.计划股数 * self.试探3%)
                持仓.add_entry(试探3股数, 当前价格, "试探3")
                持仓.止损 = 第二次入场.价格
                持仓.状态 = "满仓"

    def 管理满仓(self, 持仓, 当前价格):
        """
        追踪止损并观察高潮信号。
        """
        # 更新追踪止损
        柱 = 持仓.股票.日线柱
        最近摆动低点 = find_recent_swing_low(柱, 回溯=10)

        如果 持仓.方向 == "看涨":
            新止损 = 最近摆动低点 * 0.99
            如果 新止损 > 持仓.止损:
                持仓.止损 = 新止损

            # 盈利保护
            未平盈% = (当前价格 - 持仓.平均入场) / 持仓.平均入场
            如果 未平盈% >= 0.20:
                盈利止损 = 持仓.平均入场 + (
                    当前价格 - 持仓.平均入场) * 0.50
                持仓.止损 = MAX(持仓.止损, 盈利止损)

        # 检查高潮
        如果 detect_climax(柱[-1], 柱[-30:], 持仓.方向):
            持仓.止损 = 柱[-1].低点 如果 持仓.方向 == "看涨" \
                否则 柱[-1].高点

    def 平仓(self, 持仓, 出场价格, 原因):
        """
        平仓并更新系统状态。
        """
        盈亏 = 持仓.calculate_pnl(出场价格)

        self.交易日志.append({
            '股票': 持仓.股票.代码,
            '方向': 持仓.方向,
            '入场': 持仓.entries,
            '出场价格': 出场价格,
            '出场原因': 原因,
            '盈亏': 盈亏,
            '盈亏%': 盈亏 / (持仓.平均入场 * 持仓.总股数)
        })

        self.总权益 += 盈亏
        self.活跃资本 = self.总权益 * self.活跃资本%

        如果 盈亏 < 0:
            self.连续亏损 += 1
        否则:
            self.连续亏损 = 0

        如果 self.总权益 > self.峰值权益:
            self.峰值权益 = self.总权益

        self.持仓.remove(持仓)

12.2 持仓状态机

状态:
  观望中    → 识别形态,等待关键点突破
  试探1     → 20% 持仓试水
  试探2     → 40% 已投入,交易确认中
  满仓      → 100% 已投入,持有趋势
  已平仓    → 持仓出场,回顾中

转换:
  观望中 → 试探1:
    触发: 关键点突破 + 成交量 + 强势收盘 + 所有条件满足
    行动: 买入 20%;在关键点下方设置初始止损

  试探1 → 试探2:
    触发: 试探1 盈利 2.5%+
    行动: 再买入 20%;将止损提高到试探1 入场价

  试探1 → 已平仓:
    触发: 止损触发
    行动: 全部卖出;小额亏损(20% 规模)

  试探2 → 满仓:
    触发: 试探2 盈利 2.5%+ 且条件仍然有效
    行动: 买入剩余 60%;将止损提高到试探2 入场价

  试探2 → 已平仓:
    触发: 止损触发
    行动: 全部卖出;接近盈亏平衡或小额亏损

  满仓 → 满仓:
    触发: 在当前止损上方建立新摆动低点
    行动: 提高追踪止损

  满仓 → 已平仓:
    触发: 追踪止损触发 或 检测到高潮
    行动: 全部卖出;记录盈利

  已平仓 → 观望中:
    触发: 日志条目后及任何强制冷静期后
    行动: 恢复扫描

12.3 每日程序算法

def livermore_daily_routine(系统):
    """
    完整的每日工作流程。
    每个交易日下午盘后执行。
    """
    # ---- 阶段 1:记录 ----
    # 更新所有价格记录(利弗莫尔市场关键点)
    对于 股票 在 系统.全集中:
        股票.update_market_key(股票.今日收盘)

    # ---- 阶段 2:评估 ----
    大势 = 系统.评估市场(系统.市场数据)
    打印(f"大势方向: {大势}")

    # ---- 阶段 3:管理 ----
    对于 持仓 在 系统.持仓中:
        系统.管理持仓(持仓, 系统.市场数据, 大势)

    # ---- 阶段 4:扫描 ----
    如果 大势 != "不明确" 且 系统.可以开新持仓():
        候选 = []
        对于 股票 在 系统.观察列表中:
            如果 系统.符合入场条件(股票, 大势, 系统.板块数据):
                候选.append(股票)

        # 按强度排名并进入最好的
        候选.sort(key=lambda s: s.相对强度, reverse=True)
        对于 候选 在 候选[:2]:  # 每天最多 2 个新入场
            系统.发起试探1(候选, 大势)

    # ---- 阶段 5:日志 ----
    系统.写入每日日志(大势)

    # ---- 阶段 6:风险检查 ----
    系统.验证所有止损到位()
    系统.验证集中度限制()
    回撤 = (系统.峰值权益 - 系统.总权益) / 系统.峰值权益
    如果 回撤 > 0.20:
        打印("警告:回撤超过 20%。考虑减少所有持仓。")

13. 关键语录

以下语录捕捉了利弗莫尔交易哲学的精髓,如中文分析中所强调的:

关于耐心:

"大钱不在买入或卖出中,而在等待中。"

"一个人需要很长时间才能学会他错误的所有教训。他们说一切都有两面。但股票市场只有一面,不是牛市面或熊市面,而是正确的一面。"

关于大势:

"没有股票是孤岛。每只股票都在大势的海洋中游泳。即使最强的鱼也不能逆潮游泳太久。"

关于砍仓:

"我从不因市场而发脾气。对市场生气是无用的。它不是个人的。市场不知道你的存在。当你错误时,唯一的补救办法是通过出场来纠正。"

"卖出显示你亏损的,持有显示你盈利的。"

关于向下摊平:

"在所有投机失误中,很少有比试图平均化亏损游戏更大的错误。永远卖出显示你亏损的,持有显示你盈利的。"

关于关键点:

"每当我有耐心等待市场到达我所说的关键点才开始交易,我总是赚钱的。"

关于时机:

"市场中万物皆有时。有买入之时,有卖出之时,也有钓鱼之时。"

关于自力更生:

"一个人必须相信自己和他的判断,如果他指望以这个游戏为生的话。这就是为什么我不相信建议。"

关于纪律:

"投机者的主要敌人总是从内部烦扰。伴随人性的是希望和恐惧。在投机中,当市场对你不利时,你希望每一天都是最后一天——你会损失比你应该的更多。当市场对你有利时,你恐惧第二天会夺走你的利润——你出来得太早。"

关于简单性:

"华尔街没有新东西。因为投机像山丘一样古老。无论今天在股票市场发生什么,以前发生过,以后还会发生。"

关于时间要素:

"仅仅知道买什么是不够的。你必须知道什么时候买。仅仅知道什么时候买是不够的。你必须知道什么时候卖。而要卖出,你必须知道什么时候坐着不动。"

从亏损中学习:

"每一次亏损都教导一些东西,但只有你愿意被教导时。拒绝研究亏损的投机者注定重复它们。"


规范完。