目录
- 1 股票基础信息
- 1.1 股票核心因子
- 1.2 获取股票信息
- 2 如何从接口获取股票数据
- 2.1 yfinance
- 2.2 finnhub-python
- 2.3 alpha_vantage
- 2.4 efinance
- 2.4 Tushare
- 3 如何从各大金融平台获取咨询信息
- 3.1 国外
- 3.2 国内
1 股票基础信息
1.1 股票核心因子
- 基本面因子
因子名称 | 计算公式 | 作用 |
---|---|---|
每股收益(EPS):公司净利润除以流通股总数 | 净利润 / 流通股总数 | 用于衡量公司为每股股票创造的利润 |
市盈率(P/E Ratio):股票价格除以每股收益。用于衡量股票的估值 | P/E Ratio = 股票价格 / 每股收益(EPS) | 用于评估股票的市场估值,高P/E Ratio通常表示市场对公司未来的增长预期较高 |
市净率(P/B Ratio):股票价格除以每股净资产。用于评估股票的市场价值相对于其账面价值的情况 | P/B Ratio = 股票价格 / 每股净资产 | 用于评估股票的市场价值与其账面价值的关系 |
股息收益率(Dividend Yield):每股股息除以股票价格。用于衡量投资收益 | 计算方法:Dividend Yield = 每股股息 / 股票价格 | 用于衡量投资的股息回报率 |
- 技术面因子
因子名称 | 说明 |
---|---|
移动平均线(MA) | 一定时间内股票收盘价格的平均值,常用的有5日、20日、50日和200日移动平均线 |
相对强弱指数(RSI) | 衡量股票价格的强弱程度,通常使用14天周期 |
指数平滑异同移动平均线(MACD) | 由快线(短期EMA)减去慢线(长期EMA)形成,用于判断股票的趋势变化 |
- 市场情绪因子
因子名称 | 说明 |
---|---|
成交量(Volume) | 股票在一定时间内的交易数量 |
换手率(Turnover Rate) | 股票在一定时间内的成交量除以流通股总数,反映股票的流动性 |
- 财务因子
因子名称 | 说明 | 计算公式 | 作用 |
---|---|---|---|
资产负债率(Debt to Asset Ratio) | 总负债除以总资产,用于衡量公司的财务风险 | Debt to Asset Ratio = 总负债 / 总资产 | 用于衡量公司的财务风险,较高的资产负债率表示公司承担的财务风险较大 |
净资产收益率(ROE)) | 净利润除以股东权益,反映公司的盈利能力 | ROE = 净利润 / 股东权益 | 用于评估公司利用股东权益获得净利润的能力 |
1.2 获取股票信息
我们用Alpha Vatage API获取拼多多的财务数据,首先可以从官网ALPHA官网获取一个API秘钥,并且确保安装了requests库。
获取公司财务信息我们可以使用"OVERVIEW"功能,不同的数据查询提供了不同的功能,例如“TIME_SERIES_DAILY"接口获取日交易数据,具体代码如下:
import requests
API_KEY = 'YOUR_ALPHA_VANTAGE_API_KEY'
TICKER = 'PDD'
# 获取公司年报数据
url = f'https://www.alphavantage.co/query?function=OVERVIEW&symbol={TICKER}&apikey={API_KEY}'
response = requests.get(url)
data = response.json()
# 打印返回的数据
for key, value in data.items():
print(f"{key}: {value}")
结果显示如下:
获取核心因子:
对应的结果如下:
Alpha Vantage 提供全球范围内的股票数据,不仅限于在美国上市的股票。它支持多个国际市场的股票查询和分析,包括但不限于美国、欧洲和亚洲的主要股票市场。Alpha Vantage 支持多种市场和交易所。你可以查询 Alpha Vantage 的文档或直接尝试不同的市场标识符(例如 .HK 用于香港,.L 用于伦敦,.TO 用于多伦多等)来获取数据 (目前不支持中国上海和深圳交易所上市的股票和香港的股票查询)
我们可以用Yahoo Finance提供的yfinance强大的工具获取中国股票数据,示例代码如下:
2 如何从接口获取股票数据
接下来介绍几个python包,如何获取股票数据
2.1 yfinance
yfinance(以前称为 fix_yahoo_finance)是一个方便的包,用于从 Yahoo Finance 获取股票数据。官方文档:yfinance
先安装如下:
pip install yfinance
基本股票数据读取:
import yfinance as yf
# 获取特斯拉的股票数据
tsla = yf.Ticker("TSLA")
# 获取历史数据
hist = tsla.history(period="1mo")
print(hist)
yfinance 支持多个国际市场的股票数据。以下是一些主要市场和相应的股票代码示例:
- 美国市场
Apple Inc. (AAPL)
Microsoft Corporation (MSFT)
Amazon.com, Inc. (AMZN) - 中国市场
PetroChina Company Limited (601857.SS) - 上海证券交易所
Tencent Holdings Limited (0700.HK) - 香港证券交易所
Alibaba Group Holding Limited (9988.HK) - 香港证券交易所 - 日本市场
Toyota Motor Corporation (7203.T)
Sony Group Corporation (6758.T) - 英国市场
HSBC Holdings plc (HSBA.L)
BP p.l.c. (BP.L) - 加拿大市场
Royal Bank of Canada (RY.TO)
Toronto-Dominion Bank (TD.TO) - 德国市场
Deutsche Bank AG (DBK.DE)
Siemens AG (SIE.DE) - 法国市场
LVMH Moët Hennessy Louis Vuitton (MC.PA)
TotalEnergies SE (TTE.PA) - 瑞士市场
Nestlé S.A. (NESN.SW)
Roche Holding AG (ROG.SW) - 澳大利亚市场
Commonwealth Bank of Australia (CBA.AX)
BHP Group Limited (BHP.AX) - 印度市场
Reliance Industries Limited (RELIANCE.NS)
Tata Consultancy Services Limited (TCS.NS)
如下是使用 yfinance 获取这些市场的股票数据的示例代码:
打印结果如下:
2.2 finnhub-python
finnhub-python 是 Finnhub 提供的一个包,用于获取实时股票数据、财务报表、经济数据等,需要注册一个 API 密钥。详情参考官方文档:
官方网址:Finnhub
首先需要安装包:
pip install finnhub-python
import finnhub
# 替换为你的 API 密钥
api_key = 'YOUR_API_KEY'
finnhub_client = finnhub.Client(api_key=api_key)
# 获取特斯拉的股票报价
quote = finnhub_client.quote('TSLA')
print(quote)
结果数据如下:
2.3 alpha_vantage
alpha_vantage 是一个用于从 Alpha Vantage 获取金融数据的包,也需要注册一个 API 密钥。官方网址:alpha_vantage, API接口文档说明:API接口文档
安装如下:
pip install alpha_vantage
from alpha_vantage.timeseries import TimeSeries
# 替换为你的 API 密钥
api_key = 'YOUR_API_KEY'
ts = TimeSeries(key=api_key, output_format='pandas')
data, meta_data = ts.get_daily(symbol='TSLA', outputsize='full')
print(data)
也可以直接用网页请求的方式获取数据,如下是获取苹果公司的一些信息:
import requests
stock_code='AAPL'
API_KEY='your own key'
url=f"https://www.alphavantage.co/query?function=OVERVIEW&symbol={stock_code}&apikey={ALPHA_VANTAGE_API_KEY}"
response = requests.get(url)
data = response.json()
print(data)
结果如下:
2.4 efinance
专门为中国市场设计的一个包,用于获取中国股票市场的数据。官方网址:efinance。首先安装如下:
pip install efinance
例子如下:
import efinance as ef
# 获取中国平安的股票数据
data = ef.stock.get_quote_history('000001') # 平安银行的股票代码
print(data)
打印结果如下:
2.4 Tushare
一个开放的金融数据接口,可以获取股票数据、财经新闻、公告等。官网如下:Tushare
pip install tushare
用例如下:
import tushare as ts
# 设置你的 Tushare API token
ts.set_token('YOUR_API_TOKEN')
# 初始化接口
pro = ts.pro_api()
# 获取平安银行的日线行情
df = pro.daily(ts_code='000001.SZ', start_date='20220101', end_date='20221231')
print(df)
3 如何从各大金融平台获取咨询信息
3.1 国外
名称 | 种类 |
---|---|
社会科学研究网络 | 学术类 |
美国国民经济研究局 | 学术类 |
雅虎财经 | 金融网站和博客 |
TradingMarkets | 金融网站和博客 |
Seeking Alpha | 金融网站和博客 |
TheStreet | 金融网站和博客 |
Alea blog | 金融网站和博客 |
Elite Trader | 交易员论坛 |
Wealth-Lab | 交易员论坛 |
3.2 国内
- 同花顺
- 东方财富
- 雪球
- Wind资讯
- 证券时报
- 华泰证券