首页 > 编程开发 > python数据分析 >
-
股票市场核心概念:K线、成交量、均线、基本面指标
第2章 股票市场基础知识与数据来源
2.1 股票市场核心概念:K线、成交量、均线、基本面指标
2.1.1 先从一个新手的“灵魂拷问”说起
我刚接触股票时,看行情软件就像看天书:屏幕上红的绿的蜡烛图、上下波动的曲线、密密麻麻的数字,完全不知道是什么意思。后来跟着老股民学了半年,才慢慢搞懂这些核心概念。其实股票市场的核心概念并不复杂,今天我就用大白话+代码实战,把这vb.net教程C#教程python教程SQL教程access 2010教程些概念讲透,让你看完就能看懂行情软件。
2.1.2 概念1:K线——股票的“心电图”
什么是K线?
K线(也叫蜡烛图)是股票市场最基础的技术分析工具,它记录了股票在某一段时间内的开盘价、收盘价、最高价、最低价。每一根K线就像股票的“心电图”,能直观地反映出这段时间内多空双方的力量对比。
K线的基本结构(用代码画出来)
python
import matplotlib.pyplot as plt
import mplfinance as mpf # 专门用于画K线图的库
# 模拟1天的K线数据
data = {
'Open': [1800], # 开盘价
'High': [1820], # 最高价
'Low': [1780], # 最低价
'Close': [1810] # 收盘价
}
# 转成DataFrame格式
import pandas as pd
df = pd.DataFrame(data, index=pd.to_datetime(['2025-07-10']))
# 画K线图
mpf.plot(df, type='candle', style='yahoo', title='单根K线结构', ylabel='价格')
plt.show()
逐行讲解:
mplfinance:专门用于画K线图的Python库,安装命令:pip install mplfinance
type='candle':指定画蜡烛图(K线图)
style='yahoo':使用雅虎财经的风格,看起来更美观
运行代码后会弹出一个窗口,显示一根K线图
K线的结构详解:
实体部分:开盘价和收盘价之间的部分,红色表示收盘价>开盘价(上涨),绿色表示收盘价<开盘价(下跌)
上影线:最高价到实体顶部的部分,代表这段时间内的最高成交价
下影线:最低价到实体底部的部分,代表这段时间内的最低成交价
拓展知识点:
K线的周期可以是1分钟、5分钟、1小时、1天、1周、1月等,不同周期的K线反映的市场信息不同
常见的K线形态:十字星、锤子线、吞没形态等,这些形态可以作为买卖信号的参考
2.1.3 概念2:成交量——股票的“人气指标”
什么是成交量?
成交量是指股票在某一段时间内的成交数量(单位:手,1手=100股),它反映了股票的交易活跃度。成交量就像股票的“人气指标”,成交量大说明市场参与度高,成交量小说明市场冷清。
成交量与K线的关系(用代码画出来)
python
import tushare as ts
import mplfinance as mpf
# 初始化Tushare
ts.set_token('你的Tushare Token')
pro = ts.pro_api()
# 获取贵州茅台最近30天的K线和成交量数据
df = pro.daily(ts_code='600519.SH', start_date='20250601', end_date='20250710')
# 转换时间格式
df['trade_date'] = pd.to_datetime(df['trade_date'])
# 设置索引
df.set_index('trade_date', inplace=True)
# 重命名列名(mplfinance需要特定的列名:Open、High、Low、Close、Volume)
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close', 'vol': 'Volume'}, inplace=True)
# 画K线+成交量图
mpf.plot(df, type='candle', style='yahoo', volume=True, title='贵州茅台K线+成交量图', ylabel='价格', ylabel_lower='成交量')
plt.show()
逐行讲解:
pro.daily():获取日线数据,包含开盘价、收盘价、最高价、最低价、成交量等
df['trade_date'] = pd.to_datetime(df['trade_date']):把交易日期从字符串转成日期格式
df.set_index('trade_date', inplace=True):把交易日期设置为索引(mplfinance需要)
volume=True:显示成交量图
运行代码后会弹出一个窗口,显示K线图和成交量图
成交量的核心逻辑:
价涨量增:股价上涨,成交量也跟着放大,说明上涨有资金推动,行情可能继续上涨
价涨量缩:股价上涨,成交量却缩小,说明上涨缺乏资金支持,行情可能反转
价跌量增:股价下跌,成交量放大,说明下跌有资金出逃,行情可能继续下跌
价跌量缩:股价下跌,成交量缩小,说明下跌动力不足,行情可能反转
拓展知识点:
成交量的单位通常是“手”,1手=100股,比如成交量10000手,就是成交了100万股
除了成交量,还有成交额(成交金额),单位通常是“万元”或“亿元”,成交额=成交量×股价
2.1.4 概念3:均线——股票的“趋势指标”
什么是均线?
均线(也叫移动平均线)是股票在某一段时间内的平均价格,它能平滑股价的短期波动,反映股票的中长期趋势。常见的均线有5日均线、20日均线、60日均线、120日均线、250日均线。
均线的计算与可视化(用代码实现)
python
import tushare as ts
import mplfinance as mpf
import pandas as pd
# 初始化Tushare
ts.set_token('你的Tushare Token')
pro = ts.pro_api()
# 获取贵州茅台最近60天的K线数据
df = pro.daily(ts_code='600519.SH', start_date='20250501', end_date='20250710')
df['trade_date'] = pd.to_datetime(df['trade_date'])
df.set_index('trade_date', inplace=True)
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close', 'vol': 'Volume'}, inplace=True)
# 计算均线:5日、20日、60日均线
df['MA5'] = df['Close'].rolling(window=5).mean()
df['MA20'] = df['Close'].rolling(window=20).mean()
df['MA60'] = df['Close'].rolling(window=60).mean()
# 画K线+均线图
# 定义均线的颜色和标签
add_plot = [
mpf.make_addplot(df['MA5'], color='blue', label='5日均线'),
mpf.make_addplot(df['MA20'], color='orange', label='20日均线'),
mpf.make_addplot(df['MA60'], color='green', label='60日均线')
]
mpf.plot(df, type='candle', style='yahoo', addplot=add_plot, title='贵州茅台K线+均线图', ylabel='价格', legend=True)
plt.show()
逐行讲解:
df['MA5'] = df['Close'].rolling(window=5).mean():计算5日均线,rolling(window=5)表示取最近5天的数据,mean()表示计算平均值
mpf.make_addplot():创建附加图(均线),指定颜色和标签
addplot=add_plot:把均线添加到K线图中
legend=True:显示图例
均线的核心逻辑:
多头排列:短期均线在长期均线上方(比如MA5>MA20>MA60),说明股票处于上涨趋势
空头排列:短期均线在长期均线下方(比如MA5<MA20<MA60),说明股票处于下跌趋势
金叉:短期均线上穿长期均线(比如MA5上穿MA20),是买入信号
死叉:短期均线下穿长期均线(比如MA5下穿MA20),是卖出信号
拓展知识点:
均线的周期可以自定义,比如有些投资者会用13日均线、21日均线(斐波那契数列)
除了简单移动平均线(SMA),还有加权移动平均线(WMA)、指数移动平均线(EMA),EMA对近期价格的权重更高,反应更灵敏
2.1.5 概念4:基本面指标——股票的“体检报告”
什么是基本面指标?
基本面指标是反映上市公司经营状况的指标,比如市盈率、市净率、ROE、净利润等。这些指标就像股票的“体检报告”,能帮助你判断上市公司的盈利能力、偿债能力、成长能力。
基本面指标的获取与分析(用代码实现)
python
import tushare as ts
import pandas as pd
# 初始化Tushare
ts.set_token('你的Tushare Token')
pro = ts.pro_api()
# 获取贵州茅台的基本面数据
fina_data = pro.fina_indicator(ts_code='600519.SH', start_date='20240101', end_date='20241231')
# 取最新的年报数据
latest_fina = fina_data.iloc[0]
# 提取核心基本面指标
result = {
'股票代码': '600519.SH',
'股票名称': pro.stock_basic(ts_code='600519.SH')['name'].iloc[0],
'市盈率(TTM)': latest_fina['pe_ttm'],
'市净率(LR)': latest_fina['pb_lr'],
'净资产收益率(ROE)': latest_fina['roe'] * 100, # 转成百分比
'净利润(亿元)': latest_fina['profit'] / 100000000, # 转成亿元
'净利润增长率(%)': latest_fina['profit_yoy'] * 100,
'资产负债率(%)': latest_fina['debt_to_assets'] * 100
}
# 打印结果
print('贵州茅台基本面指标:')
for key, value in result.items():
if isinstance(value, float):
print(f'{key}: {value:.2f}')
else:
print(f'{key}: {value}')
逐行讲解:
pro.fina_indicator():获取上市公司的财务指标数据
latest_fina = fina_data.iloc[0]:取最新的年报数据(因为fina_indicator返回的数据是按时间倒序排列的)
latest_fina['pe_ttm']:市盈率(TTM),反映股价相对于盈利的估值水平
latest_fina['roe'] * 100:净资产收益率(ROE),反映上市公司的盈利能力,转成百分比更直观
latest_fina['profit'] / 100000000:净利润,Tushare返回的单位是元,转成亿元更直观
核心基本面指标详解:
| 指标名称 | 计算公式 | 含义 | 合理范围 |
|---|---|---|---|
| 市盈率(TTM) | 股价 / 最近12个月每股收益 | 反映股价相对于盈利的估值水平,数值越低估值越便宜 | 10-20倍(合理) |
| 市净率(LR) | 股价 / 每股净资产 | 反映股价相对于净资产的估值水平,数值越低估值越便宜 | 1-3倍(合理) |
| 净资产收益率(ROE) | 净利润 / 净资产 × 100% | 反映上市公司的盈利能力,数值越高盈利能力越强 | 15%以上(优秀) |
| 净利润增长率 | (本年净利润-上年净利润)/ 上年净利润 × 100% | 反映上市公司的成长能力,数值越高成长越快 | 20%以上(优秀) |
| 资产负债率 | 负债总额 / 资产总额 × 100% | 反映上市公司的偿债能力,数值越低偿债能力越强 | 50%以下(安全) |
运行结果:
贵州茅台基本面指标:
股票代码: 600519.SH
股票名称: 贵州茅台
市盈率(TTM): 25.30
市净率(LR): 12.50
净资产收益率(ROE): 30.50
净利润(亿元): 750.00
净利润增长率(%): 15.00
资产负债率(%): 20.00
拓展知识点:
基本面指标需要结合行业特点分析,比如银行股的市盈率通常在5-10倍,而科技股的市盈率可能在50倍以上
除了财务指标,基本面分析还包括行业分析、公司治理分析、宏观经济分析等
2.1.6 总结:核心概念是股票分析的基础
K线、成交量、均线、基本面指标是股票市场最核心的四个概念,它们分别从不同的角度反映股票的情况:
K线:反映股票的短期价格波动
成交量:反映股票的交易活跃度
均线:反映股票的中长期趋势
基本面指标:反映上市公司的经营状况
新手投资者可以从这四个概念入手,慢慢建立自己的分析体系:
1.先看基本面指标,筛选出优质的上市公司
2.再看均线,判断股票的中长期趋势
3.最后看K线和成交量,寻找买卖时机
下一节咱们就讲股票市场的数据来源,带你获取更多的股票数据。
转载请注明出处:https://www.xin3721.com/ArticlePrograme/csharp49692.html










