Dave Landry波段交易——完整实施方案规范

基于David Landry,Dave Landry on Swing Trading (2000)


目录

  1. 概述
  2. 波段交易理念
  3. 趋势识别
  4. 回调入场——核心方法
  5. 蝴蝶结形态
  6. 2/20 EMA突破
  7. 动量入场
  8. 跳空策略
  9. 板块分析
  10. 资金管理
  11. 等待形态的重要性
  12. 交易管理
  13. 常见错误
  14. 实现伪代码
  15. 关键语录

1. 概述

Dave Landry是一位交易员、教育家,DaveLandry.com创始人,自1990年代以来一直活跃于波段交易的交易和教学。他的方法以其简洁性、趋势跟随回调入场的强调,以及坚持最好的交易是来找你的——而不是你去找的——这一理念而著称。

Dave Landry on Swing Trading (2000) 是一本系统波段交易的实践指南。与许多列举数十种形态和指标的技术分析书籍不同,Landry专注于少数高概率形态,在趋势识别、入场时机和风险管理的纪律框架内执行。该书反映了交易成功不是来自找到完美的指标或形态,而是来自用纪律和耐心应用简单、稳健的方法论这一理念。

1.1 什么是波段交易?

波段交易处于日内交易和仓位交易之间的中间地带:

维度 日内交易 波段交易 仓位交易
持仓周期 分钟到小时 2-10天 每周到每月
时间投入 全职,市场时间内 兼职,盘后扫描 定期审视
交易次数 每天多次 每周2-5次 每月2-5次
每笔利润 小(0.5-2%) 中(3-10%) 大(10-30%+)
主要时间框架 日内(1分钟至15分钟) 日线 周线
分析重点 盘口阅读,Level II 图表形态,趋势 基本面+技术面

波段交易对于有全职工作的交易者来说是理想的,因为分析是在市场时间之外完成的,订单在开盘前下达,仓位基本不需要日内监控。

1.2 Landry的核心原则

  1. 顺应趋势交易。 永远不要对抗 prevailing 方向。
  2. 在回调时入场。 当趋势市场暂时回调时买入。
  3. 保持简洁。 几个可靠的形态比一百个平庸的更有价值。
  4. 首先管理风险。 每笔交易必须在入场前有预定义的止损。
  5. 等待形态。 市场不欠你每天的交易。
  6. 让板块确认。 个股随板块移动;在强势板块中交易股票。

2. 波段交易理念

2.1 为什么是趋势和回调

Landry的方法论建立在两个经验观察之上:

观察1:趋势持续。 处于趋势中的市场倾向于继续趋势。处于强势上涨趋势中的股票继续上涨的可能性高于反转。这不是推测,而是统计数据——动量是金融市场中记录最充分的现象之一。

观察2:趋势不是直线移动的。 即使是最强的趋势也会经历暂时回调,因为短期交易者获利了结,市场暂停整理收益。这些回调为波段交易者创造了最佳入场点。

这两个观察的结合产生了核心策略:识别趋势股票,等待回调,在趋势恢复时入场,在趋势显示结束迹象时出场

2.2 优势

波段交易者的优势来自:


3. 趋势识别

3.1 视觉趋势评估

Landry喜欢简单的视觉评估而不是复杂指标:

上涨趋势特征:

下降趋势特征:

横盘(不交易):

3.2 均线配置

Landry使用三条均线作为主要趋势过滤器:

做多趋势确认: 10 EMA > 20 EMA > 50 SMA,且都在上升。这意味着短期、中期和长期动量都向上对齐。这是做多波段交易的理想环境。

做空趋势确认: 10 EMA < 20 EMA < 50 SMA,且都在下降。所有时间框架的动量都向下对齐。

3.3 ADX作为趋势强度确认

Landry使用平均方向指数(ADX)作为次要确认:

ADX测量趋势强度,不管方向。ADX上升意味着趋势(无论是上涨还是下跌)在加强。ADX下降意味着趋势在减弱,不管价格是上涨还是下跌。


4. 回调入场——核心方法

4.1 回调的组成

上涨趋势中的回调是暂时下跌:

4.2 回调入场标准

Landry的回调入场要求以下全部

  1. 趋势确认。 10 EMA > 20 EMA > 50 SMA,且都在上升。
  2. 回调深度。 价格已回调至或接近20日均线。在非常强势的趋势中,可以接受浅回调(至10日均线)。
  3. 回调性质。 回调发生在成交量下降和/或由相对窄幅K线组成。这表明有序的获利了结,不是趋势反转。
  4. 形态K线。 显示回调可能结束的K线:反转K线(锤子、看涨吞噬)、波幅收窄,或内包K线。
  5. 无上方阻力。 价格不应直接位于可能压制上涨的 major 阻力位下方。

4.3 入场机制

4.4 完美回调

Landry的理想回调具有以下特征:


5. 蝴蝶结形态

5.1 什么是蝴蝶结

蝴蝶结是Landry的标志性形态——一种均线交叉形态,标志着从回调到趋势恢复的转换。它的名字来源于三条均线收敛然后发散时的视觉外观,类似于蝴蝶结。

5.2 形态结构

看涨蝴蝶结:

  1. 收敛阶段。 在回调期间,10 EMA、20 EMA和50 SMA收敛——回调将短期均线拉向长期均线,它们聚在一起。

  2. 交叉。 三条均线在一根窄幅K线内交叉,最好在1-2天内。10 EMA交叉至20 EMA下方(这是回调正在进行)。

  3. 发散阶段。 随着趋势恢复,10 EMA交叉回20 EMA上方,两者都开始从50 SMA向上发散。三条均线开始展开,恢复正确的趋势排列。

入场: 当10 EMA交叉回20 EMA上方且价格收于两者之上时买入。或者,在完成蝴蝶结的K线高点突破时买入。

止损: 在收敛区域低点(回调最低点)下方。

5.3 看跌蝴蝶结

做空的镜像:

  1. 三条均线在下降趋势中的上涨期间收敛。
  2. 10 EMA短暂交叉至20 EMA上方。
  3. 随着下降趋势恢复,10 EMA交叉回20 EMA下方。
  4. 当10 EMA交叉至20 EMA下方且价格收于两者之下时做空。

5.4 蝴蝶结过滤

并非所有蝴蝶结都相同。Landry建议过滤质量:


6. 2/20 EMA突破

6.1 形态描述

2/20 EMA突破是Landry最简单和最有效的形态之一。它识别已回调至20日均线且正在恢复趋势的股票。

形态要求:

  1. 股票处于明确上涨趋势(高于50 SMA,所有均线上升)。
  2. 价格已回调至或略低于20日均线。
  3. 一根K线创出2日低点(当前K线的低点低于前2根K线的低点)。这是回调的最后一次洗盘。
  4. 入场:在2日低点K线高点上方放置买入止损。

6.2 为什么有效

2/20 EMA突破有效因为:

6.3 变体


7. 动量入场

7.1 何时使用动量入场

虽然Landry的主要方法是回调入场,但他承认一些最强势的走势以动量突破开始——价格以强劲成交量飙升至新高,没有可用的回调入场。

动量入场适用于:

7.2 突破入场机制

7.3 后续日

Landry强调突破K线本身是不够的。后续日——突破后的第二天——至关重要:


8. 跳空策略

8.1 跳空类型

Landry按上下文和重要性对跳空进行分类:

突破跳空: 发生在新趋势开始时,通常从整理形态中。特点是非常高的成交量。这些跳空通常不被回补,代表最强的跳空信号。

持续跳空(测量跳空): 发生在强势趋势中途。确认趋势强度,可用于估计剩余趋势潜力(从起点到跳空测量趋势,投影相同距离)。

衰竭跳空: 发生在趋势末期,当最后买家(上涨趋势中)或最后卖家(下降趋势中)做出最后绝望的努力时。常伴有高潮成交量。这些跳空通常会迅速被回补。

普通跳空: 在交易区间内随机发生。没有特别意义。通常在几天内被回补。

8.2 交易跳空策略

跳空并持有(持续):

跳空回补(反转):

跳空回调:

8.3 跳空过滤

并非所有跳空都可交易。Landry建议过滤:


9. 板块分析

9.1 为什么板块重要

Landry强调个股选择次于板块选择。研究一致表明,股票价格运动的很大一部分可归因于其板块,而非公司特定因素:

这意味着在弱势板块中买最好的股票,远不如在强势板块中买一般的股票。板块分析不是可选的;它是选股的基础。

9.2 板块选择方法

自上而下方法:

  1. 评估大盘。 它是上涨、下跌还是横盘?如果下跌或横盘,减少敞口或转向现金。没有板块选择能克服熊市。

  2. 按相对强度对板块排名。 比较过去1、3和6个月的板块表现。专注于在所有时间段排名在前四分位的板块。避免在后四分位的板块。

  3. 在强势板块中找强势股票。 在选定的板块内,对个股应用回调入场标准(趋势确认、回调至均线、形态K线)。

9.3 板块轮动意识

板块在经济周期中以某种可预测的模式轮动:

理解经济在周期中的位置有助于预测哪些板块将领先和哪些将落后。这不是时机工具而是偏向工具——它告诉你把注意力集中在哪里。


10. 资金管理

10.1 生存基础

Landry认为资金管理是交易中最重要的方面:

"我知道资金管理糟糕的交易者,虽然形态识别能力平庸,却能持续赚钱。我也见过分析能力出色却因资金管理糟糕而爆仓的交易者。"

10.2 仓位计算

Landry的仓位计算方法简单直接:

  1. 定义每笔交易的最大损失。 通常是总交易资本的1-2%。
  2. 确定止损距离。 基于图表(在回调低点下方,形态K线下方等)。
  3. 计算仓位规模。 仓位规模 = 最大损失 / 止损距离。

示例:

10.3 组合风险限制

除了单个仓位计算,Landry设定组合级风险限制:

10.4 风险/回报要求

在任何交易入场前,计算风险/回报比率:


11. 等待形态的重要性

11.1 耐心作为优势

Landry反复回到耐心主题。波段交易者最大的优势是等待的能力——坐在现金中,什么都不做,直到市场以一种银盘呈现的高概率形态出现。这也是交易者最大的心理挑战。

11.2 何时不交易

11.3 等待游戏

Landry估计理想的波段交易者有30-50%的时间处于现金中。这对大多数交易者来说是错误的,他们把活动等同于生产力。但数学很清楚:如果你一年做100笔交易,胜率40%,风险/回报2:1,你是盈利的。如果你通过强迫交易一年做200笔交易,你的胜率降至30%,你就会亏损——尽管"活跃"了两倍。

11.4 入场前检查清单

在放置任何交易前,Landry建议这个 mental 检查清单:

  1. 大盘是否支持这个交易方向?
  2. 板块是否确认?
  3. 个股是否符合所有形态标准?
  4. 风险/回报比率至少是2:1吗?
  5. 仓位规模适合我的风险限制吗?
  6. 我是在交易形态,还是在交易我的情绪?

如果任何答案是"否"或"我不确定",不要交易。


12. 交易管理

12.1 初始止损放置

每笔交易以止损开始。Landry的止损放置规则:

止损应放置在如果达到则交易论点无效的水平。它永远不应该是任意的(例如,"我用5%止损")——它必须基于图表结构。

12.2 移动止损

随着交易朝有利方向移动,止损被移动以保护利润:

12.3 盈利目标

Landry使用目标方法的组合:

12.4 部分了结

Landry建议分批了结盈利交易:


13. 常见错误

13.1 入场错误

  1. 逆势交易。 在下降趋势中买回调或在上涨趋势中做空反弹。趋势是你的朋友直到最后。
  2. 在形态完成前入场。 预期触发而不是等待。回调可能继续比预期更远。
  3. 忽视大盘。 不考虑市场环境交易个股。即使最好的股票在熊市中也挣扎。
  4. 追逐已延伸的走势。 买入已从回调入场点上涨很多的股票。风险/回报差。
  5. 忽视板块上下文。 无论个股图表看起来多好,在弱势板块中买入股票。

13.2 管理错误

  1. 移动止损以避免被止损。 如果达到止损,交易论点就是错的。扩大止损是否认,不是分析。
  2. 过早获利了结。 削减盈利仓位"锁定利润"而让亏损仓位奔跑。这颠覆了使波段交易有利可图的有利风险/回报。
  3. 加仓亏损。 在亏损波段交易中摊平是灾难的处方。如果交易错了,出局。
  4. 根本不用止损。 "我会看着它,如果走太远就出局"不是计划。是祈祷。

13.3 心理错误

  1. 过度交易。 当形态缺失时强迫交易,由无聊、急躁或"制造些事情发生"的欲望驱动。
  2. 报复交易。 亏损后立即进入另一笔交易来"挽回"损失。这笔交易由情绪驱动,不是分析。
  3. 每笔交易风险过大。 超过1-2%风险限制因为你"真的很有信心"。信心与结果无关。
  4. 不保持交易日志。 没有记录,你无法识别错误模式或改进你的流程。
  5. 连续亏损后改变系统。 每个系统都有连续亏损。在回撤期间放弃合理方法的是波段交易者最常见的错误。

14. 实现伪代码

14.1 趋势评估

function assessTrend(bars):
    ema10 = calculateEMA(bars.close, 10)
    ema20 = calculateEMA(bars.close, 20)
    sma50 = calculateSMA(bars.close, 50)
    adx = calculateADX(bars, 14)

    current_price = bars[-1].close
    latest_ema10 = ema10[-1]
    latest_ema20 = ema20[-1]
    latest_sma50 = sma50[-1]

    // 检查均线排列
    if latest_ema10 > latest_ema20 > latest_sma50:
        ma_alignment = "BULLISH"
    elif latest_ema10 < latest_ema20 < latest_sma50:
        ma_alignment = "BEARISH"
    else:
        ma_alignment = "MIXED"

    // 检查均线斜率
    ema20_slope = (ema20[-1] - ema20[-5]) / ema20[-5]
    sma50_slope = (sma50[-1] - sma50[-5]) / sma50[-5]

    if ema20_slope > 0 and sma50_slope > 0:
        slope_direction = "UP"
    elif ema20_slope < 0 and sma50_slope < 0:
        slope_direction = "DOWN"
    else:
        slope_direction = "FLAT"

    // ADX检查
    trend_strength = "STRONG" if adx[-1] > 25 else
                     "MODERATE" if adx[-1] > 20 else "WEAK"

    // 综合
    if ma_alignment == "BULLISH" and slope_direction == "UP":
        trend = UPTREND
    elif ma_alignment == "BEARISH" and slope_direction == "DOWN":
        trend = DOWNTREND
    else:
        trend = NO_TREND

    return TrendAssessment(trend, trend_strength, ma_alignment)

14.2 回调检测与入场

function detectPullbackSetup(bars, trend):
    if trend.direction != UPTREND:
        return None

    ema20 = calculateEMA(bars.close, 20)
    current_bar = bars[-1]

    // 检查价格是否已回调至20 EMA
    distance_to_ema20 = (current_bar.low - ema20[-1]) / ema20[-1]

    if distance_to_ema20 > 0.02:  // 仍在20 EMA上方太远
        return None
    if distance_to_ema20 < -0.05:  // 低于太多——回调可能太深
        return None

    // 检查回调性质:成交量下降
    recent_up_bars = [b for b in bars[-10:] if b.close > b.open]
    recent_down_bars = [b for b in bars[-10:] if b.close <= b.open]
    pullback_volume = average([b.volume for b in recent_down_bars])
    trend_volume = average([b.volume for b in recent_up_bars])

    if pullback_volume > trend_volume:
        return None  // 卖盘与买盘一样强——不是健康回调

    // 检查形态K线(窄幅,接近20 EMA)
    avg_range = average(bars[-20:].range)
    if current_bar.range < avg_range * 0.75:
        setup_quality = "HIGH"  // 窄幅 = 整理完成
    else:
        setup_quality = "MODERATE"

    // 定义入场、止损和目标
    entry = current_bar.high + 0.01  // 在形态K线高点上方买入止损
    stop = min(bars[-5:].low) - 0.01  // 回调低点下方
    risk = entry - stop
    target1 = entry + risk * 2  // 2:1 R:R
    target2 = entry + risk * 3  // 3:1 R:R

    if risk / entry > 0.05:  // 风险 > 入场价的5%——太宽
        return None

    return PullbackSetup(
        entry=entry, stop=stop,
        target1=target1, target2=target2,
        risk_reward=2.0,
        quality=setup_quality
    )

14.3 蝴蝶结检测

function detectBowTie(bars):
    ema10 = calculateEMA(bars.close, 10)
    ema20 = calculateEMA(bars.close, 20)
    sma50 = calculateSMA(bars.close, 50)

    // 寻找收敛然后发散
    for i in range(len(bars) - 10, len(bars) - 3):
        // 检查收敛:三条均线在紧凑区间内
        spread = max(ema10[i], ema20[i], sma50[i]) - min(ema10[i], ema20[i], sma50[i])
        avg_price = bars[i].close
        relative_spread = spread / avg_price

        if relative_spread < 0.015:  // 均线在彼此的1.5%以内
            // 检查之前的看跌交叉(10 EMA跌破20 EMA)
            had_bearish_cross = False
            for j in range(i-5, i+1):
                if ema10[j] < ema20[j]:
                    had_bearish_cross = True

            // 检查随后的看涨再交叉
            has_bullish_recross = False
            for j in range(i, min(i+5, len(bars))):
                if ema10[j] > ema20[j] and had_bearish_cross:
                    has_bullish_recross = True

            if had_bearish_cross and has_bullish_recross:
                // 蝴蝶结确认
                convergence_low = min(bars[i-2:i+3].low)
                entry = bars[-1].high + 0.01
                stop = convergence_low - 0.01

                return BowTieSignal(
                    type="BULLISH_BOW_TIE",
                    convergence_date=bars[i].date,
                    entry=entry,
                    stop=stop,
                    risk=entry - stop
                )

    return None

14.4 仓位计算器

function calculatePositionSize(account_equity, risk_percent, entry, stop):
    max_risk_dollars = account_equity * risk_percent  // 例如,100,000 * 0.01 = 1,000
    risk_per_share = abs(entry - stop)

    if risk_per_share == 0:
        return 0  // 无效形态

    shares = floor(max_risk_dollars / risk_per_share)
    position_value = shares * entry

    // 检查仓位规模限制
    max_position_pct = 0.20  // 单仓位最多20%资本
    if position_value > account_equity * max_position_pct:
        shares = floor(account_equity * max_position_pct / entry)

    return PositionSize(
        shares=shares,
        position_value=shares * entry,
        risk_dollars=shares * risk_per_share,
        risk_percent_of_equity=(shares * risk_per_share) / account_equity
    )

15. 关键语录

"最好的交易是来找你的。永远不要去寻找交易。如果你眯着眼睛看图表才能看到形态,它就不在那里。"

"波段交易不是关于正确。而是关于管理风险。如果你正确管理风险,40%的胜率就绰绰有余。"

"趋势是你的朋友直到最后。大多数交易者亏损是因为他们试图摸顶和抄底,而不是顺着明显的趋势方向交易。"

"波段交易者最大的优势是能够无所事事的能力。市场不需要你每天参与。"

"仓位计算不性感,但它决定了交易者生存与否的差异。你可能有世界上最好的入场,但如果仓位计算错误,仍然会爆仓。"

"我宁愿错过交易也不愿强迫交易。错过的交易不会让你付出代价。强迫的交易会让你付出金钱。"

"上涨趋势中的回调不是卖出的理由。这是买入的理由——只要你等待回调完成。"

"板块分析不是可选的。你不会只因为你的船造得好就驶入飓风。不要因为图表看起来好就在弱势板块中买股票。"

"止损不是你的敌人。它是你的保险单。你进入的每笔没有止损的交易都是等待发生的事故。"

"大多数交易者在入场上花90%的时间,在出场上花10%。应该反过来。入场的让你参与游戏。出场决定你输赢。"

"如果你持续亏损,问题不是市场。问题是你自己。要么你的方法论有缺陷,要么你的执行不守纪律,要么你的风险管理不足。修复一个,其他的往往会跟着。"


本规范系统化了Dave Landry的波段交易方法论。其核心理念优雅地简洁:识别趋势股票,耐心等待回调至均线支撑,在趋势恢复时以紧密风险和有利回报潜力入场,并用移动止损管理交易。蝴蝶结形态和2/20 EMA突破提供具体的、可重复的入场触发。板块分析确保个股选择得到更广泛市场力量的支持。资金管理——仓位计算、风险限制和组合热度——确保在不可避免的连续亏损中生存。而最重要的是,等待形态而不是强迫交易的纪律,是将盈利波段交易者与大多数失败者区分开来的优势。