#交易 #量化交易 #策略研究 #freqtrade #DeepSeek Freqtrade的Pairlist(品种列表)系统是其核心功能之一,允许用户通过组合多种过滤器(Filters)动态筛选交易品种(交易对)。这些过滤器可按顺序叠加,形成灵活的选币逻辑,从而适配不同策略需求。以下是主要过滤器类型及其组合逻辑的详细说明: --- ### ​**一、Pairlist 工作机制**​ Pairlist 是一个过滤器链(Filter Chain),按配置顺序依次执行过滤,最终输出符合条件的交易对列表。 - ​**执行顺序**​:过滤器的排列顺序直接影响筛选结果(例如先按交易量过滤,再按价格过滤)。 - ​**动态更新**​:根据市场数据实时刷新(可设置刷新频率)。 - ​**白名单/黑名单**​:支持手动指定固定交易对或排除特定币种。 --- ### ​**二、核心过滤器类型及功能**​ #### 1. ​**VolumeFilter(交易量过滤器)​**​ - ​**功能**​:筛选24小时交易量高于阈值的币种,避免流动性不足的品种。 - ​**参数**​:`min_volume`(最小交易量)。 - ​**用例**​:仅交易Binance上日交易量超过100 BTC的币种。 #### 2. ​**PriceFilter(价格过滤器)​**​ - ​**功能**​:按价格范围或波动限制筛选: - `min_price`/`max_price`:排除价格过低或过高的币种。 - `low_price_ratio`:过滤近期最低价与当前价差距过大的币种(防暴跌风险)。 - ​**用例**​:排除价格低于0.0001 BTC或单日跌幅超20%的币种。 #### 3. ​**RangeStabilityFilter(价格稳定性过滤器)​**​ - ​**功能**​:筛选价格波动较小的币种(例如通过标准差计算稳定性)。 - ​**适用场景**​:均值回归策略需避免高波动品种。 #### 4. ​**VolatilityFilter(波动率过滤器)​**​ - ​**功能**​:基于历史波动率(如ATR)过滤,保留波动适中的币种。 - ​**参数**​:`min_volatility`/`max_volatility`。 #### 5. ​**PerformanceFilter(历史表现过滤器)​**​ - ​**功能**​:按过去交易盈亏排序,优先选择盈利高的币种。 - `minutes`:滚动窗口时间(例如仅考虑24小时内表现)。 - `min_profit`:最低盈利阈值(如1%)。 - ​**注意**​:需积累足够历史交易数据,且**不支持回测**。 #### 6. ​**AgeFilter(上市时间过滤器)​**​ - ​**功能**​:排除新上市币种(如上市时间少于7天),避免流动性或数据不足风险。 #### 7. ​**ShuffleFilter(随机过滤器)​**​ - ​**功能**​:随机打乱剩余币种顺序,避免策略偏向特定品种。 #### 8. ​**OffsetFilter(偏移过滤器)​**​ - ​**功能**​:从列表中跳过前N个币种,选择后续M个(例如跳过前10个,选接下来的20个)。 - ​**用例**​:在多机器人协作时分流交易品种。 #### 9. ​**PrecisionFilter(精度过滤器)​**​ - ​**功能**​:过滤因交易所精度限制无法设置止损的币种(如价格低于0.001的币种)。 --- ### ​**三、过滤器组合逻辑示例**​ #### ​**组合1:流动性优先 + 价格稳定**​ ``` VolumeFilter(min_volume=50 BTC) → RangeStabilityFilter(max_std=0.03) → OffsetFilter(offset=0, number_assets=20) ``` ​**逻辑**​:选高流动性币种 → 保留价格波动<3%的品种 → 取前20个。 #### ​**组合2:趋势策略 + 风险控制**​ ``` VolumeFilter(min_volume=100 BTC) → VolatilityFilter(min_volatility=0.01, max_volatility=0.1) → PriceFilter(min_price=0.0005, max_price=0.05) ``` ​**逻辑**​:排除低流动性币 → 筛选波动率1%~10%的品种 → 限制价格区间防极端行情。 #### ​**组合3:动态择优交易**​ ``` VolumeFilter(min_volume=200 BTC) → PerformanceFilter(minutes=1440, min_profit=0.02) → ShuffleFilter(seed=42) ``` ​**逻辑**​:选高流动性币 → 取24小时内盈利超2%的品种 → 随机打乱顺序避免过度集中。 --- ### ​**四、高级使用技巧**​ 1. ​**性能优化**​: - 当交易槽位已满时,启用`FullTradesFilter`跳过非持仓币种计算,减少CPU负载。 - 将计算量大的过滤器(如`VolatilityFilter`)放在链后部,避免无效计算。 2. ​**动态白名单**​: - 结合`VolumeFilter` + `AgeFilter` + `PrecisionFilter`,实时生成可交易币种,无需手动维护。 3. ​**多机器人协作**​: - 使用`OffsetFilter`分割交易对列表,分配至不同机器人(需注意交易所数据刷新延迟风险)。 4. ​**回测限制**​: - `PerformanceFilter`、`FullTradesFilter`等依赖实时数据的过滤器**不支持回测**,需在实盘环境中验证。 --- ### ​**五、注意事项**​ - ​**过滤器顺序**​:优先级高的过滤器(如流动性)应靠前,减少后续计算量。 - ​**空列表风险**​:严格参数(如`min_profit=10%`)可能导致无币可选,建议设置宽松阈值逐步收紧。 - ​**交易所差异**​:不同平台的币种精度、数据粒度可能影响过滤结果,需针对性调整参数。 通过灵活组合上述过滤器,Freqtrade能实现从保守型(低波动、高流动性)到激进型(高波动、择优交易)的多样化策略,满足不同风险偏好和交易目标的需求。建议参考[官方文档](https://www.freqtrade.io/) 中的Pairlist配置案例进行深度定制。