基于 John Piper 著,《交易之道》(1999) 中文书名:金融交易圣经
一套完整的交易方法论,涵盖交易者的整个旅程——从制定交易计划、系统设计到资金管理和心理掌控。Piper 将交易成功组织为五层金字塔:计划、方法、资金管理、心理学和纪律。
John Piper 的核心论点是:交易成功 80% 靠心理学和资金管理,20% 靠方法。 大多数有抱负的交易者将 90% 的时间用于寻找"完美系统",几乎不花时间在真正决定成败的领域。
"交易之道不是一种方法,而是一个过程。这个过程会引导你找到属于自己的交易方式。"
Piper 将交易成功的组成部分组织为一个五层金字塔。每一层支撑着它上面的一层。
┌──────────┐
│ 纪律 │ ← 第五层:顶石
├──────────┤
│ 心理学 │ ← 第四层:情绪掌控
├──────────┤
│ 资金 │ ← 第三层:资本保全
│ 管理 │
├──────────┤
│ 方法 │ ← 第二层:入场/出场规则
├──────────┤
│ 计划 │ ← 第一层:基础
└──────────┘
大多数交易者失败是因为他们从第二层开始(寻找方法),从未建立第一、三、四、五层。
完整的交易计划是一份书面文档(Piper 坚持书面而非头脑中的),涵盖:
交易计划模板:
1. 个人评估
- 我为什么要交易?(目标、动机)
- 我的风险资本是多少?(可以承受损失的资金)
- 我的时间投入是多少?(每天/每周小时数)
- 我的性格类型是什么?(耐心/不耐心,关注细节/宏观)
- 我的优势和劣势是什么?
2. 市场选择
- 我将交易哪些市场?(股票、期货、外汇、期权)
- 为什么选择这些市场?(波动性、流动性、熟悉度)
- 什么时间框架?(日内、日线、周线)
3. 方法规范
- 入场规则(具体、定量)
- 出场规则(具体、定量)
- 仓位规模规则
- 最大同时持仓数
4. 资金管理规则
- 每笔交易最大风险(占资本的百分比)
- 每日最大风险
- 停止前的最大回撤
- 金字塔加仓/减仓规则
5. 心理规则
- 开市前准备流程
- 情绪状态规则(焦虑、愤怒、兴奋时该怎么做)
- 每日最大交易小时数
- 亏损后强制休息
6. 绩效回顾
- 我将如何以及何时回顾绩效?
- 我将跟踪哪些指标?
- 我如何知道计划需要更改?
交易系统必须具备:
交易系统 = {
形态: 定义潜在交易机会的条件
入场: 触发交易的具体事件
止损: 交易以亏损平仓的价格水平
目标: 获利了结的价格水平(或追踪止损规则)
仓位: 基于风险参数交易多少
}
Piper 将趋势跟踪描述为最稳健的方法之一:
趋势跟踪系统(基础版):
形态: 价格在 200 日均线上方(上升趋势)
入场: 价格回调至 50 日均线并反弹(在高于前一日高点收盘时买入)
止损: 在近期波段低点下方
目标: 用 3 倍 ATR 追踪止损
或者(突破变体):
形态: 价格盘整 20+ 天(低波动率)
入场: 突破 20 日高点
止损: 在 20 日低点下方(或入场价下方 2 倍 ATR)
目标: 用 2 倍 ATR 止损追踪,让盈利奔跑
均值回归系统(基础版):
形态: 股票处于长期上升趋势(在 200 日均线上方)
入场: RSI(2) 跌破 10(极度短期超卖)
止损: 固定百分比止损(入场价下方 5%)
目标: 收盘高于 5 日均线(均值回归目标)
突破系统(Donchian 通道):
形态: 计算 20 日高点和 20 日低点通道
入场: 当价格收于 20 日高点上方时买入
止损: 在 10 日低点下方(或 2 倍 ATR)
目标: 当价格收于 10 日低点下方时退出(或 20 日低点)
| 指标 | 定义 | 良好 | 优秀 |
|---|---|---|---|
| 胜率 | 盈利交易的百分比 | >40% | >55% |
| 收益风险比 | 平均盈利 / 平均亏损 | >1.5 | >2.5 |
| 利润因子 | 总盈利 / 总亏损 | >1.5 | >2.5 |
| 期望值 | (胜率 x 平均盈利) - (败率 x 平均亏损) | >0 | >1R |
| 最大回撤 | 最差的峰值到谷值下降 | <25% | <15% |
| 夏普比率 | 风险调整后收益 | >1.0 | >2.0 |
Piper 认为资金管理是长期交易成功最关键的决定因素:
"赢家交易者和输家交易者的区别不在于他们使用的方法,而在于他们如何管理资金。"
最广泛推荐的方法。每笔交易承担固定百分比的资本风险。
函数 calculate_position_size(capital, risk_pct, entry, stop):
risk_per_share = ABS(entry - stop)
dollar_risk = capital * risk_pct
position_size = FLOOR(dollar_risk / risk_per_share)
RETURN position_size
示例:
资本 = $100,000
每笔交易风险 = 1% = $1,000
入场价格 = $50
止损 = $48
每份风险 = $2
仓位 = $1,000 / $2 = 500 股
推荐风险限制:
每笔交易风险:
保守: 资本的 0.5%
中等: 资本的 1.0%
激进: 资本的 2.0%
最大: 资本的 3.0%(绝不超过)
总开放风险:
保守: 资本的 3%
中等: 资本的 6%
激进: 资本的 10%
最大: 资本的 15%
每日亏损限制:
如果日亏损超过资本的 3%,当日停止交易
回撤断路器:
如果回撤超过 10%,将仓位规模减少 50%
如果回撤超过 20%,停止交易——审查系统和计划
对于那些想要从数学上优化赌注大小的人:
凯利 % = W - [(1 - W) / R]
其中:
W = 胜率(例如,55% 胜率 = 0.55)
R = 收益风险比(例如,2:1 = 2.0)
示例:
凯利 % = 0.55 - [(1 - 0.55) / 2.0]
凯利 % = 0.55 - 0.225 = 0.325 (32.5%)
Piper 警告:绝不要使用全凯利。 在实践中使用半凯利或四分之一凯利,因为:
金字塔加仓(追加盈利股):
入场 1:计划仓位的 50% 在初始信号
入场 2:计划仓位的 30% 当走势有利时(确认)
入场 3:计划仓位的 20% 在进一步确认
规则:绝不在亏损仓上补仓。只在盈利仓上加仓。
金字塔减仓(部分获利):
出场 1:在 1R 盈利时平掉 33% 的仓位(保证小盈利)
出场 2:在 2R 盈利时平掉 33% 的仓位
出场 3:在追踪止损时平掉 33% 的仓位(让最后三分之一奔跑)
Piper 确定了交易的核心心理挑战:
"交易是你试图赚取的最难的容易钱。"
困难不在于智力——好系统的规则很简单。困难在于情绪执行——当你的情绪对你尖叫着做相反的事情时,遵循简单的规则。
1. 恐惧
表现:犹豫入场、过早平仓、扩大止损
解药:预先定义的规则机械执行。小仓位。
2. 贪婪
表现:过大仓位、移除止损、在亏损仓上加仓
解药:固定每笔交易风险。书面资金管理规则。
3. 希望
表现:持有亏损股("它会回来的")、忽视止损
解药:自动执行的硬止损。没有自主裁量覆盖。
4. 愤怒/报复
表现:亏损后"报复交易"、增加仓位以恢复
解药:每日亏损限制。连续亏损 3 次后强制休息。
5. 兴奋
表现:盈利后过度交易、感觉不可战胜、冒险
解药:无论近期结果如何,每笔交易都遵循相同规则。
Piper 借鉴运动心理学:
在每个交易日前:
市场前心理流程(15 分钟):
1. 回顾交易计划(5 分钟)
- 阅读你的规则。将其内化。
2. 可视化场景(5 分钟)
- 想象一笔亏损交易。看到自己冷静地止损。
- 想象一笔盈利交易。看到自己在目标位获利。
- 想象混乱的市场。看到自己置身事外。
3. 设定意图(5 分钟)
- "今天我将每笔交易都遵循我的系统。"
- "我今天不是要赚钱。我是在努力交易好。"
回撤是最终的心理测试。Piper 的框架:
如果回撤 < 5%:
→ 正常。继续以全仓位交易。
→ 回顾交易以确保系统正在被遵循。
如果回撤 5-10%:
→ 将仓位减少至正常的 75%。
→ 增加回顾频率(每日日志)。
→ 检查:系统坏了吗,还是这只是正常变异?
如果回撤 10-15%:
→ 将仓位减少至正常的 50%。
→ 休息 1 天不交易。
→ 全面系统审查。
如果回撤 > 15%:
→ 停止交易。
→ 全面系统审计。
→ 模拟交易直到信心恢复。
→ 在系统显示出积极的模拟结果之前,不要恢复实盘交易。
纪律是在心理困难时始终如一地执行计划、方法和资金管理规则的能力。
有纪律的交易者:
- 接受每个信号,包括连续亏损之后的信号
- 在预定止损点止损——没有例外
- 不会"给交易留空间"而移动止损
- 不会在亏损仓上加仓
- 不会在连胜后增加规模
- 不会因为"感觉不对"而跳过信号
- 每笔交易、每天都遵循计划,毫无偏离
纪律不是意志力——它是通过结构建立的习惯:
交易前清单:
□ 这笔交易是否符合我的交易计划?
□ 形态定义清晰吗(不模糊)?
□ 我是否根据我的风险规则计算了仓位?
□ 我在入场前是否设置了止损?
□ 我的盈利目标或追踪止损规则是否定义?
□ 我是否在我的最大开放风险限制内?
□ 我是否情绪中立(不愤怒、不兴奋、也不绝望)?
□ 我是否有充足的睡眠并且思路清晰?
如果任何框未勾选 → 不交易
将你的性格匹配到方法:
耐心 + 容忍亏损 → 趋势跟踪
活跃 + 果断 → 波段交易
逆向 + 统计 → 均值回归
风险寻求 + 爆发风格 → 突破交易
没有"最好"的方法。最好的方法是你能够
在数千笔交易中始终如一执行的方法。
Piper 描述了交易者的典型演变:
"大多数交易者从未超越第三阶段。他们整个职业生涯都在寻找完美的系统,从未找到——因为它不存在。"
回测协议:
1. 用没有歧义的规则定义——计算机应该能够执行它们。
2. 使用样本外数据进行验证(在数据 A 上开发,在数据 B 上测试)。
3. 包含交易成本和滑点。
4. 在多种市场条件下测试(牛市、熊市、横盘)。
5. 在多个时间段测试(至少 10 年)。
6. 使用 walk-forward 分析(滚动开发 + 测试窗口)。
模拟交易协议:
时间:最短 3-6 个月
规则:
- 交易每个信号——不挑选
- 在日志中记录每笔交易
- 完全遵循所有资金管理规则
- 在情感上将模拟资金视为真钱(困难但必要)
毕业标准:
- 100+ 笔交易的正期望值
- 最大回撤在可接受范围内
- 交易者在 >95% 的信号上遵循系统
实盘交易协议(第一阶段):
时间:3-6 个月
仓位规模:预期正常规模的 25-50%
规则:
- 完全按照模拟交易的方式遵循系统
- 每笔交易都记日志
- 每月绩效回顾
毕业标准:
- 结果与模拟交易一致(没有显著恶化)
- 交易者在真实资金压力下保持纪律
- 通过日志回顾验证情绪稳定
市场前(开盘前 30-60 分钟):
1. 回顾隔夜动态(新闻、期货)
2. 回顾未平仓合约(止损、目标、状态)
3. 扫描/筛选新形态
4. 心理准备流程(可视化)
5. 完成交易前清单
交易时段:
1. 只执行计划好的交易
2. 监控未平仓合约
3. 在日志中记录所有执行
4. 不要进行未计划的交易
5. 每 2 小时休息一次(至少远离屏幕 10 分钟)
市场后(收盘后 30 分钟):
1. 在日志中记录所有交易详情
2. 计算当日盈亏
3. 回顾:我是否遵循了我的计划?
4. 确定教训(什么做得好,什么可以改进)
5. 为下一时段做准备(更新观察列表、设置警报)
每周回顾(周末,1-2 小时):
1. 计算每周盈亏和统计
2. 回顾所有交易:胜率、平均盈利、平均亏损、期望值
3. 识别错误模式
4. 如有需要,更新交易计划
5. 为下周设定目标(过程目标,而非盈亏目标)
| # | 错误 | 后果 | 预防 |
|---|---|---|---|
| 1 | 没有书面计划 | 随机、不一致的交易 | 在下单前写计划 |
| 2 | 每笔交易风险过大 | 账户爆仓 | 固定百分比风险模型(最多 1-2%) |
| 3 | 没有止损 | 灾难性亏损 | 始终在入场前设置止损 |
| 4 | 移动止损 | 比计划更大的亏损 | 自动化止损;绝不触碰 |
| 5 | 在亏损仓上加仓 | 加速资本毁灭 | 规则:只在盈利仓上加仓 |
| 6 | 报复交易 | 亏损后复合亏损 | 每日亏损限制、强制休息 |
| 7 | 过度交易 | 无数次小切割死亡(佣金) | 定义每日最大交易数 |
| 8 | 系统跳跃 | 从不发展专业知识 | 承诺一个系统 6+ 个月 |
| 9 | 忽视资金管理 | 系统优势被糟糕的规模抵消 | 每笔交易计算仓位 |
| 10 | 没有优势地交易 | 缓慢、稳定的资本损失 | 交易前验证正期望值 |
| 11 | 自我驱动的交易 | 持有亏损以避免承认错误 | 关注过程,而非结果 |
| 12 | 不记日志 | 重复同样的错误 | 每笔交易记日志,每周回顾 |
交易日志条目:
日期/时间: [入场日期和时间]
品种: [交易的股票/期货/货币]
方向: [做多/做空]
形态: [系统中的哪个形态触发此交易]
入场价格: [实际成交价格]
止损: [止损价格]
目标: [目标价格或追踪止损规则]
仓位: [股数/合约数]
风险 ($): [此交易的风险美元金额]
风险 (%): [风险占资本的百分比]
出场日期/时间: [平仓时间]
出场价格: [实际成交价格]
盈亏 ($): [美元盈亏]
盈亏 (R): [R 倍数表示的盈亏]
(R = 每份初始风险)
执行评分: [1-5:我是否遵循了我的规则?]
情绪状态: [平静/焦虑/自信/恐惧/贪婪]
备注: [我学到了什么,我会做什么不同]
截图: [入场和出场的图表]
Piper 强调用 R 倍数而非美元跟踪结果:
R = 交易的初始风险
如果入场 = $50,止损 = $48:R = 每份 $2
如果出场 = $56:盈利 = $6 = 3R
如果出场 = $47:亏损 = -$3 = -1.5R(止损被错过)
跟踪所有交易的平均 R 倍数:
平均 R > 0 → 系统有正期望值
平均 R < 0 → 系统需要改进
目标:所有交易的平均 R 倍数为 0.5R 至 1.0R
函数 trading_day(trader):
# 市场前
pre_market_routine(trader)
setups = scan_for_setups(trader.system, trader.watchlist)
# 交易时段
FOR 每个 setups 中的 setup:
IF NOT passes_pre_trade_checklist(setup, trader):
CONTINUE
# 计算仓位
entry = setup.entry_price
stop = setup.stop_price
risk_per_share = ABS(entry - stop)
dollar_risk = trader.capital * trader.risk_per_trade_pct
position_size = FLOOR(dollar_risk / risk_per_share)
# 检查组合风险限制
current_open_risk = calculate_total_open_risk(trader.portfolio)
IF current_open_risk + dollar_risk > trader.max_total_risk:
CONTINUE # 会超过总风险限制
# 检查每日亏损限制
IF trader.daily_pnl < -trader.daily_loss_limit:
STOP 当天交易
BREAK
# 入场
trade = ENTER_TRADE(setup, position_size, entry, stop, setup.target)
trader.journal.RECORD(trade)
# 监控未平仓
FOR 每个 trader.portfolio 中的 position:
IF position.stop_hit:
EXIT position at stop
trader.journal.RECORD_EXIT(position)
ELIF position.target_hit:
EXIT position at target (or apply trailing stop)
trader.journal.RECORD_EXIT(position)
# 市场后
post_market_review(trader)
函数 money_management(trader, trade_signal):
# 固定百分比风险模型
risk_pct = trader.base_risk_pct # 例如 1.0%
# 根据回撤调整
current_drawdown = (trader.peak_capital - trader.capital) / trader.peak_capital
IF current_drawdown > 0.15:
RETURN None # 停止交易——回撤断路器
ELIF current_drawdown > 0.10:
risk_pct = risk_pct * 0.50 # 减少至一半
ELIF current_drawdown > 0.05:
risk_pct = risk_pct * 0.75 # 减少至 75%
# 计算仓位
dollar_risk = trader.capital * risk_pct
risk_per_unit = ABS(trade_signal.entry - trade_signal.stop)
position_size = FLOOR(dollar_risk / risk_per_unit)
# 验证
position_value = position_size * trade_signal.entry
IF position_value > trader.capital * 0.25:
position_size = FLOOR(trader.capital * 0.25 / trade_signal.entry)
RETURN position_size
函数 psychological_check(trader):
# 自动情绪状态评估
checks = {
'consecutive_losses': trader.recent_consecutive_losses,
'daily_pnl': trader.daily_pnl,
'sleep_quality': trader.self_reported_sleep,
'emotional_state': trader.self_reported_emotion,
'time_since_last_break': trader.minutes_since_break
}
# 红旗
IF checks['consecutive_losses'] >= 3:
ALERT "3+ 次连续亏损。休息 30 分钟。"
RETURN "PAUSE"
IF checks['daily_pnl'] < -trader.daily_loss_limit:
ALERT "每日亏损限制已达到。今天停止交易。"
RETURN "STOP"
IF checks['emotional_state'] IN ['angry', 'euphoric', 'desperate']:
ALERT "情绪状态:{checks['emotional_state']}。离开屏幕。"
RETURN "PAUSE"
IF checks['time_since_last_break'] > 120:
ALERT "上次休息已 2 小时。休息 10 分钟。"
RETURN "BREAK"
RETURN "OK"
交易者金字塔是不可协商的。 你需要所有五层:计划、方法、资金管理、心理学和纪律。缺少任何一层最终都会毁掉你。
交易成功 80% 靠心理学和资金管理。 停止把所有时间都花在寻找完美系统上。把那些时间花在风险管理和情绪掌控上。
在下一单之前写好计划。 书面计划是基础。没有它,你是在赌博,不是在交易。
每笔交易风险不超过 1-2%。 这一规则保护你免受灾难性亏损,确保你存活足够长的时间让优势复利。
好的系统是简单的。 2-3 个参数、清晰的规则、正期望值。复杂性是稳健性和纪律的敌人。
系统不需要大多数时候正确。 35% 胜率配合 3:1 收益风险比是非常有利可图的。不要为了高胜率而牺牲大赢家。
纪律是一种习惯,不是意志力。 通过清单、自动化、常规训练和小额开始来建立纪律。不要在压力下依赖意志力——它会失败。
记录一切。 日志是发展中的交易者最重要的工具。没有它,你会无限期地重复同样的错误。
回撤管理就是生存。 在回撤期间减少规模,在严重回撤时停止交易,绝不要试图用更大的赌注"回本"。
旅程就是目的地。 交易没有"到达点"。你总是在发展、总是在改进、总是在管理自己。过程就是优势。
"交易之道不是关于找到完美的方法。而是关于成为能够始终如一地执行任何好方法的那种人。"
(文件结束 - 共 845 行)