基础入门
本讲把价格与均线关系翻译成第一列可检查的买入布尔信号,覆盖规则定义、布尔列生成、命中样本检查和信号解释。目标是让入门者理解“信号”本质上是规则表达,而不是直接等于最终回测结果。
很多人第一次在 vectorbt 里把回测对象跑出来,看到有净值曲线、有统计表,马上就会产生一种很强的冲动:既然已经能跑,那我是不是应该立刻换信号、换参数、换窗口,争取让结果更好看。这个冲动很正常,但对入门阶段来说,先学会看结果,比立刻换策略更重要。因为如果你连当前这轮最小回测到底在说什么都还没看明白,后面再换多少参数,本质上都只是把复杂度往上堆。
第 7 讲之所以单独讲“查看收益、回撤和交易次数”,就是为了把你从“会把回测跑起来”推进到“能对回测结果做第一层解释”。这一步特别关键。因为回测真正的价值,不在于有一个对象或者有几行统计,而在于你能开始回答几个最基础的问题:这套规则大致赚没赚钱,过程波动大不大,交易是不是特别频繁。只要这几件事开始看懂,回测才真正从程序输出变成了可以被理解的研究结果。
所以这一讲的重点,不是追求华丽展示,而是训练你第一次用最朴素的三个角度读回测:收益、回撤、交易次数。
初学者看回测,最容易第一眼就只盯着总收益率,仿佛只要这个数字够高,前面的一切就都算成功。实际上,第 7 讲最先要确认的,反而不是收益率本身,而是结果结构有没有完整地跑出来。也就是说,你要先确认 portfolio 对象里确实能拿到净值序列、基础统计和交易相关信息,而不是只看到一个最终百分比数字就匆忙下结论。
这是因为入门阶段最怕一种假理解:明明对象是跑出来了,但自己根本不知道这个结果是由哪些层构成的,却已经开始比较好坏。更稳的做法是先把结果结构看清楚,再谈结果优劣。你要知道净值曲线对应的是过程,回撤对应的是过程中最难熬的下跌段,交易次数则在提醒你这套规则到底是低频还是高频。只有这些层都开始成形,后面的判断才不会过于单薄。
回测不是一个只看终点的游戏,它本质上是在描述一条过程。第 7 讲就是在帮你第一次把这条过程拆开看。
净值或收益曲线当然是回测里最直观的输出,因为它直接展示了账户价值如何随时间变化。对入门者来说,这也是最容易产生理解感的一层结果:当曲线向上,你会觉得“策略可能有效”;当曲线起伏很大,你会直觉上感到“过程不太稳”。这些感受都没有问题,但如果只停留在“赚了还是没赚”,其实远远不够。
因为两条最终都赚钱的曲线,过程可能完全不一样。一条可能一路平缓上行,另一条可能先大跌再拉回。只看最终收益,你会把这两者误判成差不多;但从交易体验和风险承受角度看,它们并不一样。也正因为如此,第 7 讲看收益,看的不是一个孤立数字,而是开始学会把净值当作一条过程序列来看。它告诉你,研究不是只看结果点位,而要看结果是怎么走到那里去的。
一旦你开始有这种意识,后面看参数比较、策略比较时,就不容易只被最终收益带着走。
在所有回测输出里,回撤往往是新手最容易忽略、但实际上非常应该尽早建立直觉的一项。因为它不直接告诉你赚了多少,而是在告诉你:在获得这些收益的过程中,账户曾经经历过多深的回落。这一点对策略理解非常重要。
很多人在初学阶段会天然偏爱高收益曲线,但如果一条策略在过程中经历了极深回撤,真实持有体验可能非常差。哪怕最终又涨回来了,中间那段大幅回落也未必是普通人能扛住的。因此,回撤不是一个附属指标,而是帮助你理解“这套策略会不会让人中途受不了”的关键线索。
第 7 讲把回撤单独拿出来看,不是要你一下子掌握全部风险理论,而是先建立最基本的直觉:一条回测结果不能只看最终有没有赚钱,还要看中间跌得有多狠。只要这个意识先立住,后面你再比较不同参数或不同信号时,判断会成熟很多。
交易次数是很多入门者最容易低估的一项结果。因为它不像收益率那么“显眼”,也不像回撤那样一听就和风险有关。但实际上,交易次数对理解策略风格非常有帮助。它至少能告诉你:这套规则是偏克制还是偏频繁,是偶尔出手还是几乎一直在切换状态。
这件事之所以重要,是因为同样一条收益曲线,背后可能有截然不同的交易密度。一套策略可能只做了几次交易,另一套可能不断来回切换,最终收益看着差不多,但实现方式完全不同。入门阶段先去看交易次数,能帮助你避免只盯着收益数字,而忽略信号逻辑其实可能过于碎片化。
更现实一点说,交易次数还会影响你后面对手续费、滑点和执行可行性的理解。如果一套最小策略已经显得非常频繁,那你后面一旦把成本考虑进去,结果很可能会被明显改变。所以,第 7 讲先看交易次数,其实是在帮你提前建立一种更真实的结果阅读习惯。
收益、回撤、交易次数这三项,单独看都有意义,但真正有价值的是把它们放在一起看。因为它们分别从三个方向在描述同一套规则:收益告诉你它最后表现如何,回撤告诉你中间经历了什么,交易次数告诉你它是用怎样的动作频率达成这个结果的。只看其中一个,很容易产生误判。
比如,收益不错但回撤很深,你就该知道这不是一条“轻松拿到”的结果;收益一般但交易次数极少,可能说明它比较克制;收益不高、交易很多,则可能意味着规则还太粗糙。也就是说,这三项合在一起时,你才第一次开始看到策略的轮廓,而不是只看到一个孤立标签。
这也是为什么第 7 讲非常适合作为“结果阅读”的入门课。它不要求你一上来就掌握大量专业绩效指标,而是先把最基础、最有解释力的三个维度看明白。只要这一层读懂了,后面再接触更多统计项也不会那么乱。
入门者最容易受到一个误导:好像只有回测结果很好看,这一轮练习才算成功。实际上,对当前这个系列的阶段来说,结果一般完全不代表失败。因为第 6 讲和第 7 讲的真正任务,是先把“从价格到信号再到回测结果”的链路走通,并学会阅读最基础的输出,而不是立刻找到优秀策略。
如果你的收益一般、回撤不小或者交易有些频繁,这都不奇怪。当前这套规则本来就是一个教学用的最小示范,它的价值在于让你看见每一层是怎样接起来的,而不是保证产出漂亮绩效。只要你已经能从结果里开始解释:为什么收益会这样、为什么中间会有这段回撤、为什么交易次数这么多或这么少,那这一讲其实就已经完成得很好。
研究的第一步不是立刻找到好策略,而是学会正确读一条最简单策略的结果。第 7 讲正在做的,就是这件事。
如果把整个 vectorbt 入门系列分层来看,第 2 讲建立底表,第 3 讲建立第一列指标,第 4 和第 5 讲建立信号,第 6 讲建立回测入口,那么第 7 讲建立的就是结果阅读层。也就是你开始意识到:回测对象一旦跑出来,不应该马上进入调参数模式,而应该先把最基本的结果读懂。
这种顺序非常重要。因为很多人学回测时,一跑出对象就立刻开始优化,结果最后得到的只是一堆对比表,却始终没有真正建立起“我知道我在比较什么”的感觉。第 7 讲正好相反,它是在提醒你先把阅读能力立住。只有先会看结果,后面再做优化,才不会变成机械试错。
一旦这个结果阅读层建立起来,下一步再去比较不同窗口、不同规则,才会真正有研究意味,而不是只是程序层面的排列组合。
回测对象一旦跑出来,最容易发生的误区,就是只盯着一个最显眼的指标,比如总收益。第 7 讲最重要的推进之一,就是让你开始习惯把结果成套阅读。也就是收益、回撤和交易次数要一起看,而不是拆开单独判断。只要这种成套阅读开始变成自然动作,你对策略轮廓的理解就会明显更完整。
这个习惯很关键,因为它会直接决定你后面比较参数时的判断质量。如果现在就只看单一指标,下一讲做参数比较时很容易又回到“谁高选谁”的粗糙状态。第 7 讲先把成套阅读练稳,后面研究才有基础。
对入门阶段来说,第 7 讲做完时最好已经能达到一个很基础的验收标准:你不仅能把三项核心结果打印出来,还能用一句自己的话解释每一项到底代表什么,它们合在一起说明了策略怎样的风格。比如收益高但回撤也大,或者交易次数特别多,分别意味着什么。只要这种解释能力已经出现,说明你不是在机械读表,而是真的开始读策略。
这种验收标准看似朴素,却非常实用。因为它逼着你从“会调用结果属性”往“会解释结果结构”再走一步,而这恰恰是研究能力真正开始出现的地方。
做到这里以后,最好已经能主动避开一种非常常见的误读:把单次回测结果当成最后结论。第 7 讲之所以强调阅读层,就是为了让你知道,当前任务是看懂结果结构,而不是急着宣布策略优劣。你现在看到的是一条最小策略的轮廓,不是最终优选答案。只要这种边界意识已经建立,后面做参数比较和进一步实验时就会冷静很多。
这层边界感很有必要。因为一旦把“第一次读结果”和“最终研究判断”混在一起,后面的每一步都容易走偏。第 7 讲先把这个误读避开,整个系列的节奏就会更稳。
这一讲的重点,不是再新增一套策略逻辑,而是第一次学会从回测对象里读最基础、也最关键的三类结果:收益、回撤和交易次数。收益告诉你最终表现,回撤告诉你过程风险,交易次数告诉你规则风格。把这三项放在一起看,你才真正开始理解一条最小策略到底呈现出了怎样的轮廓。只要这一步完成,回测就不再只是“跑出了对象”,而开始变成“我能解释的研究结果”。
本讲是《vectorbt回测入门短课》的第 7 讲,当前主题是《查看收益、回撤和交易次数》。上一讲已经把第一轮向量化回测对象跑通,这一讲则开始教你如何阅读它最基础的输出。下一讲会进一步进入参数比较,用更清楚的方式对比 5 日和 10 日窗口的表现差异。
风险揭示与免责声明
本页面内容仅用于量化研究与技术交流,旨在展示研究方法与流程,不构成对任何金融产品、证券或衍生品的要约、招揽、推荐或保证。
本文所涉历史数据、回测结果与示例参数不代表未来表现,也不应作为投资决策依据。
市场存在波动、流动性与执行偏差等不确定性,任何策略均可能出现收益波动或阶段性失效。
读者应结合自身风险承受能力进行独立判断,并在必要时咨询持牌专业机构意见。