127 lines
5.6 KiB
Markdown
127 lines
5.6 KiB
Markdown
#交易 #量化交易 #策略研究 #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配置案例进行深度定制。
|