Files
Hermes-Skills/tonghuashun/references/buy-point-analysis.md
T
mike 657dc41c46 Initial commit: Trading skills collection
- OKX交易自动化 (okx-auto-position, okx-crypto, okx-exchange)
- 交易信号处理 (signal-confirmation-templates, trading-signal-aggregator)
- 量化因子挖掘 (quant-factor-mining)
- 长桥集成 (longbridge-cli, longbridge-python-sdk)
- 六合彩分析 (lottery-hk)
- 股息投资 (dividend-investing, dividend-scanner)
- 日内交易 (intraday-trading)
- 同花顺 (tonghuashun)
2026-07-05 02:39:41 -04:00

4.9 KiB
Raw Blame History

A股买点分析框架

综合技术面 + 估值 + 财务 + 盈利预测的完整分析模板。

分析步骤

1. 获取数据

import akshare as ak
import pandas as pd
import numpy as np
from datetime import datetime, timedelta

symbol = '000333'  # 股票代码
today = datetime.now().strftime('%Y%m%d')
start_1y = (datetime.now() - timedelta(days=365)).strftime('%Y%m%d')

# K线(近1年)
df = ak.stock_zh_a_hist(symbol=symbol, period='daily',
                        start_date=start_1y, end_date=today, adjust='qfq')

⚠️ 代理问题:如果系统有全局代理,AKShare 会报 ProxyError。 先清除代理:

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

或 Python 内:

for k in ['http_proxy','https_proxy','HTTP_PROXY','HTTPS_PROXY']:
    os.environ.pop(k, None)

2. 技术面分析

价格位置

current = df.iloc[-1]
year_high = df['最高'].max()
year_low = df['最低'].min()
position = (current['收盘'] - year_low) / (year_high - year_low) * 100

均线系统

for m in [5, 10, 20, 60, 120]:
    ma = pd.Series(df['收盘']).rolling(m).mean().iloc[-1]
    dist = (current['收盘'] - ma) / ma * 100  # 偏离度

均线多头排列 = 短期在长期之上。偏离度 >5% 警惕回调,<-5% 可能超跌。

ATR 波动率

tr_list = []
for i in range(1, len(df.tail(20))):
    h_l = df.tail(20).iloc[i]['最高'] - df.tail(20).iloc[i]['最低']
    h_pc = abs(df.tail(20).iloc[i]['最高'] - df.tail(20).iloc[i-1]['收盘'])
    l_pc = abs(df.tail(20).iloc[i]['最低'] - df.tail(20).iloc[i-1]['收盘'])
    tr_list.append(max(h_l, h_pc, l_pc))
atr14 = sum(tr_list[-14:]) / min(14, len(tr_list))

支撑阻力

support20 = df.tail(20)['最低'].min()
resist20 = df.tail(20)['最高'].max()
support60 = df.tail(60)['最低'].min()
resist60 = df.tail(60)['最高'].max()

量能分析

avg_vol_20 = df.tail(20)['成交量'].mean()
latest_vol_ratio = df.iloc[-1]['成交量'] / avg_vol_20

量比 > 1.5 = 显著放量,< 0.5 = 缩量。

MACD

closes = df['收盘'].values
ema12 = pd.Series(closes).ewm(span=12).mean().iloc[-1]
ema26 = pd.Series(closes).ewm(span=26).mean().iloc[-1]
dif = ema12 - ema26
dea = pd.Series(pd.Series(closes).ewm(span=12).mean() - pd.Series(closes).ewm(span=26).mean()).ewm(span=9).mean().iloc[-1]

近期趋势强度

up_days = len(df.tail(20)[df.tail(20)['涨跌幅'] > 0])
down_days = 20 - up_days
recent_10_return = df.tail(10)['涨跌幅'].sum()
recent_5_return = df.tail(5)['涨跌幅'].sum()

3. 估值分析

# 东方财富实时行情含PE/PB/市值
df_spot = ak.stock_zh_a_spot_em()
row = df_spot[df_spot['代码'] == symbol].iloc[0]
pe_dynamic = row['市盈率-动态']
pb = row['市净率']
market_cap = row['总市值']

4. 盈利预测

df_fc = ak.stock_profit_forecast_ths(symbol=symbol)
# 返回: 年度, 预测机构数, 最小值, 均值, 最大值, 行业平均数

# 计算远期PE
current_price = df.iloc[-1]['收盘']
for _, r in df_fc.iterrows():
    pe_fwd = current_price / r['均值']
    print(f"{r['年度']}E PE: {pe_fwd:.1f}x")

5. 财务基本面

new API (长格式)

df_f = ak.stock_financial_abstract_new_ths(symbol=symbol)
profit = df_f[df_f['metric_name'] == 'parent_holder_net_profit'].iloc[0]
yoy = profit['yoy']  # 同比增长率

旧API (宽格式)

df_f = ak.stock_financial_abstract_ths(symbol=symbol)

现金流

df_cf = ak.stock_financial_cash_ths(symbol=symbol)

资产负债

df_d = ak.stock_financial_debt_ths(symbol=symbol)

6. 买点策略模板

策略A:回踩均线建仓(稳健)

第一买点: MA20 ± 0.5
止损: S60 - 1 (略低于中期支撑)
目标: R20 (近20日高点)

策略B:突破确认加仓(激进)

第一买点: 现价轻仓
第二买点: 突破MA20后回踩确认
止损: MA10下方
目标: 前高

策略C:等回调(最稳健)

买点: S20 ~ (S20 + 0.5 * ATR)
止损: S60 - ATR
目标: R20

输出格式

简洁卡片式,用 emoji + 表格,避免大段文字。包含:

  • 📊 盘面概览(今日涨跌、量比、ATR
  • 📈 均线位置(表格式)
  • 🎯 支撑阻力
  • 💰 估值(PE/PB + 远期PE
  • 催化剂 + ⚠️ 风险
  • 具体买点/止损/目标位

数据源选择

数据 推荐函数 速度
K线/行情 stock_zh_a_hist() 东方财富 1-2s
实时行情含PE stock_zh_a_spot_em() 东方财富 ~70s(首) / 快(缓存)
财务摘要(新) stock_financial_abstract_new_ths() 2-3s
财务摘要(旧/宽) stock_financial_abstract_ths() 2-3s
盈利预测 stock_profit_forecast_ths() 2-3s
现金流 stock_financial_cash_ths() 2-3s
资产负债 stock_financial_debt_ths() 2-3s
主营业务 stock_zyjs_ths() 1-2s