132 lines
4.4 KiB
Markdown
132 lines
4.4 KiB
Markdown
这个脚本是一个用于运行 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. **日志输出**
|
||
脚本会在运行过程中输出详细的日志信息,包括最终使用的参数值和命令行。
|
||
|
||
---
|