python股票分析挖掘预测技术指标知识大全之量价指标详解(5)

发布时间:2024年01月03日

本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包。

我们已经初步的接触与学习其中数据分析中常见的3大利器---Numpy,Pandas,Matplotlib库。

也简单介绍一下数据获取的二种方法,通过金融数据接口和爬虫获取。

介绍了指标之王MACD,随机指标KDJ和BOLL指标线的详细用法

这一章我们学习一下量价指标,如果有人问我所有指标哪个最值得学习,我首推的就是这个量价指标,股市上所有的都可能骗人,除了成交量,通过成交量的突然放大等异常走势,我们最有可能判断主力的下一步动作。
?

量价指标详解

(1)量价指标解释

量价关系,是股票里所有指标中最重要、最核心,最为有用的指标。股票软件上的指标,大部分就是通过统计学的方法,由量价关系演变而来。很多炒股多年的股友会告诉你,学炒股其实只要学量价关系就够了。

那么,量价关系到底是什么呢?接下来,会将其中的逻辑关系详细分析,只要你懂了其中的逻辑,再回到股票K线本身上,基本就可以做到完美的技术面分析了。

量价关系中,量就是指成交量,价就是指股票的价格(大盘量价,量一般指成交额)。经济学里面讲过,商品的价格大部分是由供给与需求决定的,股票本身有买卖,也可以作为一种特殊的商品。卖方便是供给方,卖方则是需求方,当供大于求的时候,价格将是下跌的,股票自然也是下跌;当供不应求的时候,因为买方需求意愿比较大,商品不足时,为了能获得商品,买方愿意支付更高的价格购买商品,也就推动了商品的价格上涨,所以此时的股价也是上涨的。

(2)量价指标计算

在Python中,你可以使用pandas库来处理数据并计算量价指标。以下是计算量价指标的一些常见公式:

  1. 成交量:成交量 = V
  2. 平均每笔成交金额:平均每笔成交金额 = V / P
  3. 量比:量比 = V / V(-1)
  4. 均量线:均量线 = (V + V(-1)) / 2
  5. 量升价跌:量升价跌 = V - P
  6. 量缩价跌:量缩价跌 = V / P
  7. 量缩价升:量缩价升 = V / P
  8. 量增价跌:量增价跌 = V - P
  9. 量增价升:量增价升 = V / P
  10. 量减价跌:量减价跌 = V - P

其中,V表示成交量,P表示收盘价,V(-1)表示前一交易日的成交量。

以下是一个使用pandas计算量价指标的示例代码:

import pandas as pd  
  
# 读取数据  
data = pd.read_csv('000271.csv')  
  
# 获取成交量数据和收盘价数据  
volume = data['Volume']  
close = data['Close']  
  
# 计算量比指标  
volume_ratio = volume / volume.shift(1)  
  
# 计算均量线指标  
mean_volume = (volume + volume.shift(1)) / 2

(3)量增价平买点

股价经过持续下跌到低位状态,出现了成交量增加但股价平稳状态,说明此股在底部蓄积力量,主力进入准备拉伸的状态

我们用一段代码验证一下:

# !/usr/bin/env python
# coding=utf-8
import pandas as pd
import matplotlib.pyplot as plt
from mpl_finance import candlestick2_ochl
from matplotlib.ticker import MultipleLocator
# 根据指定代码和时间范围,获取股票数据
plt.rcParams['font.family'] = 'Heiti TC'
plt.rcParams['font.sans-serif'] = ['SimHei']
df = pd.read_csv('600276.csv',encoding='gbk')
# 设置大小,共享x坐标轴
figure,(axPrice, axVol) = plt.subplots(2, sharex=True, figsize=(15,8))
# 调用方法绘制K线图
candlestick2_ochl(ax = axPrice,
                  opens=df["open"].values, closes=df["close"].values,
                  highs=df["high"].values, lows=df["low"].values,
                  width=0.75, colorup='red', colordown='green')
axPrice.set_title("600276K线图和均线图")  # 设置子图标题
df['close'].rolling(window=3).mean().plot(ax=axPrice,color="red",label='3日均线')
df['close'].rolling(window=5).mean().plot(ax=axPrice,color="blue",label='5日均线')
df['close'].rolling(window=10).mean().plot(ax=axPrice,color="green",label='10日均线')
axPrice.legend(loc='best')  # 绘制图例
axPrice.set_ylabel("价格(单位:元)")
axPrice.grid(True)          # 带网格线
# 如下绘制成交量子图
# 直方图表示成交量,用for循环处理不同的颜色
for index, row in df.iterrows():
    if(row['close'] >= row['open']):
        axVol.bar(row['date'],row['volume']/1000000,width = 0.5,color='red')
    else:
        axVol.bar(row['date'],row['volume']/1000000,width = 0.5,color='green')
axVol.set_ylabel("成交量(单位:万手)")   # 设置y轴标题
axVol.set_title("600276成交量")    # 设置子图的标题
axVol.set_ylim(0,df['volume'].max()/1000000*1.2)    # 设置y轴范围
xmajorLocator = MultipleLocator(5)                  # 将x轴主刻度设置为5的倍数
axVol.xaxis.set_major_locator(xmajorLocator)
axVol.grid(True)    # 带网格线
# 旋转x轴的展示文字角度
for xtick in axVol.get_xticklabels():
    xtick.set_rotation(15)
plt.rcParams['font.sans-serif']=['SimHei']
plt.show()

图片:

(4)量减价平卖点

股价经过一段时间盘整,或者出现放量快速下滑的情况,是卖出信号

python代码

?

# !/usr/bin/env python
# coding=utf-8
import pandas as pd
import matplotlib.pyplot as plt
from mpl_finance import candlestick2_ochl
from matplotlib.ticker import MultipleLocator
# 根据指定代码和时间范围,获取股票数据
plt.rcParams['font.family'] = 'Heiti TC'
plt.rcParams['font.sans-serif'] = ['SimHei']
df = pd.read_csv('600276.csv',encoding='gbk')
# 设置大小,共享x坐标轴
figure,(axPrice, axVol) = plt.subplots(2, sharex=True, figsize=(15,8))
# 调用方法绘制K线图
candlestick2_ochl(ax = axPrice,
                  opens=df["open"].values, closes=df["close"].values,
                  highs=df["high"].values, lows=df["low"].values,
                  width=0.75, colorup='red', colordown='green')
axPrice.set_title("线图和均线图")  # 设置子图标题
df['close'].rolling(window=3).mean().plot(ax=axPrice,color="red",label='3日均线')
df['close'].rolling(window=5).mean().plot(ax=axPrice,color="blue",label='5日均线')
df['close'].rolling(window=10).mean().plot(ax=axPrice,color="green",label='10日均线')
axPrice.legend(loc='best')  # 绘制图例
axPrice.set_ylabel("价格(单位:元)")
axPrice.grid(True)          # 带网格线
# 如下绘制成交量子图
# 直方图表示成交量,用for循环处理不同的颜色
for index, row in df.iterrows():
    if(row['close'] >= row['open']):
        axVol.bar(row['date'],row['volume']/1000000,width = 0.5,color='red')
    else:
        axVol.bar(row['date'],row['volume']/1000000,width = 0.5,color='green')
axVol.set_ylabel("成交量(单位:万手)")   # 设置y轴标题
axVol.set_title("600276成交量")    # 设置子图的标题
axVol.set_ylim(0,df['volume'].max()/1000000*1.2)    # 设置y轴范围
xmajorLocator = MultipleLocator(5)                  # 将x轴主刻度设置为5的倍数
axVol.xaxis.set_major_locator(xmajorLocator)
axVol.grid(True)    # 带网格线
# 旋转x轴的展示文字角度
for xtick in axVol.get_xticklabels():
    xtick.set_rotation(15)
plt.rcParams['font.sans-serif']=['SimHei']
plt.show()

图片显示:

(5)量增价升买点?

量增价升买点的原理是基于市场供需关系的分析。当成交量放大时,表明市场上的买方力量较强,股票的需求量较大;而价格上涨则表明卖方愿意以更高的价格出售股票,这进一步证明了买方力量的强大。因此,量增价升买点的出现意味着股票价格有继续上涨的动力,投资者可以考虑买入该股票。需要注意的是,这只是一个简单的示例代码,实际的股票投资需要更多的分析和考虑因素。

代码:

import pandas as pd  
  
# 读取数据  
data = pd.read_csv('000271.csv')  
  
# 获取成交量数据和收盘价数据  
volume = data['Volume']  
close = data['Close']  
  
# 计算量增价升买点  
buy_signal = (volume > volume.shift(1)) & (close > close.shift(1))

(6)量增价跌卖点

量增价跌卖点的原理是基于市场供需关系的分析。当成交量放大时,表明市场上的卖方力量较强,股票的供应量较大;而价格下跌则表明买方不愿意以更高的价格购买股票,这进一步证明了卖方力量的强大。因此,量增价跌卖点的出现意味着股票价格有继续下跌的可能,投资者可以考虑卖出该股票。需要注意的是,这只是一个简单的示例代码,实际的股票投资需要更多的分析和考虑因素。

代码案例

import pandas as pd  
  
# 读取数据  
data = pd.read_csv('data.csv')  
  
# 获取成交量数据和收盘价数据  
volume = data['Volume']  
close = data['Close']  
  
# 计算量增价跌卖点  
sell_signal = (volume > volume.shift(1)) & (close < close.shift(1))

上述主要讲了这四种明显的买卖点,其他的买卖点最好结合其他指标一起运用,谢谢大家,这一章就讲到这里

文章来源:https://blog.csdn.net/zhuweilong123/article/details/135359351
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。