Skip to content

您可以直接在yaml配置文件中通过pairs指定交易的品种列表,也可以通过品种管理器自动筛选交易列表。

当您使用pairs指定品种列表时,默认不启用品种过滤器。但您可以将pairmgr.force_filters设为true启用,对给定的品种列表进行过滤。

运行时机

在机器人启动时,默认会运行一次品种过滤器,得到可交易品种列表。
您也可以指定cron表达式,定期执行并刷新可交易列表。
当某个品种需要被移除时,如果有未平仓订单,则暂时不会被移除。
回测时也会执行corn表达式,定期刷新品种列表,以达到和实时交易类似的效果。

所有支持的过滤器

  • VolumePairList
  • PriceFilter
  • RateOfChangeFilter
  • SpreadFilter
  • CorrelationFilter
  • VolatilityFilter
  • AgeFilter
  • OffsetFilter
  • ShuffleFilter

yaml的品种过滤器列表的第一个必须是VolumePairList,它可以从市场所有品种返回一个品种列表。

VolumePairList

根据交易量对货币对进行排序/过滤。当其处于第一个时,会计算由back_timeframeback_period指定的周期内,所有品种的交易量,并降序返回。

yaml
  - name: VolumePairList  # 按成交量价值倒序排序所有交易对
    limit: 100  # 取前100个
    min_value: 100000  # 最低成交量价值
    refresh_secs: 7200  # 缓存时间
    back_timeframe: 1d  # 计算成交量时间周期,默认:天
    back_period: 1  # 计算成交量的乘数,和back_timeframe相乘得到时间范围

PriceFilter

允许按价格筛选品种列表。

yaml
  - name: PriceFilter  # 价格过滤器
    max_unit_value: 100  # 最大允许的单位价格变动对应的价值(针对定价货币,一般是USDT)。
    precision: 0.0015  # 按价格精度过滤交易对,默认要求价格变动最小单位是0.1%
    min: 0.001  # 最低价格
    max: 100000  # 最高价格

RateOfChangeFilter

波动性过滤器。

yaml
  - name: RateOfChangeFilter  # 波动性过滤器
    back_days: 5  # 回顾的K线天数
    min: 0.03  # 最小价格变动比率
    max: 10  # 最大价格变动比率
    refresh_period: 1440  # 缓存时间,秒

SpreadFilter

流动性过滤器。公式:1-bid/ask,买卖价差占价格的最大比率

yaml
  - name: SpreadFilter  # 流动性过滤器
    max_ratio: 0.005  # 公式:1-bid/ask,买卖价差占价格的最大比率

CorrelationFilter

相关系数过滤器。

yaml
  - name: CorrelationFilter  # 相关性过滤器
    min: -1  # 用于过滤当前币种与全市场平均相关性;默认0,表示不启用
    max: 1  # 用于过滤当前币种与全市场平均相关性;默认0,表示不启用
    timeframe: 5m  # 用于计算相关性的数据周期
    back_num: 70  # 计算相关性回顾数据长度
    top_n: 50  # 只返回相关性最低的前n个币种,默认0不限制

VolatilityFilter

波动性过滤器。公式:std(log(c/c1)) * sqrt(back_days)

yaml
  - name: VolatilityFilter  # 波动性过滤器,公式:std(log(c/c1)) * sqrt(back_days)
    back_days: 10  # 回顾的K线天数
    max: 1  # 波动分数最大值,此值越大,允许一些在1d级别上变化非常剧烈的标的
    min: 0.05  # 波动分数最小值,此值越小,允许一些在1d级别上变化非常小的标的
    refresh_period: 1440  # 缓存时间

AgeFilter

按品种上市时间过滤。

yaml
  - name: AgeFilter  # 按标的的上市天数过滤
    min: 5

OffsetFilter

按给定偏移,取指定数量的品种。一般用在最后

yaml
  - name: OffsetFilter  # 偏移限定数量选择。一般用在最后
    offset: 10  # 从第10个开始取
    limit: 30  # 最多取30个

ShuffleFilter

随机打乱

yaml
  - name: ShuffleFilter  # 随机打乱
    seed: 42  # 随机数种子,可选