#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 > ```