mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-14 08:16:56 +08:00
Docs: Enhance README files with beginner-friendly guides (4 languages)
**Configuration Improvements:** - Add comprehensive "Get AI API Keys" section (DeepSeek + Qwen) - Split configuration into Beginner Mode and Expert Mode - Add step-by-step setup guides with placeholder tables - Add configuration checklist and field explanations - Document smart default behavior for use_default_coins (v2.0.2) **Startup/Monitoring Guides:** - Add detailed 2-step system startup instructions - Include expected output and error troubleshooting tables - Add monitoring and graceful shutdown procedures - Provide health check commands **AI Decision Flow Updates:** - Enhance flow diagram with emojis and wider boxes - Add v2.0.2 improvement markers throughout - Document position duration tracking - Document accurate USDT PnL calculation with leverage - Document enhanced AI freedom for raw data analysis - Document improved position tracking (symbol_side keys) - Add "Key Improvements in v2.0.2" summary section **Code Changes:** - Simplify config.json.example to beginner-friendly single trader - Implement smart default: use_default_coins auto-enables when omitted - Set default to true if false without coin_pool_api_url **Files Updated:** - README.md (English): +559 lines - README.zh-CN.md (Chinese): +527 lines - README.ru.md (Russian): +634 lines - README.uk.md (Ukrainian): +521 lines - config.json.example: Simplified configuration - config/config.go: Smart default logic Total: 2068+ additions across all documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
525
README.zh-CN.md
525
README.zh-CN.md
@@ -207,9 +207,117 @@ npm install
|
||||
cd ..
|
||||
```
|
||||
|
||||
### 4. 配置系统
|
||||
### 4. 获取AI API密钥
|
||||
|
||||
创建 `config.json` 文件:
|
||||
在配置系统之前,您需要获取AI API密钥。请选择以下AI提供商之一:
|
||||
|
||||
#### 选项1:DeepSeek(推荐新手)
|
||||
|
||||
**为什么选择DeepSeek?**
|
||||
- 💰 比GPT-4便宜(约1/10成本)
|
||||
- 🚀 响应速度快
|
||||
- 🎯 交易决策质量优秀
|
||||
- 🌍 全球可用无需VPN
|
||||
|
||||
**如何获取DeepSeek API密钥:**
|
||||
|
||||
1. **访问**:[https://platform.deepseek.com](https://platform.deepseek.com)
|
||||
2. **注册**:使用邮箱/手机号注册
|
||||
3. **验证**:完成邮箱/手机验证
|
||||
4. **充值**:向账户添加余额
|
||||
- 最低:约$5美元
|
||||
- 推荐:$20-50美元用于测试
|
||||
5. **创建API密钥**:
|
||||
- 进入API Keys部分
|
||||
- 点击"创建新密钥"
|
||||
- 复制并保存密钥(以`sk-`开头)
|
||||
- ⚠️ **重要**:立即保存 - 之后无法再查看!
|
||||
|
||||
**价格**:每百万tokens约$0.14(非常便宜!)
|
||||
|
||||
#### 选项2:Qwen(阿里云通义千问)
|
||||
|
||||
**如何获取Qwen API密钥:**
|
||||
|
||||
1. **访问**:[https://dashscope.aliyuncs.com](https://dashscope.aliyuncs.com)
|
||||
2. **注册**:使用阿里云账户注册
|
||||
3. **开通服务**:激活DashScope服务
|
||||
4. **创建API密钥**:
|
||||
- 进入API密钥管理
|
||||
- 创建新密钥
|
||||
- 复制并保存(以`sk-`开头)
|
||||
|
||||
**注意**:可能需要中国手机号注册
|
||||
|
||||
---
|
||||
|
||||
### 5. 系统配置
|
||||
|
||||
**两种配置模式可选:**
|
||||
- **🌟 新手模式**:单trader + 默认币种(推荐!)
|
||||
- **⚔️ 专家模式**:多trader竞赛
|
||||
|
||||
#### 🌟 新手模式配置(推荐)
|
||||
|
||||
**步骤1**:复制并重命名示例配置文件
|
||||
|
||||
```bash
|
||||
cp config.json.example config.json
|
||||
```
|
||||
|
||||
**步骤2**:编辑`config.json`填入您的API密钥
|
||||
|
||||
```json
|
||||
{
|
||||
"traders": [
|
||||
{
|
||||
"id": "my_trader",
|
||||
"name": "我的AI交易员",
|
||||
"ai_model": "deepseek",
|
||||
"binance_api_key": "YOUR_BINANCE_API_KEY",
|
||||
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY",
|
||||
"use_qwen": false,
|
||||
"deepseek_key": "sk-xxxxxxxxxxxxx",
|
||||
"qwen_key": "",
|
||||
"initial_balance": 1000.0,
|
||||
"scan_interval_minutes": 3
|
||||
}
|
||||
],
|
||||
"use_default_coins": true,
|
||||
"coin_pool_api_url": "",
|
||||
"oi_top_api_url": "",
|
||||
"api_server_port": 8080
|
||||
}
|
||||
```
|
||||
|
||||
**步骤3**:用您的实际密钥替换占位符
|
||||
|
||||
| 占位符 | 替换为 | 哪里获取 |
|
||||
|-------|--------|---------|
|
||||
| `YOUR_BINANCE_API_KEY` | 您的币安API密钥 | 币安 → 账户 → API管理 |
|
||||
| `YOUR_BINANCE_SECRET_KEY` | 您的币安Secret密钥 | 同上 |
|
||||
| `sk-xxxxxxxxxxxxx` | 您的DeepSeek API密钥 | [platform.deepseek.com](https://platform.deepseek.com) |
|
||||
|
||||
**步骤4**:调整初始余额(可选)
|
||||
|
||||
- `initial_balance`:设置为您实际的币安合约账户余额
|
||||
- 用于计算盈亏百分比
|
||||
- 例如:如果您有500 USDT,设置`"initial_balance": 500.0`
|
||||
|
||||
**✅ 配置检查清单:**
|
||||
|
||||
- [ ] 币安API密钥已填写(无引号问题)
|
||||
- [ ] 币安Secret密钥已填写(无引号问题)
|
||||
- [ ] DeepSeek API密钥已填写(以`sk-`开头)
|
||||
- [ ] `use_default_coins`设为`true`(新手)
|
||||
- [ ] `initial_balance`与您的账户余额匹配
|
||||
- [ ] 文件保存为`config.json`(不是`.example`)
|
||||
|
||||
---
|
||||
|
||||
#### ⚔️ 专家模式:多Trader竞赛
|
||||
|
||||
用于运行多个AI trader相互竞争:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -218,12 +326,13 @@ cd ..
|
||||
"id": "qwen_trader",
|
||||
"name": "Qwen AI Trader",
|
||||
"ai_model": "qwen",
|
||||
"binance_api_key": "YOUR_BINANCE_API_KEY",
|
||||
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY",
|
||||
"binance_api_key": "YOUR_BINANCE_API_KEY_1",
|
||||
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY_1",
|
||||
"use_qwen": true,
|
||||
"qwen_key": "sk-xxxxx",
|
||||
"scan_interval_minutes": 3,
|
||||
"initial_balance": 1000.0
|
||||
"deepseek_key": "",
|
||||
"initial_balance": 1000.0,
|
||||
"scan_interval_minutes": 3
|
||||
},
|
||||
{
|
||||
"id": "deepseek_trader",
|
||||
@@ -232,58 +341,217 @@ cd ..
|
||||
"binance_api_key": "YOUR_BINANCE_API_KEY_2",
|
||||
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY_2",
|
||||
"use_qwen": false,
|
||||
"qwen_key": "",
|
||||
"deepseek_key": "sk-xxxxx",
|
||||
"scan_interval_minutes": 3,
|
||||
"initial_balance": 1000.0
|
||||
"initial_balance": 1000.0,
|
||||
"scan_interval_minutes": 3
|
||||
}
|
||||
],
|
||||
"coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=YOUR_AUTH",
|
||||
"oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=YOUR_AUTH",
|
||||
"use_default_coins": true,
|
||||
"coin_pool_api_url": "",
|
||||
"oi_top_api_url": "",
|
||||
"api_server_port": 8080
|
||||
}
|
||||
```
|
||||
|
||||
**配置说明:**
|
||||
- `traders`: 可配置1-N个trader(单AI或多AI竞赛)
|
||||
- `id`: Trader唯一标识(用于日志目录)
|
||||
- `ai_model`: "qwen" 或 "deepseek"
|
||||
- `binance_api_key/secret_key`: 每个trader使用独立的币安账户
|
||||
- `initial_balance`: 初始余额(用于计算盈亏%)
|
||||
- `scan_interval_minutes`: 决策周期(建议3-5分钟)
|
||||
- `use_default_coins`: **true** = 使用默认8个主流币种 | **false** = 使用API币种池(新手推荐:true)
|
||||
- `coin_pool_api_url`: AI500币种池API(可选,当use_default_coins=true时忽略)
|
||||
- `oi_top_api_url`: OI Top持仓量API(可选,留空时跳过OI Top数据)
|
||||
**竞赛模式要求:**
|
||||
- 2个独立的币安合约账户(不同的API密钥)
|
||||
- 两种AI API密钥(Qwen + DeepSeek)
|
||||
- 更多测试资金(推荐:每个账户500+ USDT)
|
||||
|
||||
**默认币种列表**(当 `use_default_coins: true` 时):
|
||||
---
|
||||
|
||||
#### 📚 配置字段详解
|
||||
|
||||
| 字段 | 说明 | 示例值 | 是否必填? |
|
||||
|-----|------|--------|-----------|
|
||||
| `id` | 此trader的唯一标识符 | `"my_trader"` | ✅ 是 |
|
||||
| `name` | 显示名称 | `"我的AI交易员"` | ✅ 是 |
|
||||
| `ai_model` | 使用的AI提供商 | `"deepseek"` 或 `"qwen"` | ✅ 是 |
|
||||
| `binance_api_key` | 币安API密钥 | `"abc123..."` | ✅ 是 |
|
||||
| `binance_secret_key` | 币安Secret密钥 | `"xyz789..."` | ✅ 是 |
|
||||
| `use_qwen` | 是否使用Qwen | `true` 或 `false` | ✅ 是 |
|
||||
| `deepseek_key` | DeepSeek API密钥 | `"sk-xxx"` | 使用DeepSeek时必填 |
|
||||
| `qwen_key` | Qwen API密钥 | `"sk-xxx"` | 使用Qwen时必填 |
|
||||
| `initial_balance` | 用于P/L计算的起始余额 | `1000.0` | ✅ 是 |
|
||||
| `scan_interval_minutes` | 决策频率(分钟) | `3`(建议3-5) | ✅ 是 |
|
||||
| `use_default_coins` | 使用内置币种列表<br>**✨ 智能默认:`true`** (v2.0.2+)<br>未提供API时自动启用 | `true` 或省略 | ❌ 否<br>(可选,自动默认) |
|
||||
| `coin_pool_api_url` | 自定义币种池API<br>*仅当`use_default_coins: false`时需要* | `""`(空) | ❌ 否 |
|
||||
| `oi_top_api_url` | 持仓量API<br>*可选补充数据* | `""`(空) | ❌ 否 |
|
||||
| `api_server_port` | Web仪表板端口 | `8080` | ✅ 是 |
|
||||
|
||||
**默认交易币种**(当 `use_default_coins: true` 时):
|
||||
- BTC、ETH、SOL、BNB、XRP、DOGE、ADA、HYPE
|
||||
|
||||
### 5. 运行系统
|
||||
---
|
||||
|
||||
**启动后端(AI交易系统 + API服务器):**
|
||||
#### ⚠️ 重要:`use_default_coins` 字段
|
||||
|
||||
**智能默认行为(v2.0.2+):**
|
||||
|
||||
系统现在会自动默认为`use_default_coins: true`,如果:
|
||||
- 您在config.json中未包含此字段,或
|
||||
- 您将其设为`false`但未提供`coin_pool_api_url`
|
||||
|
||||
这让新手更友好!您甚至可以完全省略此字段。
|
||||
|
||||
**配置示例:**
|
||||
|
||||
✅ **选项1:显式设置(推荐以保持清晰)**
|
||||
```json
|
||||
"use_default_coins": true,
|
||||
"coin_pool_api_url": "",
|
||||
"oi_top_api_url": ""
|
||||
```
|
||||
|
||||
✅ **选项2:省略字段(自动使用默认币种)**
|
||||
```json
|
||||
// 完全不包含"use_default_coins"
|
||||
"coin_pool_api_url": "",
|
||||
"oi_top_api_url": ""
|
||||
```
|
||||
|
||||
⚙️ **高级:使用外部API**
|
||||
```json
|
||||
"use_default_coins": false,
|
||||
"coin_pool_api_url": "http://your-api.com/coins",
|
||||
"oi_top_api_url": "http://your-api.com/oi"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 6. 运行系统
|
||||
|
||||
#### 🚀 启动系统(2个步骤)
|
||||
|
||||
系统有**2个部分**需要分别运行:
|
||||
1. **后端**(AI交易大脑 + API)
|
||||
2. **前端**(Web监控仪表板)
|
||||
|
||||
---
|
||||
|
||||
#### **步骤1:启动后端**
|
||||
|
||||
打开终端并运行:
|
||||
|
||||
```bash
|
||||
# 构建程序(首次运行或代码更改后)
|
||||
go build -o nofx
|
||||
|
||||
# 启动后端
|
||||
./nofx
|
||||
```
|
||||
|
||||
**启动前端(Web Dashboard):**
|
||||
**您应该看到:**
|
||||
|
||||
新开终端窗口:
|
||||
```
|
||||
🚀 启动自动交易系统...
|
||||
✓ Trader [my_trader] 已初始化
|
||||
✓ API服务器启动在端口 8080
|
||||
📊 开始交易监控...
|
||||
```
|
||||
|
||||
**⚠️ 如果看到错误:**
|
||||
|
||||
| 错误信息 | 解决方案 |
|
||||
|---------|---------|
|
||||
| `invalid API key` | 检查config.json中的币安API密钥 |
|
||||
| `TA-Lib not found` | 运行`brew install ta-lib`(macOS) |
|
||||
| `port 8080 already in use` | 修改config.json中的`api_server_port` |
|
||||
| `DeepSeek API error` | 验证DeepSeek API密钥和余额 |
|
||||
|
||||
**✅ 后端运行正常的标志:**
|
||||
- 无错误信息
|
||||
- 出现"开始交易监控..."
|
||||
- 系统显示账户余额
|
||||
- 保持此终端窗口打开!
|
||||
|
||||
---
|
||||
|
||||
#### **步骤2:启动前端**
|
||||
|
||||
打开**新的终端窗口**(保持第一个运行!),然后:
|
||||
|
||||
```bash
|
||||
cd web
|
||||
npm run dev
|
||||
```
|
||||
|
||||
**访问界面:**
|
||||
**您应该看到:**
|
||||
|
||||
```
|
||||
Web Dashboard: http://localhost:3000
|
||||
API Server: http://localhost:8080
|
||||
VITE v5.x.x ready in xxx ms
|
||||
|
||||
➜ Local: http://localhost:3000/
|
||||
➜ Network: use --host to expose
|
||||
```
|
||||
|
||||
### 6. 停止系统
|
||||
**✅ 前端运行正常的标志:**
|
||||
- "Local: http://localhost:3000/"消息
|
||||
- 无错误信息
|
||||
- 也保持此终端窗口打开!
|
||||
|
||||
在两个终端中分别按 `Ctrl+C`
|
||||
---
|
||||
|
||||
#### **步骤3:访问仪表板**
|
||||
|
||||
在Web浏览器中访问:
|
||||
|
||||
**🌐 http://localhost:3000**
|
||||
|
||||
**您将看到:**
|
||||
- 📊 实时账户余额
|
||||
- 📈 持仓(如果有)
|
||||
- 🤖 AI决策日志
|
||||
- 📉 净值曲线图
|
||||
|
||||
**首次使用提示:**
|
||||
- 首次AI决策可能需要3-5分钟
|
||||
- 初始决策可能显示"观望"- 这是正常的
|
||||
- AI需要先分析市场状况
|
||||
|
||||
---
|
||||
|
||||
### 7. 监控系统
|
||||
|
||||
**需要关注的内容:**
|
||||
|
||||
✅ **健康系统标志:**
|
||||
- 后端终端每3-5分钟显示决策周期
|
||||
- 无持续错误信息
|
||||
- 账户余额更新
|
||||
- Web仪表板自动刷新
|
||||
|
||||
⚠️ **警告标志:**
|
||||
- 重复的API错误
|
||||
- 10分钟以上无决策
|
||||
- 余额快速下降
|
||||
|
||||
**检查系统状态:**
|
||||
|
||||
```bash
|
||||
# 在新终端窗口中
|
||||
curl http://localhost:8080/health
|
||||
```
|
||||
|
||||
应返回:`{"status":"ok"}`
|
||||
|
||||
---
|
||||
|
||||
### 8. 停止系统
|
||||
|
||||
**优雅关闭(推荐):**
|
||||
|
||||
1. 转到**后端终端**(第一个)
|
||||
2. 按`Ctrl+C`
|
||||
3. 等待"系统已停止"消息
|
||||
4. 转到**前端终端**(第二个)
|
||||
5. 按`Ctrl+C`
|
||||
|
||||
**⚠️ 重要:**
|
||||
- 始终先停止后端
|
||||
- 关闭终端前等待确认
|
||||
- 不要强制退出(不要直接关闭终端)
|
||||
|
||||
---
|
||||
|
||||
@@ -292,66 +560,101 @@ API Server: http://localhost:8080
|
||||
每个决策周期(默认3分钟),系统按以下流程运行:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 1. 分析历史表现(最近20个周期) │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ ✓ 计算整体胜率、平均盈利、盈亏比 │
|
||||
│ ✓ 统计各币种表现(胜率、平均盈亏) │
|
||||
│ ✓ 识别最佳/最差币种 │
|
||||
│ ✓ 列出最近5笔交易详情 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 2. 获取账户状态 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ • 账户净值、可用余额 │
|
||||
│ • 持仓数量、总盈亏 │
|
||||
│ • 保证金使用率 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 3. 分析现有持仓(如果有) │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ • 获取每个持仓的市场数据 │
|
||||
│ • 计算技术指标(RSI、MACD、EMA) │
|
||||
│ • AI判断是否需要平仓 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 4. 评估新机会(候选币种池) │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ • 获取AI500高评分币种(前20个) │
|
||||
│ • 获取OI Top持仓增长币种(前20个) │
|
||||
│ • 合并去重,过滤低流动性币种(<15M) │
|
||||
│ • 批量获取市场数据和技术指标 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 5. AI综合决策 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ • 查看历史反馈(胜率、最佳/最差币种) │
|
||||
│ • Chain of Thought 思维链分析 │
|
||||
│ • 输出决策:平仓/开仓/持有/观望 │
|
||||
│ • 包含杠杆、仓位、止损、止盈 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 6. 执行交易 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ • 优先级排序:先平仓,再开仓 │
|
||||
│ • 精度自动适配(LOT_SIZE) │
|
||||
│ • 防止仓位叠加(同币种同方向拒绝开仓) │
|
||||
│ • 平仓后自动取消所有挂单 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 7. 记录日志 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ • 保存完整决策记录到 decision_logs/ │
|
||||
│ • 包含思维链、决策JSON、账户快照、执行结果 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 1. 📊 分析历史表现(最近20个周期) │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ ✓ 计算整体胜率、平均盈利、盈亏比 │
|
||||
│ ✓ 统计各币种表现(胜率、平均USDT盈亏) │
|
||||
│ ✓ 识别最佳/最差币种 │
|
||||
│ ✓ 列出最近5笔交易详情(含准确盈亏金额) │
|
||||
│ ✓ 计算夏普比率衡量风险调整后收益 │
|
||||
│ 📌 新增 (v2.0.2): 考虑杠杆的准确USDT盈亏计算 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 2. 💰 获取账户状态 │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ • 账户净值、可用余额、未实现盈亏 │
|
||||
│ • 持仓数量、总盈亏(已实现+未实现) │
|
||||
│ • 保证金使用率(current/maximum) │
|
||||
│ • 风险评估指标 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 3. 🔍 分析现有持仓(如果有) │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ • 获取每个持仓的市场数据(3分钟+4小时K线) │
|
||||
│ • 计算技术指标(RSI、MACD、EMA) │
|
||||
│ • 显示持仓时长(例如"持仓时长2小时15分钟") │
|
||||
│ • AI判断是否需要平仓(止盈、止损或调整) │
|
||||
│ 📌 新增 (v2.0.2): 追踪持仓时长帮助AI决策 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 4. 🎯 评估新机会(候选币种池) │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ • 获取AI500高评分币种(前20个) │
|
||||
│ • 获取OI Top持仓增长币种(前20个) │
|
||||
│ • 合并去重,过滤低流动性币种(持仓量<15M USD) │
|
||||
│ • 批量获取市场数据和技术指标 │
|
||||
│ • 为每个候选币种准备完整的原始数据序列 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 5. 🧠 AI综合决策 │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ • 查看历史反馈(胜率、盈亏比、最佳/最差币种) │
|
||||
│ • 接收所有原始序列数据(K线、指标、持仓量) │
|
||||
│ • Chain of Thought 思维链分析 │
|
||||
│ • 输出决策:平仓/开仓/持有/观望 │
|
||||
│ • 包含杠杆、仓位、止损、止盈参数 │
|
||||
│ 📌 新增 (v2.0.2): AI可自由分析原始序列,不受预定义指标限制 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 6. ⚡ 执行交易 │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ • 优先级排序:先平仓,再开仓 │
|
||||
│ • 精度自动适配(LOT_SIZE规则) │
|
||||
│ • 防止仓位叠加(同币种同方向拒绝开仓) │
|
||||
│ • 平仓后自动取消所有挂单 │
|
||||
│ • 记录开仓时间用于持仓时长追踪 │
|
||||
│ 📌 新增 (v2.0.2): 追踪持仓开仓时间 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ 7. 📝 记录日志 │
|
||||
├──────────────────────────────────────────────────────────┤
|
||||
│ • 保存完整决策记录到 decision_logs/ │
|
||||
│ • 包含思维链、决策JSON、账户快照、执行结果 │
|
||||
│ • 存储完整持仓数据(数量、杠杆、开/平仓时间) │
|
||||
│ • 使用symbol_side键值防止多空冲突 │
|
||||
│ 📌 新增 (v2.0.2): 防止多空持仓冲突,考虑数量+杠杆 │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### v2.0.2的核心改进
|
||||
|
||||
**📌 持仓时长追踪:**
|
||||
- 系统现在追踪每个持仓已持有多长时间
|
||||
- 在用户提示中显示:"持仓时长2小时15分钟"
|
||||
- 帮助AI更好地判断何时退出仓位
|
||||
|
||||
**📌 准确的盈亏计算:**
|
||||
- 之前:只显示百分比(100U@5% = 1000U@5% = 都显示"5.0")
|
||||
- 现在:真实USDT盈亏 = 仓位价值 × 价格变化% × 杠杆倍数
|
||||
- 示例:1000 USDT × 5% × 20倍 = 1000 USDT实际盈利
|
||||
|
||||
**📌 增强的AI自由度:**
|
||||
- AI可以自由分析所有原始序列数据
|
||||
- 不再局限于预定义的指标组合
|
||||
- 可以执行自己的趋势分析、支撑位/阻力位计算
|
||||
|
||||
**📌 改进的持仓追踪:**
|
||||
- 使用`symbol_side`键值(例如"BTCUSDT_long")
|
||||
- 防止同时持有多空仓时的冲突
|
||||
- 存储完整数据:数量、杠杆、开/平仓时间
|
||||
|
||||
---
|
||||
|
||||
## 🧠 AI自我学习示例
|
||||
@@ -607,6 +910,50 @@ sudo apt-get install libta-lib0-dev
|
||||
|
||||
## 🔄 更新日志
|
||||
|
||||
### v2.0.2 (2025-10-29)
|
||||
|
||||
**关键Bug修复 - 交易历史记录与性能分析:**
|
||||
|
||||
本版本修复了历史交易记录和性能分析系统中的**严重计算错误**,这些错误严重影响了盈利统计的准确性。
|
||||
|
||||
**1. 盈亏计算 - 重大错误修复** (logger/decision_logger.go)
|
||||
- **问题**:之前只用百分比计算盈亏,完全忽略了仓位大小和杠杆倍数
|
||||
- 示例:100 USDT仓位赚5%和1000 USDT仓位赚5%都显示`5.0`作为盈利
|
||||
- 这导致性能分析完全不准确
|
||||
- **解决方案**:现在计算实际USDT盈亏金额
|
||||
```
|
||||
盈亏(USDT) = 仓位价值 × 价格变化% × 杠杆倍数
|
||||
示例: 1000 USDT × 5% × 20倍 = 1000 USDT实际盈利
|
||||
```
|
||||
- **影响**:胜率、盈亏比和夏普比率现在基于准确的USDT金额计算
|
||||
|
||||
**2. 持仓追踪 - 缺失关键数据**
|
||||
- **问题**:开仓记录只存储了价格和时间,缺少数量和杠杆
|
||||
- **解决方案**:现在存储完整交易数据:
|
||||
- `quantity`: 持仓数量(币数)
|
||||
- `leverage`: 杠杆倍数(如20倍)
|
||||
- 这些是准确计算盈亏的必要数据
|
||||
|
||||
**3. 持仓键值逻辑 - 多空冲突**
|
||||
- **问题**:使用`symbol`作为持仓键值,导致同时持有多空仓时数据冲突
|
||||
- 示例:BTCUSDT多头和BTCUSDT空头会互相覆盖
|
||||
- **解决方案**:改为`symbol_side`格式(如`BTCUSDT_long`、`BTCUSDT_short`)
|
||||
- 现在可以正确区分多空持仓
|
||||
|
||||
**4. 夏普比率计算 - 代码优化**
|
||||
- **问题**:使用自定义的牛顿迭代法计算平方根
|
||||
- **解决方案**:替换为标准库`math.Sqrt`
|
||||
- 更可靠、易维护且高效
|
||||
|
||||
**为什么这次更新很重要:**
|
||||
- ✅ 历史交易统计现在显示**真实的USDT盈亏**而不是无意义的百分比
|
||||
- ✅ 不同杠杆倍数的交易对比现在准确了
|
||||
- ✅ AI自我学习机制接收到正确的历史反馈
|
||||
- ✅ 盈亏比和夏普比率计算现在有意义了
|
||||
- ✅ 多持仓追踪(同时持有多空)现在正常工作
|
||||
|
||||
**建议**:如果您在此更新前运行过系统,您的历史统计数据是不准确的。更新到v2.0.2后,新的交易将被正确计算。
|
||||
|
||||
### v2.0.1 (2025-10-29)
|
||||
|
||||
**Bug修复:**
|
||||
@@ -674,7 +1021,7 @@ MIT License - 详见 [LICENSE](LICENSE) 文件
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2025-10-29
|
||||
**最后更新**: 2025-10-29 (v2.0.2)
|
||||
|
||||
**⚡ 用AI的力量,探索量化交易的可能性!**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user