initial vault sync
This commit is contained in:
121
05 投资交易/freqtrade数据下载时,比本地已有数据时间更早导致失败怎么办?.md
Normal file
121
05 投资交易/freqtrade数据下载时,比本地已有数据时间更早导致失败怎么办?.md
Normal file
@ -0,0 +1,121 @@
|
||||
#freqtrade #软件配置
|
||||
|
||||
在已有本地数据时,如果想要下载更早的数据,直接使用下载命令是不行的
|
||||
会导致程序有如下的报错:
|
||||
|
||||
```bash
|
||||
Requested start date 2023-01-01 00:00:00 earlier than local data start date 2025-06-05 08:00:00. Use `--prepend` to download data prior to 2025-06-05 08:00:00, or `--erase` to redownload all data.
|
||||
```
|
||||
|
||||
为了解决这个问题,需要使用`prepend` 或 `erase`命令。
|
||||
我使用`prepend`成功将下载数据的时间从2025-6更新到2021-01.
|
||||
|
||||
```bash
|
||||
freqtrade download-data --exchange binance --pairs BTC/USDT:USDT --timeframe 5m --timerange 20210101- --prepend
|
||||
```
|
||||
|
||||
之后,本地数据(BTC/USDT:USDT 5m)的起始时间就更新到20210101。
|
||||
这个问题以后可能在数据下载和回测中会很常见,因此做记录和说明。
|
||||
|
||||
---
|
||||
|
||||
你在使用 Freqtrade 下载数据时遇到的错误提示,表明你请求的起始时间(2023-01-01)早于本地已存在的数据起始时间(2025-06-05)。Freqtrade 为防止意外覆盖或数据冗余,默认不会自动补充缺失的历史数据。以下是具体解决方案:
|
||||
|
||||
---
|
||||
|
||||
### 🔧 **问题原因与解决方案**
|
||||
|
||||
|**问题**|**原因**|**解决方法**|
|
||||
|---|---|---|
|
||||
|请求时间早于本地数据起始时间|本地数据从 2025-06-05 开始,无法覆盖 2023-01-01 的数据|使用 `--prepend` 或 `--erase` 参数调整下载行为|
|
||||
|
||||
---
|
||||
|
||||
### ⚙️ **1. 使用 `--prepend` 补充缺失数据**
|
||||
|
||||
**适用场景**:仅下载本地缺失的早期数据(2023-01-01 至 2025-06-05),不删除现有数据。
|
||||
**命令示例**:
|
||||
|
||||
```
|
||||
freqtrade download-data --exchange binance --pairs BTC/USDT --timeframe 1d --timerange 20230101- --prepend
|
||||
```
|
||||
|
||||
- `--timerange 20230101-`:下载从 2023 年 1 月 1 日至今的所有数据。
|
||||
- `--prepend`:在现有数据前追加缺失的历史数据[7](@ref)。
|
||||
|
||||
**注意事项**:
|
||||
|
||||
- 数据按时间顺序合并,确保无重复。
|
||||
- 适合长期维护数据完整性的场景。
|
||||
|
||||
---
|
||||
|
||||
### ⚡ **2. 使用 `--erase` 重新下载全部数据**
|
||||
|
||||
**适用场景**:清空本地旧数据,重新下载完整时间范围(2023-01-01 至今)。
|
||||
**命令示例**:
|
||||
|
||||
```
|
||||
freqtrade download-data --exchange binance --pairs BTC/USDT --timeframe 1d --timerange 20230101- --erase
|
||||
```
|
||||
|
||||
- `--erase`:删除本地存储的该交易对数据,重新下载[7](@ref)。
|
||||
|
||||
**适用情况**:
|
||||
|
||||
- 怀疑现有数据质量问题(如缺失K线、错误价格)。
|
||||
- 更换数据源或需要全新数据集。
|
||||
|
||||
---
|
||||
|
||||
### 📊 **参数对比与选择建议**
|
||||
|
||||
|**参数**|**行为**|**适用场景**|**耗时**|
|
||||
|---|---|---|---|
|
||||
|`--prepend`|仅补充缺失数据,保留现有数据|需增量更新历史数据|较短|
|
||||
|`--erase`|删除全部数据后重新下载|数据损坏或需全新数据集|较长|
|
||||
|无参数|仅下载最新数据|本地数据已完整覆盖请求时间范围|最短|
|
||||
|
||||
> 💡 **操作建议**:
|
||||
>
|
||||
> - 若现有数据可靠 → 选 `--prepend` 高效追加[7](@ref)。
|
||||
> - 若需彻底刷新数据 → 选 `--erase` 确保一致性。
|
||||
|
||||
---
|
||||
|
||||
### ⚠️ **注意事项**
|
||||
|
||||
1. **时间范围格式**:
|
||||
|
||||
- 起始日期格式必须为 `YYYYMMDD`(如 `20230101`)。
|
||||
- 结束日期可省略(`20230101-` 表示从 2023 年至今)[7](@ref)。
|
||||
2. **数据存储位置**:
|
||||
|
||||
- 下载的数据默认保存在 `user_data/data/<交易所名>` 目录。
|
||||
- Docker 用户需挂载卷确保持久化:
|
||||
|
||||
```
|
||||
docker run -v $(pwd)/user_data:/freqtrade/user_data ...
|
||||
```
|
||||
|
||||
3. **多时间框架支持**:
|
||||
同时下载多个时间框架(如 `1d` 和 `4h`):
|
||||
|
||||
```
|
||||
freqtrade download-data --timeframes 1d,4h --pairs BTC/USDT --timerange 20230101- --prepend
|
||||
```
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 💎 **总结**
|
||||
|
||||
- **增量更新** → `--prepend` + `--timerange <起始日期>-`
|
||||
- **全量重载** → `--erase` + `--timerange <起始日期>-`
|
||||
- **验证数据**:下载后检查 `user_data/data` 目录的文件日期范围[7](@ref)。
|
||||
|
||||
> 执行后可通过回测试验数据完整性:
|
||||
>
|
||||
> ```
|
||||
> freqtrade backtest --strategy MyStrategy --timerange 20230101-20250705
|
||||
> ```
|
||||
Reference in New Issue
Block a user