← 返回教程库

这个开源交易框架,到底替你做了什么、又坚决不做什么

最后更新 2026-08-19
📚 量化与 AI 投研 📖 仓库导览 · freqtrade ⏱ 约 17 分钟 R2 · 注意风险
你将学到
  • 能用一句话说清这类框架替你做好了哪部分工作、明确不替你做哪部分,不再把「框架跑起来了」当成「策略能赚钱」
  • 认得出这类框架内建的市场假设(不休市、可做空、份额可细分、没有涨跌停),以及这些假设在 A 股哪几条直接不成立
  • 知道该怎么把它当成「概念的实物标本」来读,而不是当成一套能直接搬到 A 股的工具

你在某个技术论坛上看到有人提这个项目,几万颗星,Python 写的,标题里带「trading bot」。你点进去,README 第一屏是一张终端截图和一排交易所的名字,往下翻是一长串打了勾的功能清单。你心里冒出来的问题大概是这两个之一:

「所以我把它装上,就有一套能自动赚钱的系统了?」

或者,如果你是这个站的常客,更可能是这个:「它能拿来跑 A 股吗?」

这两个问题的答案都是「不能」,但「不能」的理由完全不一样,而这两个理由恰好构成了这一篇要讲的全部内容。这篇不教安装、不教配置——那是官方文档的活,而且写得比我详细。这篇要做的是把一个真实存在的开源交易框架,当成一件概念的实物标本摊开看:它把交易这件事里的哪一块做成了工程,哪一块坚决留白,以及它是为哪个市场长出来的——这最后一点决定了你能从它身上搬走什么、什么必须原地留下。

顺带说一句边界:它每一轮循环具体在忙什么,已经拆在 交易机器人开机之后,它一整天到底在忙什么 里了,这篇不重复。

你拿到的是一间厨房,不是一份菜谱

先讲个不带任何术语的场景。

假设你想开一家小餐馆。开张前你要准备的东西,粗看是一堆:灶台、抽油烟机、冰柜、备料台、洗碗池、点单系统、收银机、进货的渠道、一本记每天卖了多少钱的账,还有一套流程——谁负责叫号,谁负责传菜,剩菜怎么处理,收摊时怎么盘点。

这些东西加起来占了开店工作量的绝大部分。但它们里面没有一样能决定你这家店好不好吃。

决定好不好吃的是菜谱,是你对火候和配比的判断。 而菜谱恰恰是上面那堆东西里唯一没有的。

一个开源交易框架就是那间厨房。它把「规则化交易」这件事里所有跟你的判断无关、但不做就没法开张的部分做成了标准件:怎么把行情数据拉下来存好,怎么按固定节奏醒过来看一眼,怎么把一个「该买了」的判断变成一张真的发到交易所去的委托单,怎么记住你现在手上有几笔仓位、每笔的成本是多少(它用一个本地的小型数据库存这些账),怎么在你没盯着的时候把成交通知推到你手机上,怎么在下真金白银之前先用模拟资金空跑一遍。

这些活儿,每一样单独看都不难,加起来能耗掉一个人几个月。框架的价值就在这里:它让你不必为了验证一个想法,先花三个月造一间厨房。

但它同时也划下了一条特别清楚的线。

它坚决不做的三件事

这条线不是我总结的,是项目自己在文档最显眼的位置用红框标出来的。README 和文档首页都放了同一段免责声明,大意是:本软件仅供教育用途,不要拿你输不起的钱冒险,风险自负,作者对你的交易结果不承担任何责任;并且强烈建议你先用模拟模式跑,在你真正搞懂它怎么工作、该预期什么样的盈亏之前,别投入真钱。

一个几万星的项目,把这段话放在功能清单前面,这个位置本身就是信息。

第一,它不提供策略。 框架里带的示例策略,官方的措辞是「用来给你灵感的」。这不是谦虚,是准确描述。一套公开的、所有人都能拿到的入场出场规则,如果真的稳定有效,它有效的那部分会随着使用人数增加而迅速消失。框架作者把这块留白,不是偷懒,是他们清楚这块根本没法替你填。

第二,它不保证盈利,也不承诺任何收益。 这句听起来像法务话术,但它有很实在的技术含义:框架能保证的是「按你写的规则执行」,不是「你写的规则是对的」。它会一丝不苟地把一个亏钱的规则执行到底,执行得又快又准,日志清清楚楚——然后你的账户余额一路向下。执行力和正确性是两件互不相干的事,框架只负责前者。

第三,它不替你判断市场。 框架里没有任何一处代码在「看多」或「看空」。它读到的是你写的那个函数返回的真假值,至于这个真假值是怎么算出来的、背后那套逻辑站不站得住,框架既不知道也不关心。它甚至提供了机器学习模块,但那个模块也只是替你把预测这件事工程化,具体预测什么、用什么特征、模型说的话该信几分,还是你的事。

顺便还有一串「它也不是」的东西,容易被忽略但值得说清:它不是券商也不是交易所,钱和单子都在别人那里,它只是个下指令的客户端;它不是数据服务商,历史行情是它替你从交易所接口下载下来的,质量好坏跟它无关;它不管你的税务,不管你的资产配置,不判断你该拿多少钱来做这件事。这些空白处,站在这个框架的角度都是合理的分工;站在你的角度,是你必须自己补的洞

一张必填清单,透露了框架认为「什么才是必须先想清楚的」

有个地方特别能说明这个框架的价值观:它的配置校验里有一张必填项清单,少一项就不让启动。

我把这张清单翻译成人话,你会发现它问的是这么一串问题:

  • 你要在哪家交易所交易
  • 你按多长的时间周期做判断(也就是一根 K 线代表多久)
  • 你最多同时持有几笔仓位
  • 你用哪种货币计价、每笔投多少钱
  • 你账户里有多大比例的钱允许被这套系统动用
  • 你要不要先用模拟资金空跑、模拟钱包给多少
  • 买入和卖出分别按什么价格逻辑挂单
  • 你的止损设在哪
  • 你的分级止盈目标是什么
  • 候选品种池怎么定

现在看这张清单里没有什么:没有一项在问「你打算买什么、根据什么信号买」。 那个东西不在必填配置里,它是一个单独指定的策略类;不指定,程序会直接告诉你「没有设置策略」然后停下。

这张清单是这个框架最诚实的自我介绍:它把资金、仓位上限、止损、止盈、计价单位、执行节奏当成开机前必答题,把「怎么判断行情」整个留给你。 换句话说,它认定风控和账务是工程问题,可以标准化;而判断是你的问题,标准化不了。

这个顺序本身就是一条经验:先定清楚钱和风险的边界,再谈信号。只不过这次是一个真实项目用「不填就不启动」的方式,把这条经验硬性化成了程序的启动条件。你在自己动手搭系统时,可以直接把这张清单抄过去当检查表——它不依赖任何具体框架。

它是为哪个市场长出来的

这个框架有个不能省略的定语:加密货币。它支持的是加密资产的现货(一手交钱一手交货,买了就是你的)和合约(约定未来买卖、通常带杠杆、可以做空)。

这个定语不只是「交易标的不同」,它渗进了整个设计。有几处特别典型:

交易对,而不是股票代码。 它内部把一个品种拆成「基础货币 / 计价货币」两半——你买的是什么,用什么计价。这个结构在加密市场是天然的,同一个东西可以用好几种计价方式交易。A 股没有这个概念,一个代码就是一个代码,计价永远是人民币。

不休市。 加密市场一天二十四小时、一周七天连着转,K 线是一条不间断的链子。这意味着「上一根 K 线的收盘价」和「这一根 K 线的开盘价」几乎贴在一起,中间没有缝。框架里大量逻辑——比如「出场信号在下一根 K 线开盘价成交」这个回测假设——是建立在这条链子连续的前提上的。

可以做空 策略类里有一个明确的开关,标明这套策略能不能做空;开关打开且在合约模式下,卖出信号可以是开一个反向仓位,而不只是平掉已有的多头。

份额可以细分。 加密资产可以买 0.037 个,所以「每笔投固定金额」这件事总能精确执行。

品种池是流动的。 框架支持按成交额自动筛出一批当下最活跃的品种作为候选池,还能拉黑名单。它默认你面对的是一个品种数量多、活跃度轮换快的市场。

这些设计单独看都很合理。问题在于,它们全都是假设,而假设是会在换了市场之后失效的。

A 股读者请特别看这一节:哪些假设直接不成立

如果你打算把这套东西的思路搬到 A 股,下面这几条是结构性冲突,不是调个参数能解决的。我按「冲突有多难绕过」大致排了个序。

T+1。 A 股当天买入的股票,当天不能卖出,得等到下一个交易日。这一条杀伤力最大,因为它直接破坏了执行循环里「每一轮都重新评估所有持仓要不要离场」这个核心动作。框架的循环里没有「这笔仓位今天不可动」这个状态——它压根不需要有。你要移植,就得在持仓对象上加一个「可卖日期」,并且让所有出场判断先过这一关。更麻烦的是回测:如果你的回测引擎没模拟这条,它会在你实际上动不了的那一天替你止损成功,然后给你一条比真实情况漂亮得多的曲线。这是一种很隐蔽的前视偏差,机制见 前视偏差

涨跌停。 A 股每个交易日对涨跌幅有上限,碰到上限就是俗称的「封板」。封板时盘口经常是有价无量——价格明明就在那儿,但你的单子排在后面,根本成交不了。而这个框架的回测假设写得清清楚楚:只要请求价落在这根 K 线的最高价和最低价之间,就认为按请求价全额成交,不计滑点。 在一个没有涨跌停的市场里,这个假设是「乐观但可接受」;在 A 股,它会让你的回测在最该止损的那些天全部止损成功——而现实中那些天恰恰是你想跑跑不掉的日子。撮合假设为什么是回测里最容易骗人的一环,成交与撮合假设 里有系统的推导。

做空。 A 股普通账户不能裸卖空,融券要有券源、有额度、有成本,而且券源在你最想做空的时候往往最紧张。那个「能不能做空」的开关,在 A 股语境下不是打开就能用的。

停牌。 加密市场的品种不会停牌,K 线是连续的,框架在数据处理时甚至会把缺失的 K 线自动补齐——这个行为在连续市场是合理的容错。A 股会停牌,短则一天,长则数月,停牌期间你的仓位动不了:风险敞口锁死,止损形同虚设。如果你的数据处理把停牌期直接前值填充了,回测里这段时间就变成了一条平稳的横线,看起来毫无风险。停牌、复权、退市这几个坑各自会在结果里留下什么痕迹,行情数据里那些会让你回测结果全错的坑 已经逐个拆过。

交易时段与隔夜跳空。 A 股每天只开几个小时,早上有集合竞价(开盘前集中撮合出一个开盘价),收盘后到第二天开盘之间发生的所有事情,全部压缩进一个跳空缺口里。「日内止损」这件事在隔夜跳空面前是失效的——你设的止损价可能被直接跳过,第二天开盘就在下面。连续市场里这种情况少得多。

最小交易单位。 A 股买入以「一手」为单位,是一个固定的整股数量,不能买零点几股。这件事对小资金的影响比想象中大:它让「每笔投入固定金额」变成近似值,也让「同时持有十个品种」这种分散要求在资金不够时物理上做不到。而框架的仓位分配逻辑默认份额可以任意细分。

成本结构不同。 加密交易所的费用通常是按成交额比例双边收取,框架的成本模型也是这么建的。A 股这边除了双边佣金,卖出还有单边征收的印花税,另外佣金常有一个最低收取门槛——这个门槛对小额委托是极不成比例的负担,笔数一多能把策略的理论收益整个吃掉。费用结构的差异怎么算进回测,见 手续费与印花税

品种池规则。 按成交额自动轮换候选池这个做法,在 A 股要面对新股上市初期的特殊规则、风险警示股的特殊涨跌幅、退市整理期这些制度性的东西。这不是技术难度,是你必须显式写进筛选条件的一堆例外。

把上面这些摆在一起看,结论其实很清楚:这个框架的执行骨架可以借鉴,它的市场假设一条都不能直接搬。

那还值得读吗

值得,而且我建议你把它当成这一卷里最好的一件教具,理由有三个。

它是活的。 教科书里讲撮合假设,会说「回测需要对成交做假设」。这个框架的文档里直接列了一份完整的假设清单——入场按什么价、出场按什么价、多个信号在同一根 K 线上撞车了按什么顺序判定、止损和止盈谁先生效。这份清单不是理论,是一个跑了很多年、被很多人用真钱验证过的系统被迫做出的全部妥协。你想知道「一个诚实的回测引擎该向用户交代什么」,照着这份清单看一遍就懂了。

它是完整的。 大多数教学项目只做回测,做完就结束了。这个框架从数据下载一路做到实盘下单、异常重试、状态持久化、远程监控。回测到实盘之间要补哪些东西,在它身上是看得见摸得着的——那些在纯回测项目里根本不存在的模块,就是答案本身。

它诚实。 一个框架会专门造工具去检测某一类错误,说明这类错误在真实使用中足够常见、足够致命。这件事我放在 一个框架专门造工具来防的坑,说明它真的很常见 里单独讲。同样,它把参数优化和机器学习都做成了独立模块,也把这两件事各自的危险明明白白写进了文档——超参优化:一个天生和过拟合纠缠在一起的功能机器学习长在一个真实交易系统里是什么样 分别接着说。

给你一个具体的读法建议:别照着快速开始那一页走。 那条路会把你引向「装好了、跑起来了、看着挺爽」,然后卡在真正重要的问题前面。换个读法——先读它的免责声明,再读它的必填配置清单,再读它的回测假设清单,最后才去读代码。这三份文档加起来不到几千字,但它们回答的是「这个系统凭什么认为自己的结果可信」,比任何一段代码都值钱。

还有一句必须说在前面:本文所有描述来自对某个时间点源码快照的阅读,不是我实际跑通了这个程序得出的结论。项目一直在演进,你手上那份的行为以你自己读到的文档和代码为准。


一句话总结:这东西给你的是一整套备好的厨房设备和一本严格的操作流程,菜谱得你自己写、自己负责好不好吃;而且这间厨房是照着一个不打烊、能赊账做空、食材能按克卖的市场设计的,搬到 A 股来,光是「今天买的明天才能卖」这一条,就得把好几面墙推倒重砌。

内容有错、看不懂、或想看下一篇?告诉我们 →

本文为投资教育整理,不构成任何投资建议;不荐个股/基金、不预测点位、不承诺收益。关键数据与结论请结合权威来源自行验证,并见风险免责声明