myTestFreqAI/tools/doc/hyperopt_org.md
2025-11-01 20:54:13 +08:00

132 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

这个脚本是一个用于运行 Freqtrade 的 Hyperopt 优化的 Bash 脚本。它支持多种参数,允许用户灵活地配置回测的时间范围、交易对、策略、配置文件等。以下是脚本中支持的主要参数及其调用方法的详细介绍:
---
### **1. 参数分类**
#### **(1) 命名参数(推荐使用)**
命名参数以 `--` 开头,便于明确指定每个参数的含义。以下是支持的命名参数:
- **`--start-date=YYYYMMDD`**
指定回测的起始日期。格式可以是 `YYYYMMDD``YYYY-MM-DD HH:MM:SS`
- 示例:`--start-date=20230901``--start-date="2023-09-01 00:00:00"`
- **`--end-date=YYYYMMDD`**
指定回测的结束日期。格式同上。
- 示例:`--end-date=20231001``--end-date="2023-10-01 23:59:59"`
- **`--pairs=PAIRS`**
指定回测的交易对列表,多个交易对之间用空格分隔。
- 示例:`--pairs="BTC/USDT ETH/USDT"`
- **`--pairRemoteList=URL`**
指定一个远程 API URL从该 URL 获取交易对列表。优先级高于 `--pairs`
- 示例:`--pairRemoteList="https://example.com/api/pairs"`
- **`--strategy=NAME`** 或 **`-t NAME`**
指定使用的策略名称(类名)。如果未提供,默认使用 `.env` 文件中的值。
- 示例:`--strategy=MyStrategy``-t MyStrategy`
- **`--config=FILE`**
指定使用的配置文件路径。如果未提供,默认使用 `.env` 文件中的值。
- 示例:`--config=myconfig.json`
- **`--epochs=N`**
指定 Hyperopt 的迭代次数。如果未提供,默认生成一个 100 以内的随机奇数值。
- 示例:`--epochs=500`
- **`--space=buy|sell`**
指定优化的空间(`buy``sell`)。如果未提供,默认为 `sell`
- 示例:`--space=buy`
---
#### **(2) 位置参数(兼容模式)**
位置参数按照固定的顺序传递,适合简单的调用场景。以下是位置参数的顺序:
1. **开始日期**
格式为 `YYYYMMDD``YYYY-MM-DD HH:MM:SS`
- 示例:`20230901`
2. **结束日期**
格式同上。
- 示例:`20231001`
3. **策略名称**
指定使用的策略名称(类名)。
- 示例:`MyStrategy`
4. **交易对或远程 URL**
指定交易对列表或远程 API URL。
- 示例:`BTC/USDT ETH/USDT``https://example.com/api/pairs`
5. **优化空间(可选)**
指定优化的空间(`buy``sell`)。
- 示例:`buy`
---
### **2. 默认值**
如果某些参数未提供,脚本会使用默认值:
- **开始日期**:默认为两天前。
- **结束日期**:默认为明天。
- **交易对**:默认为一组常见的交易对(如 `BTC/USDT`, `ETH/USDT` 等)。
- **策略**:默认为 `.env` 文件中的 `STRATEGY_NAME`
- **配置文件**:默认为 `.env` 文件中的 `CONFIG_FILE`
- **迭代次数**:默认为一个 100 以内的随机奇数值。
---
### **3. 调用示例**
#### **(1) 使用命名参数**
```bash
./hyperopt_org.sh \
--start-date=20230901 \
--end-date=20231001 \
--strategy=MyStrategy \
--pairs="BTC/USDT ETH/USDT" \
--epochs=500 \
--space=buy
```
#### **(2) 使用位置参数**
```bash
./hyperopt_org.sh 20230901 20231001 MyStrategy "BTC/USDT ETH/USDT" buy
```
#### **(3) 使用远程交易对列表**
```bash
./hyperopt_org.sh \
--start-date=20230901 \
--end-date=20231001 \
--strategy=MyStrategy \
--pairRemoteList="https://example.com/api/pairs" \
--epochs=500
```
#### **(4) 使用默认值**
如果不提供任何参数,脚本会使用默认值运行:
```bash
./hyperopt_org.sh
```
---
### **4. 注意事项**
1. **`.env` 文件**
脚本依赖 `.env` 文件中的环境变量(如 `STRATEGY_NAME`, `CONFIG_FILE` 等)。如果缺少 `.env` 文件,脚本会提示创建并退出。
2. **交易对来源优先级**
- 如果提供了 `--pairRemoteList`,优先从远程 URL 获取交易对。
- 如果未提供 `--pairRemoteList` 但提供了 `--pairs`,使用指定的交易对。
- 如果两者都未提供,使用默认交易对。
3. **日期格式校验**
脚本会对日期格式进行严格校验。如果格式不正确,会提示错误并退出。
4. **策略和配置文件匹配**
如果指定了策略名称,脚本会自动尝试匹配对应的配置文件(小写形式)。如果匹配失败,会使用默认配置文件。
5. **日志输出**
脚本会在运行过程中输出详细的日志信息,包括最终使用的参数值和命令行。
---