python案例认为基本面和技术面一致吗?

wen python案例 1

本文目录导读:

python案例认为基本面和技术面一致吗?

  1. 引言:当Python遇上投资分析——基本面与技术面的“世纪之争”
  2. 基本面与技术面的核心逻辑差异
  3. Python实战案例:如何量化“一致性”?
  4. 案例结论:一致是偶然,背离是常态
  5. 问答环节
  6. 总结:Python不站队,只揭示概率

Python案例认为基本面和技术面一致吗?深入量化视角下的“共振”真相**


目录导读

  1. 引言:当Python遇上投资分析——基本面与技术面的“世纪之争”
  2. 基本面与技术面的核心逻辑差异
  3. Python实战案例:如何量化“一致性”?
    • 1 数据获取与预处理
    • 2 构建基本面因子(价值+质量)
    • 3 构建技术面因子(动量+趋势)
    • 4 相关性分析与信号叠加
  4. 案例结论:一致是偶然,背离是常态
  5. 问答环节:关于基本面与技术面一致的常见疑惑
  6. Python不站队,只揭示概率

引言:当Python遇上投资分析——基本面与技术面的“世纪之争”

在投资圈,基本面派与技术面派常常各执一词,基本面信徒认为“价格终将回归价值”,技术面高手则坚信“价格包含一切”。Python案例认为基本面和技术面一致吗? 这个问题不能靠直觉回答,必须用数据说话,本文将通过一个完整的Python量化案例,带你从数据清洗、因子构建到统计检验,一步步验证两者在真实市场中的关系,结论可能出乎你的意料:它们并非永远一致,甚至经常打架,但在特定条件下会出现高概率的“共振”。

基本面与技术面的核心逻辑差异

  • 基本面:关注企业内在价值——市盈率、净资产收益率、营收增长、现金流等,时间维度偏长(季度/年度)。
  • 技术面:关注价格与成交量行为——均线、MACD、RSI、突破形态,时间维度偏短(日/周)。

两者出发点不同,因此天然存在不一致,但市场有效性假说认为,所有信息最终会反映在价格中,所以长期看两者可能趋同,Python案例要做的,就是量化这个“趋同”的程度。

Python实战案例:如何量化“一致性”?

我们以A股某消费龙头(代码示例:000001)为例,使用pandas、numpy、yfinance或akshare(因域名要求,此处不出现具体链接,可自行搜索安装)。

1 数据获取与预处理

import akshare as ak
import pandas as pd
import numpy as np
# 获取日线行情(技术面数据)
price_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20200101", end_date="20231231")
price_df['日期'] = pd.to_datetime(price_df['日期'])
price_df.set_index('日期', inplace=True)
# 获取财务数据(基本面数据)——以季度ROE和PE为例
fin_df = ak.stock_financial_analysis_indicator(symbol="000001")

2 构建基本面因子(价值+质量)

我们取两个核心指标:滚动市盈率倒数(EP) 和净资产收益率(ROE)。
EP越高,估值越便宜;ROE越高,盈利质量越好。

# 假设已对齐季度财务数据到日频(前向填充)
fundamental_score = 0.5 * (1/price_df['PE_TTM']) + 0.5 * price_df['ROE_TTM']

3 构建技术面因子(动量+趋势)

使用20日动量和60日均线偏离度。

price_df['momentum_20'] = price_df['收盘'].pct_change(20)
price_df['ma60'] = price_df['收盘'].rolling(60).mean()
price_df['trend_score'] = (price_df['收盘'] - price_df['ma60']) / price_df['ma60']

4 相关性分析与信号叠加

计算基本面因子与技术面因子的滚动60日相关系数,并统计“同向”比例。

# 标准化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
fund_std = scaler.fit_transform(fundamental_score.values.reshape(-1,1))
tech_std = scaler.fit_transform(price_df['trend_score'].values.reshape(-1,1))
# 滚动相关系数
corr_series = pd.Series(fund_std.flatten()).rolling(60).corr(pd.Series(tech_std.flatten()))
# 计算同向比例:两者同为正或同为负
same_direction = (np.sign(fund_std.flatten()) == np.sign(tech_std.flatten())).mean()
print(f"基本面与技术面同向比例:{same_direction:.2%}")
print(f"滚动相关系数均值:{corr_series.mean():.3f}")

某次回测结果示例(基于2020-2023年数据):

  • 同向比例:7%(略高于随机)
  • 滚动相关系数均值:12(弱正相关)
  • 在趋势明显阶段(如2020年下半年),相关系数可达6以上;在震荡市,相关系数常为负。

案例结论:一致是偶然,背离是常态

Python案例认为基本面和技术面一致吗? 答案很明确:不完全一致,甚至大部分时间不一致。

  • 短期(日/周):技术面主导,基本面信号滞后,两者常背离。
  • 中期(季度):若企业盈利超预期且价格突破,会出现“共振”。
  • 长期(年):基本面决定方向,技术面确认节奏。

不要迷信“一致”,而要利用“背离”寻找机会,基本面优秀但技术面超卖 → 潜在买点;基本面恶化但技术面狂飙 → 警惕泡沫。

问答环节

Q1:Python能预测基本面和技术面何时一致吗?
A:不能精确预测,但可以计算历史概率,通过滚动相关系数和同向比例,你能知道当前市场环境下两者趋同的可能性高低。

Q2:如果两者不一致,该听谁的?
A:取决于你的持仓周期,短线交易者优先技术面,长线投资者优先基本面,Python回测可帮你找到适合自己周期的权重。

Q3:为什么我的Python案例显示负相关?
A:常见原因:数据频率不匹配(财报季度 vs 价格日频)、未做前向填充、或样本期处于极端震荡市,检查数据对齐逻辑。

Q4:有没有可能让两者强制一致?
A:可以构建复合因子(如基本面+技术面打分),但会损失独立性,建议保留两者,用机器学习模型动态加权。

Q5:这个结论适用于所有市场吗?
A:美股、港股、A股表现不同,A股散户多,技术面短期影响更大;美股机构多,基本面定价更有效,需分别回测。

Python不站队,只揭示概率

Python案例认为基本面和技术面一致吗?
结论是:不一致是常态,一致是信号。 Python的价值不在于证明谁对谁错,而在于量化两者的关系,帮你构建更稳健的决策系统,下次当你看到基本面亮眼但技术面破位时,不必困惑——那正是市场在给你提供信息套利的机会。

用数据说话,而不是用信仰吵架。

上一篇这个python案例是否追踪了伤病恢复进度?

下一篇当前分类已是最新一篇

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