TA-Lib学习研究笔记——Overlap Studies(二)下
(11)SAR - Parabolic SAR 抛物线指标
函数名:SAR
名称: 抛物线指标
简介:抛物线转向也称停损点转向,是利用抛物线方式,随时调整停损点位置以观察买卖点。由于停损点(又称转向点SAR)以弧形的方式移动,故称之为抛物线转向指标 。
语法:
real = SAR(high, low, acceleration=0, maximum=0)
参数说明:
- high:最高价序列,表示每个时间段的最高价格。
- low:最低价序列,表示每个时间段的最低价格。
- acceleration:加速度因子(可选参数),用于控制SAR靠近或远离价格的速度。默认值为0。
- maximum:最大加速度(可选参数),限制SAR的最大步长。默认值为0。
df['SAR'] = tlb.SAR(df['high'], df['low'], acceleration=0, maximum=0)
# 做图
df[['high','low','SAR']].plot(title='抛物线指标')
plt.grid() #启用网格
plt.legend(['high','low','SAR']) # 设置图示
plt.show()
调整参数:acceleration=1, maximum=1
效果如下:
df['SAR'] = tlb.SAR(df['high'], df['low'], acceleration=1, maximum=1)
# 做图
df[['high','low','SAR']].plot(title='抛物线指标')
plt.grid() #启用网格
plt.legend(['high','low','SAR']) # 设置图示
plt.show()
(12)SAREXT - Parabolic SAR - Extended
计算扩展的抛物线停损反转(Extended Parabolic Stop and Reverse,SAR)指标的函数。该函数提供了更多的参数,以便更精确地调整SAR的计算方式。
参数如下:
- high:最高价序列,表示每个时间段的最高价格。
- low:最低价序列,表示每个时间段的最低价格。
- startvalue:起始值(可选参数),用于指定SAR的初始位置。默认值为0。
- offsetonreverse:反转偏移量(可选参数),在趋势反转时添加到SAR的值上的偏移量。默认值为0。
- accelerationinitlong:多头初始加速度(可选参数),设置多头趋势开始时的初始加速度。默认值为0。
- accelerationlong:多头加速度(可选参数),设置多头趋势中的加速度。默认值为0。
- accelerationmaxlong:多头最大加速度(可选参数),限制多头趋势中的最大加速度。默认值为0。
- accelerationinitshort:空头初始加速度(可选参数),设置空头趋势开始时的初始加速度。默认值为0。
- accelerationshort:空头加速度(可选参数),设置空头趋势中的加速度。默认值为0。
- accelerationmaxshort:空头最大加速度(可选参数),限制空头趋势中的最大加速度。默认值为0。
df['SAREXT'] = tlb.SAREXT(df['high'], df['low'], startvalue=0, offsetonreverse=0, accelerationinitlong=0, accelerationlong=0, accelerationmaxlong=0, accelerationinitshort=0, accelerationshort=0, accelerationmaxshort=0)
# 做图
df[['high','low','SAREXT']].plot(title='扩展抛物线指标')
plt.grid() #启用网格
plt.legend(['high','low','SAREXT']) # 设置图示
plt.show()
测试一下,参数都赋值1的效果。
df['SAREXT'] = tlb.SAREXT(df['high'], df['low'], startvalue=1, offsetonreverse=1, accelerationinitlong=1, accelerationlong=1,
accelerationmaxlong=1, accelerationinitshort=1, accelerationshort=1, accelerationmaxshort=1)
# 做图
df[['high','low','SAREXT']].plot(title='扩展抛物线指标')
plt.grid() #启用网格
plt.legend(['high','low','SAREXT']) # 设置图示
plt.show()
(13)SMA
Simple Moving Average 简单移动平均线
函数名:SMA
名称: 简单移动平均线
简介:移动平均线,Moving Average,简称MA,原本的意思是移动平均,将其制作成线形,所以一般称之为移动平均线,简称均线。它是将某一段时间的收盘价之和除以该周期。 比如日线MA5指5天内的收盘价除以5 。
语法:
real = SMA(close, timeperiod=30)
df['SMA5'] = tlb.SMA(df['close'], timeperiod=5)
df['SMA10'] = tlb.SMA(df['close'], timeperiod=10)
df['SMA30'] = tlb.SMA(df['close'], timeperiod=30)
# 做图
df[['close','SMA5','SMA10','SMA30']].plot(title='简单移动平均线')
plt.grid() #启用网格
plt.legend(['close','SMA5','SMA10','SMA30']) # 设置图示
plt.show()
(14)T3
Triple Exponential Moving Average (T3) 三重指数移动平均线
函数名:T3
名称:三重指数移动平均线
简介:TRIX长线操作时采用本指标的讯号,长时间按照本指标讯号交易,获利百分比大于损失百分比,利润相当可观。 比如日线MA5指5天内的收盘价除以5 。
参数说明:
- close:收盘价序列。
- timeperiod:时间周期(例如5表示5天)。
- vfactor:可变权重因子,通常设置为0。
df['T3-5'] = tlb.T3(df['close'], timeperiod=5, vfactor=0)
df['T3-10'] = tlb.T3(df['close'], timeperiod=10, vfactor=0)
# 做图
df[['close','T3-5','T3-10']].plot(title='三重指数移动平均线')
plt.grid() #启用网格
plt.legend(['close','T3-5','T3-10']) # 设置图示
plt.show()
15.TEMA
Triple Exponential Moving Average
名称:三重指数移动平均线
TA-Lib 中并未明确给出定义或解释,无法直接与 TEMA 进行比较。从名称上看它可能是一种基于不同算法的三重移动平均线。TEMA 和 T3 可能在计算方法和用途上存在差异,具体区别估计只能看源代码。
只能通过测试对比效果:
df['TEMA-5'] = tlb.TEMA(df['close'], timeperiod=5)
df['TEMA-10'] = tlb.TEMA(df['close'], timeperiod=10)
# 做图
df[['close','TEMA-5','TEMA-10']].plot(title='三重指数移动平均线')
plt.grid() #启用网格
plt.legend(['close','TEMA-5','TEMA-10']) # 设置图示
plt.show()
通过图示可以看出TEMA在周期5 、10 天的参数,TEMA比T3 与 close的拟合度更好。
16.TRIMA
Triangular Moving Average(三角形移动平均线)。TRIMA 是一种加权移动平均线,它使用类似于三角形的方式对价格数据进行加权平均。TRIMA 的计算方式相对于传统的简单移动平均线(SMA)或指数移动平均线(EMA)而言,考虑了更大的时间周期权重,从而提供更为平滑的趋势指示。
df['TRIMA5'] = tlb.TRIMA(df['close'], timeperiod=5)
df['TRIMA10'] = tlb.TRIMA(df['close'], timeperiod=10)
# 做图
df[['close','TRIMA5','TRIMA10']].plot(title='三角形移动平均线')
plt.grid() #启用网格
plt.legend(['close','TRIMA5','TRIMA10']) # 设置图示
plt.show()
(17)WMA
函数名:WMA Weighted Moving Average 移动加权平均
名称:加权移动平均线
简介:移动加权平均法是指以每次进货的成本加上原有库存存货的成本,除以每次进货数量与原有库存存货的数量之和,据以计算加权平均单位成本,以此为基础计算当月发出存货的成本和期末存货的成本的一种方法。
语法:
real = WMA(close, timeperiod=30)
df['WMA15'] = tlb.WMA(df['close'], timeperiod=15)
df['WMA30'] = tlb.WMA(df['close'], timeperiod=30)
# 做图
df[['close','WMA15','WMA30']].plot(title='加权移动平均线')
plt.grid() #启用网格
plt.legend(['close','WMA15','WMA30']) # 设置图示
plt.show()