开源项目认为基本面和技术面一致吗?

wen 开源项目 4

本文目录导读:

开源项目认为基本面和技术面一致吗?

  1. 从“数据本质”上看:二者是“非线性”的
  2. 从“量化框架”的实现逻辑上看:二者是“一致”的(统一为信号)
  3. 从“哲学假设”上看:根本分歧
  4. 从“现实实证”结果看:一致性的“陷阱”

这是一个非常深刻的问题,直击了量化交易和主观交易的核心区别。

简短的回答是:在开源量化项目中,基本面和技术面在统计规律上是不完全一致的,但在算法实现层面上,它们往往会被“强制”统一起来。

为了让你更清晰地理解,我们可以从以下几个维度来拆解:

从“数据本质”上看:二者是“非线性”的

开源项目(如 backtraderziplinevn.py 等)处理数据时,其实并不关心数据属于基本面还是技术面,它们只关心价格、成交量、时间戳以及财务报表数字

  • 技术面:通常被认为是“一阶”数据(价格、均线、MACD),它们直接来源于市场行为,频率高、噪音大。
  • 基本面:通常是“二阶”数据(营收、PE、增长率),它们低频、滞后,但包含了公司的内在价值。

在开源项目的数学模型中,二者不一致,技术面是“果”,基本面是“因”,但模型很难直接抓到这种因果关系,因为因果之间存在很大的时间滞后和随机性。

从“量化框架”的实现逻辑上看:二者是“一致”的(统一为信号)

这是最关键的一点,无论在哪个开源框架里,策略引擎都只认“信号”

  • 开源框架(如 vectorbtfreqtrade)会把所有输入转化为布尔值或数值权重。
  • 技术面变成:MACD 金叉,则买入 —— 这是一个技术信号
  • 基本面变成:PE < 10 且 营收增速 > 20%,则买入 —— 这是一个基本面信号

在这个层面上,二者是完全一致的,因为它们都被抽象成了“特征值”,开源项目(特别是机器学习类的如 TA-Lib 配合 sklearn)会把财务数据(ROE,PEG)和技术指标(RSI,ATR)放在同一个特征矩阵里,用同样的回归算法去拟合。没有所谓的“基本面”和“技术面”之分,只有“有用特征”和“无用特征”之分。

从“哲学假设”上看:根本分歧

开源社区通常分为两大流派,这决定了它们如何看待二者:

  • 纯技术派开源项目(如大多数高频或短线策略库):它们默认“市场有效性假设”失效,假设价格包含了所有信息,在这种情况下,技术面是领先的,基本面(如财报)发布时价格早已反映,属于“滞后数据”,因此它们认为基本面服从于技术面,只看走势即可,不需要看报表。
  • 基本面派开源项目(如 fundamental-analysis 或统计套利库):它们默认基本面有“锚定效应”,技术面是“噪音”,当技术指标频繁发出假信号时,基本面数据能过滤掉这些假突破,它们认为技术面必须服从基本面

开源社区对二者的关系并没有统一答案,且经常争论不休。

从“现实实证”结果看:一致性的“陷阱”

开源项目往往通过回测来验证两者的一致性,如果你在开源框架里测试,通常会得到一个残酷的事实:

  • 单独用技术面:在震荡市表现优异,但在大牛/大熊市会频繁止损。
  • 单独用基本面:在熊市末端能精准抄底,但在牛市中间会踏空。
  • 结合使用(基本面选股 + 技术面择时):开源社区公认的最优解是“不一致”的,即利用基本面决定“买不买”(价值判断),利用技术面决定“何时买”(时机判断)

二者在开源项目里是互补且不一致的,技术面负责解决“交易节奏”,基本面负责解决“风险边界”。


开源项目认为:基本面和技术面在“数据流”上不一致(一个低频、一个高频),但在“代码逻辑”上必须一致(都必须转化为可计算的信号)。

如果你去看 ziplinebacktrader 的经典教程,它们会建议你:不要试图在代码里证明它们一致,而是要用代码去捕捉它们之间的“背离”或“共振”。 真正的Alpha(超额收益)往往来自于这两类信号发生冲突时的套利机会。

举个例子: 一个开源项目可能会在财报公布(基本面利好)后发现技术面(成交量)没有配合,于是系统会自动判定该利好无效,从而发出“不买”或“卖出”指令,在这个逻辑中,基本面是判断的依据,技术面是确认的工具,但它们并不需要“一致”,只需要“共振”即可产生有效信号。

抱歉,评论功能暂时关闭!