参考文档

Filters 参考文档 #

SessionFilter #

class backtrader.filters.SessionFilter(data)

此类可作为过滤器应用于数据源,将过滤掉落在常规交易时间之外的日内数据(即盘前/盘后数据)。

  • 这是一个“非简单”过滤器,必须管理数据栈(在初始化和调用期间传递)。
  • 它不需要“last”方法,因为没有需要传递的内容。

SessionFilterSimple #

class backtrader.filters.SessionFilterSimple(data)

此类可作为过滤器应用于数据源,将过滤掉落在常规交易时间之外的日内数据(即盘前/盘后数据)。

  • 这是一个“简单”过滤器,不需要管理数据栈(在初始化和调用期间传递)。
  • 它不需要“last”方法,因为没有需要传递的内容。
  • Bar 管理将由 SimpleFilterWrapper 类处理,该类在 DataBase.addfilter_simple 调用期间添加。

SessionFiller #

class backtrader.filters.SessionFiller(data)
为声明的会话开始/结束时间内的数据源填充条。

参数:

  • fill_price (默认: None): 如果传递了 None,将使用前一个条的收盘价。为了得到一个不显示在图表中的条,可以使用 float(‘NaN’)。
  • fill_vol (默认: float(‘NaN’)): 用于填充缺失交易量的值。
  • fill_oi (默认: float(‘NaN’)): 用于填充缺失未平仓合约的值。
  • skip_first_fill (默认: True): 在看到第一个有效条时,不从会话开始填充到该条。

CalendarDays #

class backtrader.filters.CalendarDays(data)

填充缺失日历日到交易日。

参数:

  • fill_price (默认: None):
    • 0: 用给定值填充。
    • None: 使用上一个已知收盘价。
    • -1: 使用上一个条的中点(高低平均值)。
  • fill_vol (默认: float(‘NaN’)): 用于填充缺失交易量的值。
  • fill_oi (默认: float(‘NaN’)): 用于填充缺失未平仓合约的值。

BarReplayer_Open #

class backtrader.filters.BarReplayer_Open(data)

此过滤器将一个条分为两部分:

  • Open: 条的开盘价将用于交付一个初始价格条,其中四个组件(OHLC)相等。
    • 此初始条的交易量/未平仓合约字段为 0。
  • OHLC: 原始条完整交付,包含原始交易量/未平仓合约。

分割模拟重播,无需使用重播过滤器。

DaySplitter_Close #

class backtrader.filters.DaySplitter_Close(data)

将一个每日条分为两部分,模拟两个价格点以重播数据:

  • 第一个价格点: OHLX
    • 收盘价将替换为开盘价、高价和低价的平均值。
    • 此价格点使用会话的开盘时间。
  • 第二个价格点: CCCC
    • 收盘价将用于四个价格组件。
    • 此价格点使用会话的收盘时间。
    • 交易量将在两个价格点之间分配,使用参数:
      • closevol (默认: 0.5): 值表示百分比,绝对值范围为 0.0 到 1.0,分配给收盘价格点的比例。其余部分将分配给 OHLX 价格点。

此过滤器用于配合 cerebro.replaydata 一起使用。

HeikinAshi #

class backtrader.filters.HeikinAshi(data)
此过滤器重新建模开盘、高价、低价、收盘价以形成 HeikinAshi 蜡烛图。

参考:

Renko #

class backtrader.filters.Renko(data)

修改数据流以绘制 Renko 条(或砖)。

参数:

  • hilo (默认: False): 使用高价和低价而不是收盘价来决定是否需要新砖。
  • size (默认: None): 每个砖块的大小。
  • autosize (默认: 20.0): 如果 size 为 None,将使用此值自动计算砖块大小(简单地将当前价格除以给定值)。
  • dynamic (默认: False): 如果为 True 并且使用 autosize,当移动到新砖块时将重新计算砖块大小。这当然会消除 Renko 砖块的完美对齐。
  • align (默认: 1.0): 用于对齐砖块价格边界的因子。例如,如果价格为 3563.25 并且 align 为 10.0,则对齐后的价格将为 3560。计算方法:
    • 3563.25 / 10.0 = 356.325
    • 四舍五入并删除小数位 -> 356
    • 356 * 10.0 -> 3560

参考 #