Backtrader内置技术指标参数详解(5)- backtrader中文教程
日跌指标
由 J. Welles Wilder, Jr. 于 1978 年在他为 RSI撰写的“技术交易系统中的新概念”一书中定义
记录“下跌”的多少,即:收盘价低于前一天。
公式:
- downday = max(close_prev – close, 0)
参考:
Lines:
- downday
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)
PlotLines:
- downday:
DownDayBool
由 J. Welles Wilder, Jr. 于 1978 年在他为 RSI撰写的“技术交易系统中的新概念”一书中定义
记录是否“下跌”,即:收盘价低于前一天。
Tips:此版本返回布尔值而不是差异
公式:
- downday = close_prev > close
参考:
Lines:
- downday
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)
PlotLines:
- downday:
向下移动指标
由 J. Welles Wilder, Jr. 于 1978 年在他的“技术交易系统中的新概念”一书中定义,作为计算方向指标的方向移动系统的一部分。
如果给定数据的移动低于前一天,则为正
公式:
- downmove = data(-1) – data
参考:
Lines:
- downmove
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:
- downmove:
Envelope
它创建按给定百分比与源数据分开的区间带
公式:
- src = datasource
- top = src * (1 + perc)
- bot = src * (1 – perc)
参考:
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_envelopes
Lines:
- src
- top
- bot
Params:
- 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:
- src:
- _plotskip (True)
- top:
- _samecolor (True)
- bot:
- _samecolor (True)
指数移动平均线(别名:EMA,MovingAverageExponential)
随着时间的推移以指数方式平滑数据的移动平均线。
它是 SmoothingMovingAverage 的子类。
- self.smfactor -> 2 / (1 + period)
- self.smfactor1 -> 1 – self.smfactor
公式:
- movav = prev * (1.0 – smoothfactor) + newdata * smoothfactor
参考:
Lines:
- ema
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:
- ema:
指数移动平均带(别名:EMAEnvelope、MovingAverageExponentialEnvelope)
ExponentialMovingAverage 和区间带将“perc”与它分开
公式:
- ema (from ExponentialMovingAverage)
- top = ema * (1 + perc)
- bot = ema * (1 – perc)
参考:
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_envelopes
Lines:
- ema
- 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:
- ema:
- top:
- _samecolor (True)
- bot:
- _samecolor (True)
指数移动平均振荡指标(别名:ExponentialMovingAverageOsc, EMAOscillator, EMAOsc, MovingAverageExponentialOscillator, MovingAverageExponentialOsc)
ExponentialMovingAverage 围绕其数据的振荡
Lines:
- ema
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:
- ema:
- _0:
- _name (osc)
指数平滑指标(别名:Exp平滑)
使用指数平滑法在一段时间内平均给定数据
考虑到数据的第一个周期值,使用常规 ArithmeticMean (Average) 作为种子值
公式:
- av = prev * (1 – alpha) + data * alpha
参考:
Lines:
- av
Params:
- period (1)
- alpha (None)
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:
- av:
指数平滑动态指标(别名:ExpSmoothingDynamic)
使用指数平滑法在一段时间内平均给定数据
考虑到数据的第一个周期值,使用常规 ArithmeticMean (Average) 作为种子值
笔记:
- alpha 是一个可以动态计算的值数组
公式:
- av = prev * (1 – alpha) + data * alpha
参考:
Lines:
- av
Params:
- period (1)
- alpha (None)
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:
- av:
斐波那契枢轴点
通过考虑较大时间范围内过去一段时间的价格柱成分的平均值来定义显着性水平。例如,当使用天数进行操作时,这些值取自“过去”月份的固定价格。
斐波那契水平(可配置)用于定义支撑/阻力水平
使用此指标的示例:
data = btfeeds.ADataFeed(dataname=x, timeframe=bt.TimeFrame.Days) cerebro.adddata(data) cerebro.resampledata(data, timeframe=bt.TimeFrame.Months)
在__init__
策略的方法中:
pivotindicator = btind.FibonacciPivotPoiont(self.data1) # 重新采样的数据
指标将尝试自动对未重新采样的数据进行 plo。要禁用此行为,请在构建期间使用以下命令:
_autoplot=False
Tips:该示例显示了days和months,但可以使用任何时间范围的组合。有关推荐组合,请参阅文献
公式:
- pivot = (h + l + c) / 3 # variants duplicate close or add open
- support1 = p – level1 * (high – low) # level1 0.382
- support2 = p – level2 * (high – low) # level2 0.618
- support3 = p – level3 * (high – low) # level3 1.000
- resistance1 = p + level1 * (high – low) # level1 0.382
- resistance2 = p + level2 * (high – low) # level2 0.618
- resistance3 = p + level3 * (high – low) # level3 1.000
参考:
Lines:
- p
- s1
- s2
- s3
- r1
- r2
- r3
Params:
- open (False)
- close (False)
- _autoplot (True)
- level1 (0.382)
- level2 (0.618)
- level3 (1.0)
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:
- p:
- s1:
- s2:
- s3:
- r1:
- r2:
- r3:
查找第一索引
返回与参数 _evalfunc 生成的条件满足相等的最后一个数据的索引
Tips:返回的索引向后看。0 是当前索引,1 是 上一个柱。
公式:
- index = first for which data[index] == _evalfunc(data)
Lines:
- index
Params:
- period (1)
- _evalfunc (None)
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:
- index:
FindFirstIndexHighest
返回该期间最高的第一个数据的索引
Tips:返回的索引向后看。0 是当前索引,1 是 上一个柱。
公式:
Formula:
- index = index of first data which is the highest
Lines:
- index
Params:
- period (1)
- _evalfunc ()
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:
- index:
FindFirstIndexLowest
返回该期间最低的第一个数据的索引
Tips:返回的索引向后看。0 是当前索引,1 是 上一个柱。
- index = index of first data which is the lowest
Lines:
- index
Params:
- period (1)
- _evalfunc ()
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:
- index:
查找最后一个索引
返回与参数 _evalfunc 生成的条件满足相等的最后一个数据的索引
笔记:返回的索引向后看。0 是当前索引,1 是 上一个柱。
公式:
- index = last for which data[index] == _evalfunc(data)
Lines:
- index
Params:
- period (1)
- _evalfunc (None)
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:
- index:
FindLastIndexHighest
返回时间段内最后一个数据最高的索引
Tips:返回的索引向后看。0 是当前索引,1 是 上一个柱。
公式:
- index = index of last data which is the highest
Lines:
- index
Params:
- period (1)
- _evalfunc ()
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:
- index:
FindLastIndexLowest
返回时间段内最后一个数据最低的索引
Tips:返回的索引向后看。0 是当前索引,1 是 上一个柱。
公式:
- index = index of last data which is the lowest
Lines:
- index
Params:
- period (1)
- _evalfunc ()
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:
- index: