Backtrader内置技术指标参数详解(7)- backtrader中文教程
均值偏差MeanDeviation(别名:MeanDev )
计算给定时间段内传递数据的平均偏差
Tips:如果提供 2 个数据作为参数,则第 2 个数据被认为是第一个数据的平均值
公式:
- mean = MovingAverage(data, period) (或提供的平均值)
- 绝对偏差 = 绝对值(数据 – mean)
- meandev = MovingAverage(绝对偏差,周期)
参考:
Lines:
- meandev
Params:
- period (20)
- movav (MovingAverageSimple)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- meandev:
负向指标MinusDirectionalIndicator(别名:MinusDI )
由 J. Welles Wilder, Jr. 于 1978 年在他的“技术交易系统中的新概念”一书中定义。
旨在衡量趋势强度
该指标显示-DI:
- 使用 PlusDirectionalIndicator (PlusDI) 获取 +DI
- 使用方向指示器 (DI) 获得 +DI、-DI
- 使用 AverageDirectionalIndex (ADX) 获取 ADX
- 使用AverageDirectionalIndexRating (ADXR) 得到ADX, ADXR
- 使用 DirectionalMovementIndex (DMI) 获取 ADX、+DI、-DI
- 使用 DirectionalMovement (DM) 获得 ADX、ADXR、+DI、-DI
公式:
- upmove = high – high(-1)
- downmove = low(-1) – low
- -dm = downmove if downmove > upmove and downmove > 0 else 0
- -di = 100 * MovingAverage(-dm, period) / atr(period)
使用的移动平均线是 Wilder 最初定义的SmoothedMovingAverage
参考:
Lines:
- minusDI
Params:
- period (14)
- movav (SmoothedMovingAverage)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname (-DirectionalIndicator)
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- plusDI:
- _name (+DI)
- minusDI:
动量指标
通过计算当前价格与给定时期前价格之间的差异来衡量价格变化
公式:
- 动量 = 数据 – data_period
参考:
Lines:
- momentum
Params:
- period (12)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([0.0])
- plotforce (False)
PlotLines:
- momentum:
动量振荡指标MomentumOscillator(别名:MomentumOsc )
衡量一段时间内价格变化的比率
公式:
- mosc = 100 * (data / data_period)
参考:
Lines:
- momosc
Params:
- period (12)
- band (100.0)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- momosc:
基本移动平均线
Params:
- period (30)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (False)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
简单移动平均线(别名:SMA, SimpleMovingAverage)
最近 n 个周期的非加权平均值
公式:
- movav = Sum(数据,周期)/周期
也可以看看:
Lines:
- sma
Params:
- period (30)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (False)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- sma:
简单移动平均带(别名:SMAEnvelope、SimpleMovingAverageEnvelope)
移动平均平均带是设置在移动平均线之上和之下的基于百分比的通道线。构成该指标基础的移动平均线可以是简单或指数移动平均线。然后将每个通道设置为高于或低于移动平均线的相同百分比。这会创建跟随价格行为的平行带。以移动平均线为基础,移动平均线通道线可以用作趋势跟踪指标。但是,除了简单的趋势跟踪之外,当趋势相对平坦时,通道线还可以用于识别超买和超卖水平。
公式:
- sma (from MovingAverageSimple)
- top = sma * (1 + perc)
- bot = sma * (1 – perc)
- perc是百分比。
参考:
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_envelopes
Lines:
- sma
- top
- bot
Params:
- period (30)
- perc (2.5)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (False)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- sma:
- top:
- _samecolor (True)
- bot:
- _samecolor (True)
简单移动平均振荡指标(别名:MovingAverageSimpleOsc, SMAOscillator, SMAOsc, SimpleMovingAverageOscillator, SimpleMovingAverageOsc)
简单移动平均线围绕其数据的振荡
Lines:
- sma
Params:
- period (30)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- sma:
- _0:
- _name (osc)
非零差NonZeroDifference(别名:NZD )
跟踪两个数据输入之间的差异,如果当前差异为零,则记住最后一个非零值
公式:
- diff = data – data1
- nzd = diff if diff else diff(-1)
Lines:
- nzd
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- nzd:
回归OLS_BetaN
计算 data1 在 data0 上的回归,使用pandas.ols
Lines:
- beta
Params:
- period (10)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- beta:
OLS_Slope_InterceptN
statsmodel.OLS
使用data1 对 data0 的(普通最小二乘法)计算线性回归
需要用pandas
和statsmodels
两个包
使用 prepend content 影响 sm.add_constant 的参数 prepend
Lines:
- slope
- intercept
Params:
- period (10)
- prepend_constant (True)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- slope:
- intercept:
z 分数OLS_TransformationN
计算数据 0 和数据 1 的 z 分数。 虽然它不直接使用任何外部包,但它依赖于使用 pandas 和 statsmodels 的 OLS_SlopeInterceptN
Lines:
- spread
- spread_mean
- spread_std
- zscore
Params:
- period (10)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)
PlotLines:
- spread:
- spread_mean:
- spread_std:
- zscore:
运算N(OperationN)
计算给定时间段的“func”
作为使用句点的类的基础,并且可以在可调用对象中表达逻辑
Tips:基类必须提供一个可调用的“func”属性
- line = func(data, period)
Params:
- period (1)
PlotInfo:
- plot (True)
- plotmaster (None)
- legendloc (None)
- subplot (True)
- plotname ()
- plotskip (False)
- plotabove (False)
- plotlinelabels (False)
- plotlinevalues (True)
- plotvaluetags (True)
- plotymargin (0.0)
- plotyhlines ([])
- plotyticks ([])
- plothlines ([])
- plotforce (False)