【只能预测下个交易日】【不能盘中使用】
VOL-MA(也常写作 VMA),全称 Volume Moving Average,即成交量均线,是金融交易中最基础、最常用的技术指标之一。
VOL-MA5(5 日成交量均线)
VOL-MA10(10 日成交量均线)
VOL-MA20(20 日成交量均线)。
量价配合:股价上涨时,成交量 > VOL-MA,且VOL-MA5 上穿 VOL-MA10(金叉),通常视为资金进场、趋势强势的信号。
量价背离:股价上涨但成交量 < VOL-MA,或VOL-MA5 下穿 VOL-MA10(死叉),提示上涨动能不足,需警惕回调。
缩量确认:股价回调时,成交量萎缩至 VOL-MA 下方,抛压减轻,可能是阶段性底部信号。
import akshare as ak
import pandas as pd
# 日
# df = ak.stock_zh_a_hist(symbol="000021", period="daily", start_date="20250101", end_date="20260313", adjust="qfq")
# 周
# df = ak.stock_zh_a_hist(symbol="000021", period="weekly", start_date="20250101", end_date="20260313", adjust="qfq")
# df.to_csv("000021z.csv", index=False)
# print("数据已保存,共", len(df), "行")
df=pd.read_csv("000021z.csv")
# print(df.head())
# df["日期"] = pd.to_datetime(df["日期"]) # 转为时间格式
# df.sort_values("日期", inplace=True) # 按日期正序排列
df['vol_ma5']=df["成交量"].rolling(window=5).mean()
df['vol_ma10']=df["成交量"].rolling(window=10).mean()
df['vol_ma20']=df["成交量"].rolling(window=20).mean()
df['vol_ma60']=df["成交量"].rolling(window=60).mean()
VOL-MA自己定义
OBV(能量潮)
OBV 是将成交量与股价涨跌结合的累计指标


- OBV 与股价同步上涨:量价配合,上涨趋势健康;
- OBV 上涨但股价横盘:资金悄悄进场,可能即将突破;
- OBV 下跌但股价上涨:量价背离,上涨动能不足,警惕回调。
OBV 初始值设为 0(无前日数据,无法判断涨跌)
OBV=OBV昨日+(涨成交量/负成交量/0)