本文目录导读:

在开源量化投资和算法交易的圈子里,基本面和技术面通常不被认为是天然一致的,甚至常常被视为两种截然不同的投资哲学。
开源社区的一大特点就是包容与实用主义,虽然它们在理论基础上有分歧,但在实际的代码实现和策略开发中,开源项目往往会将两者结合,或者让它们在不同的维度上共存。
以下是开源项目中对基本面和技术面关系的几种典型看法:
理论层面的分歧:源自不同的假设
在开源项目的文档、讨论区或策略分类中,两者通常被严格区分:
- 基本面分析: 认为资产有其“内在价值”,价格最终会回归价值,开源项目(如基于
pandas的财报分析、yfinance抓取财务数据)通常用于计算市盈率、市净率、现金流等,策略偏长线、低频、因子投资(如法玛-法兰奇三因子模型)。 - 技术面分析: 认为所有信息都已反映在价格中,通过历史价格和成交量预测未来走势,开源项目(如
TA-Lib、backtrader)通常用于计算均线、MACD、RSI等,策略偏短线、高频、统计套利。 - 在纯理论层面,开源项目认为两者是不一致的,甚至是对立的。
工程层面的务实:代码里“我全都要”
在实际的开源量化框架(如 Qlib、Backtrader、Zipline、vn.py)中,开发者往往不关心哲学争论,只看重信号的有效性。
- 多因子模型: 这是开源量化中最主流的做法,基本面数据(如ROE、营收增长)和技术面数据(如动量、波动率)被一起扔进机器学习模型(如XGBoost、LSTM)中作为特征(Features),它们被视为互补的输入,而不是一致的观点。
- 风控与择时: 很多开源策略会用基本面选股(选出好公司),用技术面择时(决定买入卖出点),用低市盈率筛选股票池,用RSI超卖作为买入信号。
- 在工程实现上,开源项目认为两者可以一致合作,共同服务于一个目标:提高夏普比率。
开源社区的特殊视角:数据与工具的分离
开源项目往往更关注数据获取和回测框架,而不是强制某种世界观。
- 数据源项目: 像
AKShare、Tushare、OpenBB这类项目,既提供财务数据接口,也提供行情数据接口,它们不判断谁对谁错,只是提供“原材料”。 - 策略分享平台: 在
QuantConnect或GitHub上,你可以看到纯技术面的策略(如海龟交易法则),也可以看到纯基本面的策略(如格雷厄姆价值投资),社区通常不认为它们一致,但认为它们适用于不同的市场环境和资金规模。 - 开源项目认为两者是平行的工具箱,用哪个取决于你的交易频率和资金容量。
学术与实证的碰撞
开源社区经常复现学术论文,学术界对两者的看法也影响了开源:
- 有效市场假说: 如果市场是弱式有效的,技术面无效;如果是半强式有效的,基本面也无效。
- 行为金融学: 认为两者都有缺陷,因为投资者非理性,开源项目中的情绪分析(如抓取推特、新闻)往往作为第三维度加入,试图调和两者。
- 开源社区倾向于认为单一维度都不够,两者结合(基本面定方向,技术面定时机)才是更稳健的做法。
开源项目并不认为基本面和技术面在哲学上是一致的。
- 如果你问一个纯技术面的开源开发者,他可能认为基本面是“玄学”;
- 如果你问一个做多因子的开源开发者,他可能认为两者是“不同频率的信号”;
- 如果你问一个做高频交易的开发者,他可能完全忽略基本面。
但在代码实现层面,开源社区的主流态度是:不管黑猫白猫,能通过回测、能控制回撤、能赚钱的就是好猫。 它们常常被融合在同一个策略中,作为互补的特征,而不是一致的信条。