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:
tinkle
2025-10-29 17:16:27 +08:00
parent a3f896d3b3
commit 6d822173fb
6 changed files with 2066 additions and 202 deletions

View File

@@ -143,13 +143,484 @@ npm install
cd ..
```
### 4. Конфігурація системи
### 4. Отримання AI API ключів
Створіть файл `config.json` (використовуйте `config.json.example` як шаблон):
Перед налаштуванням системи вам необхідно отримати AI API ключ. Виберіть одного з наступних AI провайдерів:
#### Варіант 1: DeepSeek (Рекомендується для новачків)
**Чому DeepSeek?**
- 💰 Дешевше ніж GPT-4 (приблизно 1/10 вартості)
- 🚀 Швидкий час відгуку
- 🎯 Відмінна якість торгових рішень
- 🌍 Доступний глобально без VPN
**Як отримати DeepSeek API ключ:**
1. **Відвідайте**: [https://platform.deepseek.com](https://platform.deepseek.com)
2. **Зареєструйтеся**: Використовуючи email/номер телефону
3. **Підтвердіть**: Завершіть підтвердження email/телефону
4. **Поповніть**: Додайте баланс на акаунт
- Мінімум: ~$5 USD
- Рекомендується: $20-50 USD для тестування
5. **Створіть API ключ**:
- Перейдіть у розділ API Keys
- Натисніть "Створити новий ключ"
- Скопіюйте та збережіть ключ (починається з `sk-`)
- **Важливо**: Збережіть негайно - пізніше побачити не зможете!
**Ціна**: Приблизно $0.14 за мільйон токенів (дуже дешево!)
#### Варіант 2: Qwen (Alibaba Cloud Tongyi Qianwen)
**Як отримати Qwen API ключ:**
1. **Відвідайте**: [https://dashscope.aliyuncs.com](https://dashscope.aliyuncs.com)
2. **Зареєструйтеся**: Використовуючи акаунт Alibaba Cloud
3. **Активуйте сервіс**: Активуйте DashScope сервіс
4. **Створіть API ключ**:
- Перейдіть в управління API ключами
- Створіть новий ключ
- Скопіюйте та збережіть (починається з `sk-`)
**Примітка**: Може знадобитися китайський номер телефону для реєстрації
---
### 5. Конфігурація системи
**Доступні два режими конфігурації:**
- **🌟 Режим новачка**: Один трейдер + монети за замовчуванням (Рекомендується!)
- **⚔ Експертний режим**: Змагання кількох трейдерів
#### 🌟 Конфігурація режиму новачка (Рекомендується)
**Крок 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` | Ваш Binance API ключ | Binance Акаунт Управління API |
| `YOUR_BINANCE_SECRET_KEY` | Ваш Binance Secret ключ | Те ж саме |
| `sk-xxxxxxxxxxxxx` | Ваш DeepSeek API ключ | [platform.deepseek.com](https://platform.deepseek.com) |
**Крок 4**: Налаштуйте початковий баланс (опціонально)
- `initial_balance`: Встановіть ваш фактичний баланс Binance Futures акаунта
- Використовується для розрахунку P/L відсотків
- Приклад: Якщо у вас 500 USDT, встановіть `"initial_balance": 500.0`
** Контрольний список конфігурації:**
- [ ] Binance API ключ заповнено (без лапок)
- [ ] Binance Secret ключ заповнено (без лапок)
- [ ] DeepSeek API ключ заповнено (починається з `sk-`)
- [ ] `use_default_coins` встановлено в `true` (для новачків)
- [ ] `initial_balance` відповідає балансу акаунта
- [ ] Файл збережено як `config.json` (не `.example`)
---
#### ⚔️ Експертний режим: Змагання кількох трейдерів
Для запуску кількох AI трейдерів, що змагаються один з одним:
```json
{
"traders": [
{
"id": "qwen_trader",
"name": "Qwen AI Trader",
"ai_model": "qwen",
"binance_api_key": "YOUR_BINANCE_API_KEY_1",
"binance_secret_key": "YOUR_BINANCE_SECRET_KEY_1",
"use_qwen": true,
"qwen_key": "sk-xxxxx",
"deepseek_key": "",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
},
{
"id": "deepseek_trader",
"name": "DeepSeek AI Trader",
"ai_model": "deepseek",
"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",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"use_default_coins": true,
"coin_pool_api_url": "",
"oi_top_api_url": "",
"api_server_port": 8080
}
```
**Вимоги для режиму змагання:**
- 2 окремі Binance Futures акаунти (різні API ключі)
- Обидва AI API ключі (Qwen + DeepSeek)
- Більше тестових коштів (Рекомендується: 500+ USDT на акаунт)
---
#### 📚 Пояснення полів конфігурації
| Поле | Опис | Приклад значення | Обов'язково? |
|------|------|------------------|--------------|
| `id` | Унікальний ідентифікатор для цього трейдера | `"my_trader"` | Так |
| `name` | Відображуване ім'я | `"Мій AI Трейдер"` | Так |
| `ai_model` | Використовуваний AI провайдер | `"deepseek"` або `"qwen"` | Так |
| `binance_api_key` | Binance API ключ | `"abc123..."` | Так |
| `binance_secret_key` | Binance 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` | Порт веб-панелі | `8080` | ✅ Так |
**Монети за замовчуванням для торгівлі** (коли `use_default_coins: true`):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
---
#### ⚠️ Важливо: Поле `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. **Backend** (AI торговий мозок + API)
2. **Frontend** (Веб-панель моніторингу)
---
#### **Крок 1: Запустіть Backend**
Відкрийте термінал та виконайте:
```bash
# Зберіть програму (перший запуск або після змін коду)
go build -o nofx
# Запустіть backend
./nofx
```
**Ви повинні побачити:**
```
🚀 Запуск системи автоматичної торгівлі...
✓ Трейдер [my_trader] ініціалізовано
✓ API сервер запущено на порту 8080
📊 Починається моніторинг торгівлі...
```
**⚠️ Якщо бачите помилки:**
| Повідомлення про помилку | Рішення |
|--------------------------|---------|
| `invalid API key` | Перевірте Binance API ключі в config.json |
| `TA-Lib not found` | Виконайте `brew install ta-lib` (macOS) |
| `port 8080 already in use` | Змініть `api_server_port` в config.json |
| `DeepSeek API error` | Перевірте DeepSeek API ключ та баланс |
**✅ Ознаки роботи Backend:**
- Немає повідомлень про помилки
- З'являється "Починається моніторинг торгівлі..."
- Система показує баланс акаунта
- Тримайте це вікно терміналу відкритим!
---
#### **Крок 2: Запустіть Frontend**
Відкрийте **нове вікно терміналу** (тримайте перше відкритим!), потім:
```bash
cd web
npm run dev
```
**Ви повинні побачити:**
```
VITE v5.x.x ready in xxx ms
➜ Local: http://localhost:3000/
➜ Network: use --host to expose
```
**✅ Ознаки роботи Frontend:**
- Повідомлення "Local: http://localhost:3000/"
- Немає повідомлень про помилки
- Також тримайте це вікно терміналу відкритим!
---
#### **Крок 3: Доступ до панелі**
Відкрийте у веб-браузері:
**🌐 http://localhost:3000**
**Ви побачите:**
- 📊 Баланс акаунта в реальному часі
- 📈 Позиції (якщо є)
- 🤖 AI логи рішень
- 📉 Графік капіталу
**Підказки для першого використання:**
- Перше AI рішення може зайняти 3-5 хвилин
- Початкове рішення може показати "спостереження" - це нормально
- AI повинен спочатку проаналізувати ринок
---
### 7. Моніторинг системи
**Що відстежувати:**
**Ознаки здорової системи:**
- Backend термінал показує цикли рішень кожні 3-5 хвилин
- Немає постійних повідомлень про помилки
- Оновлюється баланс акаунта
- Веб-панель автоматично оновлюється
⚠️ **Ознаки попередження:**
- Повторювані API помилки
- Немає рішень більше 10 хвилин
- Швидко падаючий баланс
**Перевірка стану системи:**
```bash
# У новому вікні терміналу
curl http://localhost:8080/health
```
Повинно повернути: `{"status":"ok"}`
---
### 8. Зупинка системи
**Витончене завершення (Рекомендується):**
1. Перейдіть до **Backend терміналу** (першого)
2. Натисніть `Ctrl+C`
3. Дочекайтеся повідомлення "Система зупинена"
4. Перейдіть до **Frontend терміналу** (другого)
5. Натисніть `Ctrl+C`
**⚠️ Важливо:**
- Завжди зупиняйте backend першим
- Дочекайтеся підтвердження перед закриттям терміналів
- Не примусово завершуйте (не закривайте термінали одразу)
---
## 📖 Процес прийняття рішень AI
Кожен цикл прийняття рішень (за замовчуванням 3 хвилини), система працює за наступним процесом:
```
┌──────────────────────────────────────────────────────────┐
│ 1. 📊 Аналіз історичної продуктивності │
│ (останні 20 циклів) │
├──────────────────────────────────────────────────────────┤
│ ✓ Розрахунок загального відсотка виграшів, середнього │
│ прибутку, співвідношення прибутку/збитку │
│ ✓ Статистика по кожній монеті (відсоток виграшів, │
│ середній P/L в USDT) │
│ ✓ Визначення найкращих/найгірших монет за │
│ продуктивністю │
│ ✓ Список деталей останніх 5 угод з точним P/L │
│ ✓ Розрахунок коефіцієнта Шарпа для оцінки ризику │
│ 📌 НОВЕ (v2.0.2): Точний P/L в USDT з врахуванням │
│ плеча │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ 2. 💰 Отримання стану акаунта │
├──────────────────────────────────────────────────────────┤
│ • Капітал акаунта, доступний баланс, нереалізований │
│ P/L │
│ • Кількість позицій, загальний P/L (реалізований + │
│ нереалізований) │
│ • Використання маржі (поточне/максимальне) │
│ • Індикатори оцінки ризику │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ 3. 🔍 Аналіз існуючих позицій (якщо є) │
├──────────────────────────────────────────────────────────┤
│ • Отримання ринкових даних для кожної позиції │
│ (3-хвилинні + 4-годинні свічки) │
│ • Розрахунок технічних індикаторів (RSI, MACD, EMA) │
│ • Відображення тривалості утримання позиції │
│ (наприклад, "утримується 2 години 15 хвилин") │
│ • AI визначає, чи потрібно закрити (тейк-профіт, │
│ стоп-лосс або коригування) │
│ 📌 НОВЕ (v2.0.2): Відстеження тривалості позиції │
│ допомагає AI вирішувати │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ 4. 🎯 Оцінка нових можливостей (пул кандидатів монет) │
├──────────────────────────────────────────────────────────┤
│ • Отримання топ-20 монет з високим рейтингом AI500 │
│ • Отримання топ-20 монет з найшвидшим зростанням OI │
│ • Об'єднання, видалення дублікатів, фільтрація монет з │
│ низькою ліквідністю (OI < 15M USD) │
│ • Масове отримання ринкових даних та технічних │
│ індикаторів │
│ • Підготовка повних послідовностей сирих даних для │
│ кожної монети-кандидата │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ 5. 🧠 Комплексне рішення AI │
├──────────────────────────────────────────────────────────┤
│ • Перегляд історичного зворотного зв'язку (відсоток │
│ виграшів, коефіцієнт P/L, найкращі/найгірші монети) │
│ • Отримання всіх даних послідовностей (свічки, │
│ індикатори, відкритий інтерес) │
│ • Аналіз 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 приймати кращі рішення про те, коли вийти
**📌 Точний розрахунок P/L:**
- Раніше: Лише відсоток (100U@5% = 1000U@5% = обидва показували "5.0")
- Тепер: Реальний прибуток в USDT = Вартість позиції × Зміна ціни × Плече
- Приклад: 1000 USDT × 5% × 20x = 1000 USDT фактичного прибутку
**📌 Розширена свобода AI:**
- AI може вільно аналізувати всі дані сирих послідовностей
- Більше не обмежений заздалегідь визначеними комбінаціями індикаторів
- Може виконувати власний аналіз трендів, розрахунок підтримки/опору
**📌 Покращене відстеження позицій:**
- Використовує ключ `symbol_side` (наприклад, "BTCUSDT_long")
- Запобігає конфліктам при одночасному утриманні лонг та шорт
- Зберігає повні дані: кількість, плече, час відкриття/закриття
---
## ⚠️ Важливі попередження про ризики
### Торговельні ризики
{
"id": "qwen_trader",
"name": "Qwen AI Trader",
@@ -338,6 +809,50 @@ sudo apt-get install libta-lib0-dev
## 🔄 Історія змін
### v2.0.2 (2025-10-29)
**Критичні виправлення помилок - Історія угод та аналіз продуктивності:**
Ця версія виправляє **критичні помилки розрахунку** в системі історичних записів угод та аналізу продуктивності, які значно впливали на статистику прибутковості.
**1. Розрахунок P/L - Виправлення великої помилки** (logger/decision_logger.go)
- **Проблема**: Раніше P/L розраховувався лише як відсоток, повністю ігноруючи розмір позиції та плече
- Приклад: Позиція 100 USDT з доходом 5% та позиція 1000 USDT з доходом 5% обидві показували `5.0` як прибуток
- Це робило аналіз продуктивності повністю неточним
- **Рішення**: Тепер розраховується фактичний прибуток в USDT
```
P/L (USDT) = Вартість позиції × Зміна ціни % × Плече
Приклад: 1000 USDT × 5% × 20x = 1000 USDT фактичного прибутку
```
- **Вплив**: Відсоток виграшів, коефіцієнт прибутку та коефіцієнт Шарпа тепер засновані на точних сумах USDT
**2. Відстеження позицій - Відсутність критичних даних**
- **Проблема**: Записи відкритих позицій зберігали лише ціну та час, пропускаючи кількість та плече
- **Рішення**: Тепер зберігає повні торгові дані:
- `quantity`: Розмір позиції (в монетах)
- `leverage`: Множник плеча (наприклад, 20x)
- Ці дані необхідні для точного розрахунку P/L
**3. Логіка ключа позиції - Конфлікт Long/Short**
- **Проблема**: Використовувався `symbol` як ключ позиції, що викликало конфлікти даних при одночасному утриманні лонгів та шортів
- Приклад: BTCUSDT лонг та BTCUSDT шорт перезаписували один одного
- **Рішення**: Змінено на формат `symbol_side` (наприклад, `BTCUSDT_long`, `BTCUSDT_short`)
- Тепер правильно розрізняє лонг та шорт позиції
**4. Розрахунок коефіцієнта Шарпа - Оптимізація коду**
- **Проблема**: Використовувався користувацький метод Ньютона для розрахунку квадратного кореня
- **Рішення**: Замінено на стандартну бібліотеку `math.Sqrt`
- Більш надійний, підтримуваний та ефективний
**Чому це оновлення важливе:**
- ✅ Історична статистика угод тепер показує **реальний прибуток/збиток в USDT** замість безглуздих відсотків
- ✅ Порівняння продуктивності між угодами з різним плечем тепер точне
- ✅ Механізм самонавчання AI отримує правильний історичний зворотний зв'язок
- ✅ Розрахунки коефіцієнта прибутку та коефіцієнта Шарпа тепер мають сенс
- ✅ Відстеження кількох позицій (лонг + шорт одночасно) тепер працює правильно
**Рекомендація**: Якщо ви запускали систему до цього оновлення, ваша історична статистика була неточною. Після оновлення до v2.0.2, нові угоди будуть розраховуватися правильно.
### v2.0.1 (2025-10-29)
**Виправлення помилок:**
@@ -357,7 +872,7 @@ sudo apt-get install libta-lib0-dev
---
**Останнє оновлення**: 2025-10-29
**Останнє оновлення**: 2025-10-29 (v2.0.2)
**⚡ Досліджуйте можливості кількісної торгівлі з силою AI!**