5.6 KiB
5.6 KiB
#交易 #量化交易 #策略研究 #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%的品种 → 随机打乱顺序避免过度集中。
四、高级使用技巧
-
性能优化:
- 当交易槽位已满时,启用
FullTradesFilter跳过非持仓币种计算,减少CPU负载。 - 将计算量大的过滤器(如
VolatilityFilter)放在链后部,避免无效计算。
- 当交易槽位已满时,启用
-
动态白名单:
- 结合
VolumeFilter+AgeFilter+PrecisionFilter,实时生成可交易币种,无需手动维护。
- 结合
-
多机器人协作:
- 使用
OffsetFilter分割交易对列表,分配至不同机器人(需注意交易所数据刷新延迟风险)。
- 使用
-
回测限制:
PerformanceFilter、FullTradesFilter等依赖实时数据的过滤器不支持回测,需在实盘环境中验证。
五、注意事项
- 过滤器顺序:优先级高的过滤器(如流动性)应靠前,减少后续计算量。
- 空列表风险:严格参数(如
min_profit=10%)可能导致无币可选,建议设置宽松阈值逐步收紧。 - 交易所差异:不同平台的币种精度、数据粒度可能影响过滤结果,需针对性调整参数。
通过灵活组合上述过滤器,Freqtrade能实现从保守型(低波动、高流动性)到激进型(高波动、择优交易)的多样化策略,满足不同风险偏好和交易目标的需求。建议参考官方文档 中的Pairlist配置案例进行深度定制。