问题描述
API文档中数据字典-技术分析指标-VOL 成交量
VOL(security_list, check_date, M1=5, M2=10, unit = '1d', include_now = True, fq_ref_date = None)
中的M1和M2分别代表什么含义?有知道的小伙伴能帮忙解答一下吗?
解决方案
在 JoinQuant (聚宽) 平台的技术分析指标库(jqlib.technical_analysis)中,VOL 函数用于获取成交量及其移动平均线数据。这个函数的设计参考了传统炒股软件(如通达信、同花顺)中的 VOL 指标。
M1 和 M2 参数的含义
在函数 VOL(security_list, check_date, M1=5, M2=10, unit = '1d', include_now = True, fq_ref_date = None) 中:
M1:代表第一条成交量移动平均线的计算周期。默认值为5,表示计算 5 个单位周期(如果unit='1d',则为 5 日)的成交量简单移动平均线(MAVOL1)。M2:代表第二条成交量移动平均线的计算周期。默认值为10,表示计算 10 个单位周期(如果unit='1d',则为 10 日)的成交量简单移动平均线(MAVOL2)。
传统软件中的对应关系
在通达信等软件中,VOL 指标的公式通常如下:
VOLUME:VOL,VOLSTICK;
MAVOL1:MA(VOLUME,M1);
MAVOL2:MA(VOLUME,M2);
聚宽的 VOL 函数正是为了复现这一指标,它通常会返回三个值(具体以 API 实际返回的字典或元组为准,通常包含当期成交量、M1周期均量、M2周期均量)。
使用示例
假设你想获取平安银行(000001.XSHE)在某天的成交量,以及它的 5 日均量和 10 日均量:
from jqlib.technical_analysis import VOL
# 获取 2023-10-10 的 VOL 指标数据
# M1=5 表示 5日均量,M2=10 表示 10日均量
vol_data, mavol1_data, mavol2_data = VOL('000001.XSHE', check_date='2023-10-10', M1=5, M2=10, unit='1d')
print("当日成交量:", vol_data['000001.XSHE'])
print("5日平均成交量:", mavol1_data['000001.XSHE'])
print("10日平均成交量:", mavol2_data['000001.XSHE'])
总结:M1 和 M2 就是用来让你自定义想要观察的成交量均线周期的,你可以根据自己的策略需求,将它们修改为 5、10、20、60 等任意整数周期。