Backtrader内置技术指标参数详解(10)- backtrader中文教程
标准差StandardDeviation(别名:StdDev )
计算给定时间段内传递数据的标准偏差
Tips:
- 如果提供 2 个数据作为参数,则第 2 个数据被认为是第一个数据的平均值
safepow
(默认值:False)如果此参数为 True,则标准偏差将计算为 pow(abs(meansq – sqmean), 0.5) 以保护meansq - sqmean
浮点表示可能导致的负面结果。
公式:
- meansquared = SimpleMovingAverage(pow(data, 2), period)
- squaredmean = pow(SimpleMovingAverage(data, period), 2)
- stddev = pow(meansquared – squaredmean, 0.5) # square root
参考:
Lines:
- stddev
Params:
- period (20)
- movav (MovingAverageSimple)
- safepow (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:
- stddev:
随机Stochastic(别名:StochasticSlow )
常规(或慢速版本)添加了一个额外的移动平均层,因此:
- StochasticFast 的 percD 线变为 percK 线
- percD 成为原始 percD 的 period_dslow 的移动平均值
公式:
- k = k
- d = d
- d = MovingAverage(d, period_dslow)
参考:
Lines:
- percK
- percD
Params:
- period (14)
- period_dfast (3)
- movav (MovingAverageSimple)
- upperband (80.0)
- lowerband (20.0)
- safediv (False)
- safezero (0.0)
- period_dslow (3)
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:
- percD:
- _name (%D)
- ls (–)
- percK:
- _name (%K)
随机快速StochasticFast
由 50 年代的 George Lane 博士撰写。它将收盘价与价格范围进行比较,并在收盘价接近极值时尝试显示收敛
- 如果收盘价接近高点,它将上涨
- 如果收盘价接近低点,它将大致下跌
如果极端值继续增长但收盘价不以相同的方式增长(与极端值的距离增加),则显示背离
公式:
- hh = highest(data.high, period)
- ll = lowest(data.low, period)
- knum = data.close – ll
- kden = hh – ll
- k = 100 * (knum / kden)
- d = MovingAverage(k, period_dfast)
参考:
Lines:
- percK
- percD
Params:
- period (14)
- period_dfast (3)
- movav (MovingAverageSimple)
- upperband (80.0)
- lowerband (20.0)
- safediv (False)
- safezero (0.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:
- percD:
- _name (%D)
- ls (–)
- percK:
- _name (%K)
随机指标StochasticFull
此版本显示 3 条可能的行:
- percK
- percD
- percSlow
公式:
- k = d
- d = MovingAverage(k, period_dslow)
- dslow =
参考:
Lines:
- percK
- percD
- percDSlow
Params:
- period (14)
- period_dfast (3)
- movav (MovingAverageSimple)
- upperband (80.0)
- lowerband (20.0)
- safediv (False)
- safezero (0.0)
- period_dslow (3)
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:
- percD:
- _name (%D)
- ls (–)
- percK:
- _name (%K)
- percDSlow:
- _name (%DSlow)
总和SumN
计算给定时间段内数据值的总和
用于math.fsum
计算而不是内置sum
以避免精度错误
公式:
- sumn = sum(data, period)
Lines:
- sumn
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:
- sumn:
三重指数移动平均(别名:TEMA, MovingAverageTripleExponential )
TEMA 于 1994 年首次在“股票和商品技术分析”杂志的 Patrick G. Mulloy 的文章“使用更快的移动平均线平滑数据”中被引入。
它试图减少与移动平均线相关的固有滞后
公式:
- ema1 = ema(data, period)
- ema2 = ema(ema1, period)
- ema3 = ema(ema2, period)
- tema = 3 * ema1 – 3 * ema2 + ema3
Lines:
- tema
Params:
- period (30)
- _movav (EMA)
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:
- tema:
三重指数移动平均通道指标(别名:TEMAEnvelope、MovingAverageTripleExponentialEnvelope )
移动平均通道是设置在移动平均线之上和之下的基于百分比的通道线。构成该指标基础的移动平均线可以是简单或指数移动平均线。然后将每个通道设置为高于或低于移动平均线的相同百分比。这会创建跟随价格行为的平行带。
公式:
- tema (from TripleExponentialMovingAverage)
- top = tema * (1 + perc)
- bot = tema * (1 – perc)
参考:
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_envelopes
Lines:
- tema
- top
- bot
Params:
- period (30)
- _movav (EMA)
- 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:
- tema:
- top:
- _samecolor (True)
- bot:
- _samecolor (True)
三重指数移动平均振荡指标(别名:TripleExponentialMovingAverageOsc, TEMAOscillator, TEMAOsc, MovingAverageTripleExponentialOscillator, MovingAverageTripleExponentialOsc )
TripleExponentialMovingAverage 围绕其数据的振荡
Lines:
- tema
Params:
- period (30)
- _movav (EMA)
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:
- tema:
- _0:
- _name (osc)
三重指数平滑移动平均指标(别名:TRIX )
由 Jack Hutson 在 80 年代定义并显示变化率 (%) 或三次指数平滑移动平均线的斜率
公式:
- ema1 = EMA(data, period)
- ema2 = EMA(ema1, period)
- ema3 = EMA(ema2, period)
- trix = 100 * (ema3 – ema3(-1)) / ema3(-1)
最终公式可以简化为:100 * (ema3 / ema3(-1) – 1)
使用的移动平均线是 Wilder 最初定义的SmoothedMovingAverage
参考:
- https://en.wikipedia.org/wiki/Trix_(technical_analysis
- http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:trix
Lines:
- trix
Params:
- period (15)
- _rocperiod (1)
- _movav (EMA)
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:
- trix:
TRIX扩展信号( TrixSignal )
使用信号线扩展 Trix (ala MACD)
公式:
- trix = Trix(data, period)
- signal = EMA(trix, sigperiod)
参考:
Lines:
- trix
- signal
Params:
- period (15)
- _rocperiod (1)
- _movav (EMA)
- sigperiod (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:
- trix:
- signal:
真实高点( TrueHigh )
由 J. Welles Wilder, Jr. 于 1978 年在他为 ATR撰写的“技术交易系统中的新概念”一书中定义
记录今天最高点和昨天收盘价中的最大值的“真实最高点”
公式:
- truehigh = max(high, close_prev)
参考:
Lines:
- truehigh
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:
- truehigh:
真实低点( TrueLow )
由 J. Welles Wilder, Jr. 于 1978 年在他为 ATR撰写的“技术交易系统中的新概念”一书中定义
记录今天的低点和昨天的收盘价中的最小值的“真实低点”
公式:
- truelow = min(low, close_prev)
参考:
Lines:
- truelow
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:
- truelow:
真实波动区间指标TrueRange(别名:TR)
由 J. Welles Wilder, Jr. 于 1978 年在他的《技术交易系统的新概念》一书中定义。
公式:
- max(high – low, abs(high – prev_close), abs(prev_close – low)
which can be simplified to
- max(high, prev_close) – min(low, prev_close)
参考:
The idea is to take the previous close into account to calculate the range if it yields a larger range than the daily range (High – Low)
Lines:
- tr
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:
- tr:
真强度指标TrueStrengthIndicator(别名:TSI )
真实强度指标由其作者 William Blau 在 Stocks & Commodities Magazine 中首次介绍。它以价格的双指数(默认)衡量动量。
如果极端值继续增长但收盘价不以相同的方式(与极端值的距离增加),则显示出分歧
公式:
- price_change = close – close(pchange periods ago)
- sm1_simple = EMA(price_close_change, period1)
- sm1_double = EMA(sm1_simple, period2)
- sm2_simple = EMA(abs(price_close_change), period1)
- sm2_double = EMA(sm2_simple, period2)
- tsi = 100.0 * sm1_double / sm2_double
参考:
Params
period1
: the period for the 1st smoothingperiod2
: the period for the 2nd smoothingpchange
: the lookback period for the price change_movav
: the moving average to apply for the smoothing
Lines:
- tsi
Params:
- period1 (25)
- period2 (13)
- pchange (1)
- _movav (EMA)
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:
- tsi: