你打开一张 K 线图。红红绿绿的柱子,上面叠着几条均线,下面是成交量,再下面是 MACD。
你知道这些东西都有名字,也大概听说过「金叉买、死叉卖」「放量突破」「顶背离」。但如果有人追问:这根均线具体是怎么算出来的?它比价格慢了几根 K 线?「放量」放到多少才算?「突破」之后你买多少、止损放在哪、什么时候卖?这条规则过去五年到底赚没赚钱?
大多数人答不上来。不是因为这些问题太难,而是很少有人把它们按顺序讲清楚。
这门课就做这件事。
每个工具,都走三步#
课里会讲到几十个工具:K 线、趋势线、支撑阻力、均线、MACD、RSI、ATR、布林带、各种形态、订单类型、仓位公式、回测方法。它们每一个都按同样的三步来学:
先会用:从业者拿它做什么,常用参数是什么,在什么市场环境下用。
再会算:用 Python 亲手实现一遍,和成熟的库对账,直到结果一模一样。算过一遍,你就知道它的滞后从哪来、参数改了会怎样。
最后会验:在真实的历史数据上统计。一个漂亮的例子不算数,几百次出现之后的结果才算数。
三步缺一步都不行。只会用不会算,工具就是黑箱,出了问题不知道为什么;会算不会验,就分不清一个规律是真的,还是碰巧在你看的那几张图上成立。
课程结构#
| 部分 |
篇 |
回答的问题 |
| 一、地基 |
1–5 |
价格图记录了什么?钱从谁的口袋里来?数据可靠吗?需要哪些统计基础? |
| 二、读懂价格行为 |
6–11 |
不借助任何指标,怎么从 K 线和成交量里读出趋势、关键位置和市场状态? |
| 三、技术指标 |
12–15 |
均线、MACD、RSI、ATR 这些指标到底在算什么?各自适合什么场景? |
| 四、形态 |
16–18 |
K 线形态、图表形态、道氏理论和斐波那契,怎么从「看起来像」变成可以写成代码的规则? |
| 五、从信号到交易 |
19–26 |
有了信号之后,交易什么、什么时候交易、怎么下单、止损怎么执行、仓位多大? |
| 六、检验 |
27–30 |
怎么写一个没有偏差的回测?怎么判断一条策略是真的有效? |
| 七、策略原型 |
31–32 |
趋势跟随和均值回归这两类基本策略,收益结构有什么不同? |
| 八、实盘 |
33–35 |
从回测走到实盘要经过哪几步?连亏的时候怎么判断? |
前五部分是工具,第六部分是检验工具的方法,后两部分是把工具组装起来用。第六部分是全课的分水岭:前面学过的每个工具,最后都要拿到那里接受检验。
贯穿全课的三条线#
三个固定标的#
| 标的 |
为什么选它 |
| SPY |
追踪标普 500 的 ETF,美股流动性最好的品种,作为美股大盘的代表 |
| AAPL |
苹果公司股票。它拆过两次股(2014 年 1 拆 7、2020 年 1 拆 4),每季度分红,每季度发财报,是讲美股个股数据问题的好例子 |
| BTC |
比特币。24 小时不停交易,没有「收盘」;有永续合约,持仓量和资金费率这些数据公开可查 |
同一个工具放到这三个标的上,结果常常不一样。为什么不一样,本身就是很多篇的重点。
一个你亲手搭起来的工具库#
第 3 篇会建一个叫 talab 的 Python 项目,一开始是空的。之后几乎每一篇都往里加一个模块:数据下载和检查、K 线绘图、摆动点识别、指标、形态扫描、止损和仓位计算、回测引擎、报告生成。
学完全课,你手里就有一套完整的分析和回测工具,每一行代码都是你自己写的,每一个结果你都知道是怎么来的。
一条慢慢长大的策略#
第 12 篇会从最简单的规则开始:均线金叉买入,死叉卖出。
之后每学一部分,就给它补上一样东西:止损、时段过滤、完整的入场和出场规则、仓位管理。到了第六部分,它要经历完整的检验:回测、偏差排查、加入交易成本、样本外测试。检验结果是什么样,正文就写什么样。
最后一篇回头看,一句「金叉买入」是怎么一步步变成一套可以被检验、可以执行的交易系统的。
每一篇怎么读#
每一篇的结构基本相同:
- 先做一个决定。开头给你一段真实的历史行情,图只画到某一根 K 线为止,问你:现在怎么办?先把你的判断记下来,再往下读。后面的走势会在正文里揭晓。
- 弄清它是什么。先用一个生活里的例子建立直觉,再讲机制,最后才给出准确的定义。
- 算一个具体的例子。每一步都算出具体的数字:具体的价格、具体的股数。
- 动手实现。写代码,加进
talab。
- 看数据怎么说。在三个标的的全部历史上统计。
- 小检查和常见误用。
- 小结和练习。
⚠️ 第一步很容易被跳过,但它很重要。看完结果再回头看图,一切都显得很明显;而你在真实交易里面对的永远是「图只画到这里」。先做决定,才能知道自己在那一刻真正会怎么想。
代码与数据#
- 语言:Python 3,主要用 pandas 和 numpy。需要会一点 Python 基础语法,不需要交易经验。
- 加密数据:来自 Binance 公开的历史数据站,免费,不需要注册。
- 美股数据:日线数据,下载未经调整的原始价格,再根据拆股和分红记录自己计算调整后的价格,保证结果可以复现。
- 环境搭建:第 3、4 篇会一步步讲,包括怎么下载数据、怎么检查数据有没有问题。
正文里的每一段代码都在真实数据上运行过,贴出来的输出就是实际的运行结果。关键结果旁边会附上「复现指纹」,比如数据的行数、收盘价之和。你跑出来的数字和正文对得上,就说明数据完全一致。
从哪里开始#
从第 1 篇:一张价格图到底记录了什么开始,按顺序往下读。
如果你已经熟悉 K 线和常见指标,也建议至少读完第一部分(第 1–5 篇)再跳着读:交易对手、数据陷阱和统计基础这三块,后面每一篇都会用到。
一根放量大阳线,看起来像「有人在大量买入」。可每一笔成交都是一买一卖,买的量永远等于卖的量。这一篇从 2021 年 2 月 8 日 BTC 的一根 1 小时 K 线讲起:价格为什么会动(挂单的人和吃单的人)、为什么主动买入多也可能收阴线(BTC 全部历史里 42% 的上涨日主动买入不到一半)、为什么同一分钟里现货和合约的最低价差了 1312 美元、技术分析的三个前提分别在什么条件下成立、三种分析方法各回答什么问题,以及为什么同一个方法换一个时间尺度就是另一回事(2025 年 BTC 的 1 分钟 K 线有 92% 不够付一次往返手续费)。
你在支撑位挂的买单成交了。是谁卖给你的?他为什么愿意在你觉得便宜的价格卖?这一篇从 2025 年 10 月 10 日 BTC 的暴跌讲起:交易为什么是零和、成本为什么把它变成负和(零优势的交易者每年往返 500 次,光成本就亏掉 39%);想交易的人和必须交易的人有什么区别;五类被迫交易者各自在什么时候、什么位置出现,以及它们在数据上留下的痕迹(两小时内持仓量减少 21%、特斯拉纳入标普 500 当天成交量是平时的 4.5 倍、跌破前一天低点的那一分钟成交量是平时的 9 倍);为什么被迫交易集中的地方更可能出现可预期的价格行为;最后给出分析一笔交易对手盘结构的四个问题。
两个平台上,AAPL 2020 年 8 月的最高价一个是 515.14,一个是 131.00。哪个对?这一篇讲清楚你拿到的价格数据经历过什么:K 线的每个字段是怎么来的;拆股和分红调整分别在做什么、各自什么时候该用(错用拆股前的价格,回测会看到一天暴跌 74%);为什么「调整后的价格」每次下载都不一样;盘后公告如何变成第二天的跳空;BTC 的日线按 UTC 切和按北京时间切,28.8% 的日子阴阳相反;同一分钟里 Binance 和 Coinbase 的最低价差 5,000 美元。最后用真实数据做体检:SPY 数据里一个 9,999,999 的假成交量,BTC 1 分钟数据里 21,602 根时间戳错位的 K 线、34 段缺口、交易所停机时留下的占位 K 线。附 talab.data 模块的完整代码。
在 BTC 的算术坐标图上,2025 年那次下跌看起来比 2018 年那次严重得多;实际上 2018 年跌了 84.1%,2025 年跌了 54.2%。这一篇先把 talab 搭成一个完整的项目:虚拟环境、依赖版本、一键下载全部课程数据并核对复现指纹、15 个测试。然后讲清楚一根 K 线是怎么变成屏幕上的像素的:先不用任何绘图库,手写一段代码生成 SVG 画出 K 线,再写出之后每一篇都要用的 talab.plot。最后讲对数坐标和算术坐标:为什么同一条趋势线,在算术坐标下 2026 年 4 月 13 日就被突破,在对数坐标下要到 4 月 22 日;为什么算术坐标下的下降趋势线,会在 2026 年 12 月 26 日跌到零。
2022 年 6 月 12 日收盘,按 BTC 过去一年的波动率和正态分布计算,单日跌 15% 大约 208 年才会发生一次。第二天它就跌了 15.4%,而在这之前的五年里,这种事已经发生过四次。这一篇讲清楚交易里最基础的几个统计量:简单收益率和对数收益率各自什么时候用,为什么日均收益率 0.15% 复利下来不是 143 倍而是 18 倍,波动率为什么按时间的平方根放大,收益率分布的尾巴到底有多肥、从哪里来,自相关在统计上意味着什么(以及为什么三个标的的「显著」负自相关几乎全部来自 2020 年),为什么价格不平稳而收益率近似平稳。最后写出 talab.stats 模块和它的测试。
两根 BTC 日线,把开盘价记为 100 之后,最高、最低、收盘三个价格相差不到 0.1。一根之后 10 天涨了 6.3%,另一根之后 10 天跌了 16.3%。这一篇讲清楚一根 K 线是怎么由成千上万笔成交压缩出来的:合成规则,以及用 1 分钟线合成日线时为什么有 43 天和官方数据对不上;实体和影线,以及为什么 SPY 有 20.2% 的日子 K 线颜色和当天涨跌相反;K 线丢掉的路径信息,以及它让日线回测里的止损止盈结果在 −819% 到 +745% 之间摇摆;Heikin-Ashi 为什么能让一个策略在回测里从 32 倍变成 13 万倍;Renko 去掉时间轴之后得到了什么、失去了什么。最后写出 talab.bars 模块。
2025 年 10 月 30 日,BTC 周线收在 20 周均线上方,4 小时线却跌破了过去 7 天的最低价。你手里有多单,该听周线的还是听 4 小时线的?这一篇讲清楚不同周期之间的关系:一根周线怎么由日线和 4 小时线合成,pandas 默认的周线为什么标在周日;为什么周线在 20 周均线上方时,有 46% 的时间 4 小时线在均线下方;周线向上时 4 小时破位之后发生了什么;Elder 三重滤网是什么,一个简化版本在 BTC 和 SPY 上能不能检验出效果。最后是多周期回测里最常见的前视偏差:把周线对齐到日线时错用一行代码,同一个规则的回测会从 7 倍变成 374 倍。
2024 年 10 月 16 日,你说 BTC 是上升趋势,朋友说是震荡。这一篇把「趋势」写成能计算的定义:用高点和低点描述趋势,用分形和 ZigZag 两种算法找出摆动点;讲清楚最后一个摆动点为什么会重绘,按摆动点「发生」的时间回测为什么会得到 46 亿倍;把高低点结构变成上升、震荡、下降三种状态,看同一天在 5%、10%、20% 三个尺度下为什么分别是上升、震荡、下降;用打乱检验看这些状态之后的 20 天有没有不同;说明趋势线有多少种画法;最后讲效率比、回归斜率和 ADX 三种趋势强度,以及它们在随机数据里会给出什么结果。
2026 年 6 月 3 日,BTC 第四次回到 65,000 附近,前三次都守住了。这一次呢?这一篇讲清楚支撑和阻力从哪里来:前高前低、整数关口、成交密集区和止损单;用 BTC 的数据验证整数关口的订单痕迹(日线最高价、最低价正好落在千位整数上的比例,是普通价格的 13 到 14 倍);把「一个价位被测试、守住、突破、角色互换」写成可以统计的规则,和打乱顺序的随机数据对比,看测试次数越多是变强还是变弱;看假跌破和跌破深度、成交量的关系;最后讲缺口的四种类型、美股隔夜跳空的回补,以及用 1 分钟数据按 CME 交易时间自己算出来的 439 个 BTC「CME 缺口」:96.6% 后来回补了,但开盘价另一侧同样距离的价位,被碰到的比例是 98.4%。
2025 年 12 月 17 日美股开盘后,BTC 一个小时急涨 2.3%,下一个小时全部跌回,放出当天最大的成交量,收在当日 VWAP 下方。这一篇讲清楚成交量到底记录了什么:为什么「放量」不等于「买的人多」;成交量数据的五个坑(单位、交易所的零手续费活动、现货和合约、刷量、美股场外成交);量价的四种组合、放量突破、缩量回调和天量,在 BTC、SPY、AAPL 上的数据怎么说;VWAP 为什么是机构执行的基准,怎样用 1 分钟数据精确计算;锚定 VWAP 和 Volume Profile 是什么,前一天成交最密集的价格(POC)第二天被碰到的比例,比对照价格高出多少。