Backtrader内置技术指标参数详解(8)- backtrader中文教程
振荡指标(Oscillator )
给定数据围绕另一个数据振荡
数据:
该指标可以接受 1 或 2 个数据进行计算。
- 如果提供 1 个数据,它必须是一个复杂的“线”对象(指标),它也有“数据”。示例:移动平均线
计算出的振荡将是用于平均计算的数据周围的移动平均线(在示例中)
- 如果提供了 2 个数据,则计算出的振荡将是第一个数据周围的第二个数据的振荡
公式:
- 1 data -> osc = data.data – data
- 2 datas -> osc = data0 – data1
Lines:
- osc
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:
- _0:
- _name (osc)
- osc:
MixIn振荡指标( OscillatorMixIn )
MixIn 类创建具有另一个指标的子类。 该指标的主线将从另一个基类主线中减去,创建一个振荡器
用法是:
- Class XXXOscillator(XXX, OscillatorMixIn)
公式:
- XXX calculates lines[0]
- osc = self.data – XXX.lines[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:
- _0:
- _name (osc)
抛物线SAR(别名:PSAR )
由 J. Welles Wilder, Jr. 于 1978 年在他为 RSI撰写的“技术交易系统中的新概念”一书中定义
SAR 代表停止和反转,该指标是作为进入(和反转)的信号
书中未指定如何选择第一个信号以及柱的增加/减少
参考:
- https://en.wikipedia.org/wiki/Parabolic_SAR
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:parabolic_sar
Lines:
- psar
Params:
- period (2)
- af (0.02)
- afmax (0.2)
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:
- psar:
- marker (.)
- markersize (4.0)
- color (black)
- fillstyle (full)
- ls ()
百分比变化(别名:PctChange )
测量当前值相对于周期柱之前的百分比变化
Lines:
- pctchange
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:
- pctchange:
- _name (%change)
百分比排名(别名:PctRank )
测量当前值相对于周期柱之前的百分比排名
Lines:
- pctrank
Params:
- period (50)
- func ( at 0x000001F1E4478B70>)
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:
- pctrank:
百分比价格振荡指标(别名:PPO, PercPriceOsc )
显示以百分比表示的短期和长期指数移动平均线之间的差异。MACD 的作用相同,但以绝对点数表示。
以百分比表示差异允许在标的值具有显着不同值的不同时间点比较指标。
公式:
- po = 100 * (ema(short) – ema(long)) / ema(long)
参考:
Lines:
- ppo
- signal
- histo
Params:
- period1 (12)
- period2 (26)
- _movav (ExponentialMovingAverage)
- period_signal (9)
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:
- histo:
- _method (bar)
- alpha (0.5)
- width (1.0)
- ppo:
- signal:
空头百分比价格震荡指标PercentagePriceOscillatorShort(别名:PPOShort, PercPriceOscShort )
显示以百分比表示的短期和长期指数移动平均线之间的差异。MACD 的作用相同,但以绝对点数表示。
以百分比表示差异允许在标的值具有显着不同值的不同时间点比较指标。
大多数在线文献显示了以长指数移动平均线为分母的百分比计算。像 MetaStock 这样的一些来源使用短的。
公式:
- po = 100 * (ema(short) – ema(long)) / ema(short)
参考:
Lines:
- ppo
- signal
- histo
Params:
- period1 (12)
- period2 (26)
- _movav (ExponentialMovingAverage)
- period_signal (9)
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:
- histo:
- _method (bar)
- alpha (0.5)
- width (1.0)
- ppo:
- signal
N周期( PeriodN )
需要一段时间的指标的基类(必须通过 super 或显式调用init )
此类没有定义的行
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)
中心点(PivotPoint)
通过考虑较大时间范围内过去一段时间的价格柱成分的平均值来定义显着性水平。例如,当使用天数进行操作时,这些值取自“过去”月份的固定价格。
使用此指标的示例:
data = btfeeds.ADataFeed(dataname=x, timeframe=bt.TimeFrame.Days) cerebro.adddata(data) cerebro.resampledata(data, timeframe=bt.TimeFrame.Months)
在__init__
策略的方法中:
pivotindicator = btind.PivotPoiont(self.data1) # 重采样数据
指标将尝试自动对未重新采样的数据进行 plo。要禁用此行为,请在构建期间使用以下命令:
_autoplot=False
Tips:该示例显示了days和months,但可以使用任何时间范围的组合。有关推荐组合,请参阅文献
公式:
- pivot = (h + l + c) / 3 # 变体重复关闭或添加打开
- support1 = 2.0 * pivot – high
- support2 = pivot – (high – low)
- resistance1 = 2.0 * pivot – low
- resistance2 = pivot + (high – low)
参考:
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:pivot_points
- https://en.wikipedia.org/wiki/Pivot_point_(technical_analysis
Lines:
- p
- s1
- s2
- r1
- r2
Params:
- open (False)
- close (False)
- _autoplot (True)
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:
- r1:
- r2:
Plus方向指示指标 PlusDirectionalIndicator(别名:PlusDI )
由 J. Welles Wilder, Jr. 于 1978 年在他的“技术交易系统中的新概念”一书中定义。
旨在衡量趋势强度
该指标显示+DI:
- 使用 MinusDirectionalIndicator (MinusDI) 获取 -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 = upmove if upmove > downmove and upmove > 0 else 0
- +di = 100 * MovingAverage(+dm, period) / atr(period)
使用的移动平均线是 Wilder 最初定义的SmoothedMovingAverage
参考:
Lines:
- plusDI
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:
- minusDI:
- _name (-DI)
PrettyGood振荡器(别名:PGO, PrettyGoodOsc)
Mark Johnson 的“相当不错的振荡器”(PGO)测量当前收盘价与其简单的周期平均移动平均线的距离,以相似时期的平均真实范围(见平均真实范围)表示。因此,例如 PGO 值为 +2.5 意味着当前收盘价比 SMA 高出 2.5 天的平均范围。
约翰逊的方法是将其用作长期交易的突破系统。如果 PGO 升至 3.0 以上然后做多,或低于 -3.0 然后做空,并且在这两种情况下都在返回零时退出(这是 SMA 的收盘价)。
公式:
- pgo = (data.close – sma(data, period)) / atr(data, period)
参考:
Lines:
- pgo
Params:
- period (14)
- _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:
- pgo:
价格振荡指标(别名:PriceOsc, AbsolutePriceOscillator, APO, AbsPriceOsc )
显示以点表示的短期和长期指数移动平均线之间的差异。
公式:
- po = ema(short) – ema(long)
参考:
Lines:
- po
Params:
- period1 (12)
- period2 (26)
- _movav (ExponentialMovingAverage)
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:
- po: