python:talib 市场情绪指标 BRAR

python:talib 市场情绪指标 BRAR情绪指标 简称 ARBR 或 BRAR 由人气指标 AR 和意愿指标 BR 构成 AR 和 BR 都是对通过对历史股价走势的分析 反映市场当前情况下多空双方的力量强弱对比 推断市场交易情绪 从而对趋势的形成与反转作出预判 AR 刻画的是市场交易人气

大家好,我是讯享网,很高兴认识大家。

情绪指标,简称 ARBR 或 BRAR,由人气指标(AR)和意愿指标(BR)构成。 AR 和 BR 都是对通过对历史股价走势的分析,反映市场当前情况下多空双方的力量强弱对比,推断市场交易情绪,从而对趋势的形成与反转作出预判。

AR刻画的是市场交易人气,人气越旺,股价越高,而股价攀升带来的赚钱效应又会不断带动人气上升,但是物极必反。当AR值升高至一定限度时,代表能量已经消耗殆尽,缺乏推升力道的股价,出现反转概率增大。BR反映的是市场交易意愿,以“反市场心理”为基础,当市场人气狂热时卖出,人气悲观时买进。

BR:意愿指标是以昨日收市价为基础,分别与当日最高,最低价相比,通过一定时期收市价在报价中的地位,反映市场买卖意愿的程度。

talib_arbr.py

# -*- coding: utf-8 -*- import os, sys import pandas as pd import numpy as np import matplotlib.pyplot as plt import tushare as ts import talib as ta if len(sys.argv) ==2: code = sys.argv[1] else: print('usage: python talib_arbr.py stockcode ') sys.exit(1) if len(code) !=6: print('stock code length: 6') sys.exit(2) df = ts.get_k_data(code) if df.empty == True: print(" df is empty ") sys.exit(2) df = df[ df['date'] > '2021-01-01'] if len(df) < 60: print(len(df)," < 60") sys.exit(2) df = df[['open','high','low','close']] print(df.tail()) df['HO']=df.high-df.open df['OL']=df.open-df.low df['HCY']=df.high-df.close.shift(1) df['CYL']=df.close.shift(1)-df.low # 计算AR、BR指标 df['AR']=ta.SUM(df.HO, timeperiod=26)/ta.SUM(df.OL, timeperiod=26)*100 df['BR']=ta.SUM(df.HCY, timeperiod=26)/ta.SUM(df.CYL, timeperiod=26)*100 df = df[['close','AR','BR']].dropna() df.reset_index(inplace=True) # 正常显示画图时出现的中文和负号 from pylab import mpl mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False # 对价格和 AR,BR进行可视化 fig,axes = plt.subplots(2,1) df['close'].plot(ax=axes[0], grid=True, title=code, color='r') plt.xlabel('AR,BR') df[['AR','BR']].plot(ax=axes[1], grid=True) plt.legend(loc='best', shadow=True) plt.show() 

讯享网

运行 python talib_brar.py 000661


讯享网

2. 使用BRAR指标,如何找到买入点?

若AR<50,BR<40,能量已累积爆发力,行情将起死回生,应买入.

talib_brar.py

讯享网# -*- coding: utf-8 -*- import os, sys import pandas as pd import numpy as np import tushare as ts import talib as ta if len(sys.argv) ==2: code = sys.argv[1] else: print('usage: python talib_brar.py stockcode ') sys.exit(1) if len(code) !=6: print('stock code length: 6') sys.exit(2) df = ts.get_k_data(code) if df.empty == True: print(" df is empty ") sys.exit(2) df = df[ df['date'] > '2021-01-01'] if len(df) <60: print(len(df)," < 60") sys.exit(2) df = df[['date','open','high','low','close']] #print(df.tail()) df['HO']=df.high-df.open df['OL']=df.open-df.low df['HCY']=df.high-df.close.shift(1) df['CYL']=df.close.shift(1)-df.low # 计算AR、BR指标 df['AR']=ta.SUM(df.HO, timeperiod=26)/ta.SUM(df.OL, timeperiod=26)*100 df['BR']=ta.SUM(df.HCY, timeperiod=26)/ta.SUM(df.CYL, timeperiod=26)*100 df = df.dropna() df.index = range(len(df)) print('df.len=',len(df)) print(df.tail()) alist =[] # 求买入点日期 for i in range(len(df)-30, len(df)): if df.loc[i, 'AR'] <50 and df.loc[i, 'BR'] <40: alist.append(i) print(list(df.iloc[i])[0:5]) print('alist=',alist) 

运行 python talib_brar.py 000661

['2022-01-24', 172.11, 180.0, 165.92, 171.24] ['2022-01-25', 167.08, 170.4, 164.0, 164.11] ['2022-01-27', 168.48, 171.55, 165.51, 169.83] alist= [231, 232, 234]

参考: 【手把手教你】Python量化股票市场情绪指标ARBR - 知乎

小讯
上一篇 2025-02-17 20:19
下一篇 2025-03-17 21:56

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42828.html