TA-Lib学习研究笔记——Statistic Functions (六)
1.BETA - Beta
函数名:BETA
名称:β系数也称为贝塔系数
简介:一种风险指数,用来衡量个别股票或股票基金相对于整个股市的价格波动情况贝塔系数衡量股票收益相对于业绩评价基准收益的总体波动性,是一个相对指标。 β 越高,意味着股票相对于业绩评价基准的波动性越大。 β 大于 1 ,则股票的波动性大于业绩评价基准的波动性。反之亦然。
用途:
1)计算资本成本,做出投资决策(只有回报率高于资本成本的项目才应投资);
2)计算资本成本,制定业绩考核及激励标准;
3)计算资本成本,进行资产估值(Beta是现金流贴现模型的基础);
4)确定单个资产或组合的系统风险,用于资产组合的投资管理,特别是股指期货或其他金融衍生品的避险(或投机)
语法:
real = BETA(high, low, timeperiod=5)
说明:
df_index是深证指数,由于数据级别差异大,分别做图。
也可以用成交金额对比,amount 。
df['BETA'] = tlb.BETA(df['close'],df_index['close'], timeperiod=5)
#df['BETA'] = tlb.BETA(df['amount'],df_index['amount'], timeperiod=5)
# 做图
#df['sz_amount']=df_index['amount']
df['sz_close']=df_index['close']
df[['BETA','close','sz_close']].plot(subplots=True,title='BETA',grid=True)
#plt.grid() #启用网格
plt.legend() # 设置图示
plt.show()
用amount做测试一下,数据差别大,通过标准化数据,进行对比分析:
from sklearn.preprocessing import MinMaxScaler
#数据获取
start_date = '2021-01-01'
end_date = '2022-01-01'
df = get_data('000002', start_date, end_date)
df_index = get_index('399001', start_date, end_date)
# 创建示例数据
df_scale = pd.DataFrame()
df_scale['amount'] = df['amount']
df_scale['sz_amount'] = df_index['amount']
# 初始化MinMaxScaler并进行拟合和转换
scaler = MinMaxScaler()
df_standardization = scaler.fit_transform(df_scale)
#print(df_scaled)
# 将NumPy数组转换为Pandas DataFrame
df_standardization = pd.DataFrame(df_standardization, columns=df_scale.columns)
df_standardization['trade_date'] = df.index
# 设置索引
df_standardization.set_index(['trade_date'], inplace=True)
# 查看标准化后的数据
#print(df_standardization)
df_standardization['BETA'] = tlb.BETA(df_standardization['amount'],df_standardization['sz_amount'], timeperiod=5)
# 做图
df_standardization[['BETA','amount','sz_amount']].plot(title='BETA')
plt.grid() #启用网格
plt.legend() # 设置图示
plt.show()
2.CORREL
Pearson’s Correlation Coefficient ®
函数名:CORREL
名称:皮尔逊相关系数
简介:用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间皮尔逊相关系数是一种度量两个变量间相关程度的方法。它是一个介于 1 和 -1 之间的值,其中,1 表示变量完全正相关, 0 表示无关,-1 表示完全负相关。
语法:
real = CORREL(high, low, timeperiod=30)
对比万科和保利的相关性:
df1 = get_data('000002', start_date, end_date)
df2 = get_data('600048', start_date, end_date)
df1['CORREL'] = tlb.CORREL(df1['close'],df2['close'], timeperiod=30)
# 做图
df1['close2'] = df2['close']
df1[['CORREL','close','close2']].plot(subplots=True,title='CORREL',grid=True)
plt.legend() # 设置图示
plt.show()
3.LINEARREG
Linear Regression
函数名:LINEARREG
名称:线性回归
简介:来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法, 其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。
语法:
real = LINEARREG(close, timeperiod=14)
df['LINEARREG'] = tlb.LINEARREG(df['close'],timeperiod=30)
# 做图
df[['LINEARREG','close']].plot(title='LINEARREG',grid=True)
plt.legend() # 设置图示
plt.show()
4.LINEARREG_ANGLE
Linear Regression Angle
函数名:LINEARREG_ANGLE
名称:线性回归的角度
简介:来确定价格的角度变化.
语法:
real = LINEARREG_ANGLE(close, timeperiod=14)
df['LINEARREG_ANGLE'] = tlb.LINEARREG(df['close'],timeperiod=30)
# 做图
df[['LINEARREG_ANGLE','close']].plot(title='LINEARREG_ANGLE',grid=True)
plt.legend() # 设置图示
plt.show()
5.LINEARREG_INTERCEPT
Linear Regression Intercept
函数名:LINEARREG_INTERCEPT
名称:线性回归截距
语法:
real = LINEARREG_INTERCEPT(close, timeperiod=14)
df['LINEARREG_INTERCEPT'] = tlb.LINEARREG_INTERCEPT(df['close'],timeperiod=30)
# 做图
df[['LINEARREG_INTERCEPT','close']].plot(title='LINEARREG_INTERCEPT',grid=True)
plt.legend() # 设置图示
plt.show()
6.LINEARREG_SLOPE
Linear Regression Slope
函数名:LINEARREG_SLOPE
名称:线性回归斜率指标
语法:
real = LINEARREG_SLOPE(close, timeperiod=14)
df['LINEARREG_SLOPE'] = tlb.LINEARREG_INTERCEPT(df['close'],timeperiod=30)
# 做图
df[['LINEARREG_SLOPE','close']].plot(title='LINEARREG_SLOPE',grid=True)
plt.legend() # 设置图示
plt.show()
7.STDDEV
Standard Deviation
函数名:STDDEV
名称:标准偏差
简介:种量度数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。标准偏差的大小可通过标准偏差与平均值的倍率关系来衡量。
参数:
- input:必需的参数,它是一个时间序列,通常是一组价格数据。
- timeperiod:可选的参数,它定义了计算标准偏差的时间周期。默认值是0,表示使用整个数据系列。
- nbdev:可选的参数,它定义了标准偏差的偏离程度。默认值是1,表示计算平均值的一个标准偏差。如果设置为2,则计算两个标准偏差。
语法:
real = STDDEV(close, timeperiod=5, nbdev=1)
df['STDDEV'] = tlb.STDDEV(df['close'], timeperiod=5, nbdev=1)
# 做图
df[['STDDEV','close']].plot(subplots=True,title='STDDEV',grid=True)
plt.legend() # 设置图示
plt.show()
8.TSF
Time Series Forecast
函数名:TSF
名称:时间序列预测
简介:一种历史资料延伸预测,也称历史引伸预测法。是以时间数列所能反映的社会经济现象的发展过程和规律性,进行引伸外推,预测其发展趋势的方法
语法:
real = TSF(close, timeperiod=14)
df['TSF'] = tlb.TSF(df['close'], timeperiod=30)
# 做图
df[['TSF','close']].plot(title='TSF',grid=True)
plt.legend() # 设置图示
plt.show()
9.VAR
Variance
函数名: VAR
名称:方差
简介:方差用来计算每一个变量(观察值)与总体均数之间的差异。为避免出现离均差总和为零,离均差平方和受样本含量的影响,统计学采用平均离均差平方和来描述变量的变异程度
参数:
- input:必需的参数,它是一个时间序列,通常是一组价格数据。
- timeperiod:可选的参数,它定义了计算标准偏差的时间周期。默认值是0,表示使用整个数据系列。
- nbdev:可选的参数,它定义了标准偏差的偏离程度。默认值是1,表示计算平均值的一个标准偏差。如果设置为2,则计算两个标准偏差。
语法:
real = VAR(close, timeperiod=5, nbdev=1)
df['VAR'] = tlb.VAR(df['close'], timeperiod=30, nbdev=1)
# 做图
df[['VAR','close']].plot(subplots=True,figsize=(6, 4),title='VAR',grid=True)
plt.legend() # 设置图示
plt.show()