Files
nofx/README.ru.md
T
tinkle-community a7d0ca8835 Docs: Add Docker one-click deployment support for all languages
Complete Docker deployment solution with beginner-friendly documentation:
**New Docker Files:**
- `Dockerfile` - Multi-stage Go backend build with health checks
- `web/Dockerfile` - Frontend build with Nginx and API proxy
- `docker-compose.yml` - Full orchestration with service dependencies
- `.dockerignore` & `web/.dockerignore` - Build optimization
- `start.sh` - Convenient management script (start/stop/logs/status)
**Comprehensive Documentation:**
- `DOCKER_DEPLOY.md` (中文) - Complete Chinese deployment guide
- `DOCKER_DEPLOY.en.md` (English) - Complete English deployment guide
  - Prerequisites & Docker installation (macOS/Windows/Linux)
  - 3-step quick start (config → start → access)
  - Service management commands
  - Advanced configuration (ports, resources, env vars)
  - Data persistence & backups
  - Comprehensive troubleshooting
  - Security recommendations
  - Production deployment (Nginx, HTTPS, Docker Swarm)
  - Monitoring & logging setup
**README Updates (All 4 Languages):**
- README.md (English)
- README.zh-CN.md (中文)
- README.uk.md (Українська)
- README.ru.md (Русский)
Added prominent "Option A: Docker One-Click Deployment" section at the
beginning of Quick Start in all languages. Clearly marked as EASIEST
method for beginners. Shows 3 simple steps with command examples and
links to detailed DOCKER_DEPLOY docs.
**Key Features:**
- One-command deployment: `./start.sh start --build`
- Auto-handles all dependencies (Go, Node.js, TA-Lib)
- Health checks for both services
- Data persistence (logs, cache, config)
- Log rotation (10MB × 3 files)
- Easy service management
- Beginner-friendly for complete newcomers
**User Benefits:**
- No need to install Go, Node.js, or TA-Lib manually
- Works on macOS, Windows, Linux
- Perfect for non-developers
- Production-ready with best practices
This makes NOFX truly accessible to beginners as requested: "真就让小白都能一键开始"
Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-10-29 18:29:49 +08:00

1046 lines
56 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.
# 🤖 NOFX - AI-управляемая система автоматической торговли фьючерсами Binance
[![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat&logo=go)](https://golang.org/)
[![React](https://img.shields.io/badge/React-18+-61DAFB?style=flat&logo=react)](https://reactjs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-3178C6?style=flat&logo=typescript)](https://www.typescriptlang.org/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
**Языки / Languages:** [English](README.md) | [中文](README.zh-CN.md) | [Українська](README.uk.md) | [Русский](README.ru.md)
---
Автоматизированная система торговли фьючерсами Binance на базе **DeepSeek/Qwen AI**, поддерживающая **конкуренцию нескольких AI-моделей в реальной торговле**, с полным анализом рынка, принятием решений AI, **механизмом самообучения** и профессиональным веб-интерфейсом мониторинга.
> ⚠️ **Предупреждение о рисках**: Эта система экспериментальная. Автоматическая торговля с AI несет значительные риски. Настоятельно рекомендуется использовать только для обучения/исследований или тестирования с небольшими суммами!
## 👥 Сообщество разработчиков
Присоединяйтесь к нашему сообществу разработчиков в Telegram для обсуждения, обмена идеями и получения поддержки:
**💬 [Сообщество разработчиков NOFX](https://t.me/nofx_dev_community)**
---
## ✨ Основные возможности
### 🏆 Режим конкуренции нескольких AI
- **Qwen против DeepSeek** - битва в реальной торговле
- Независимое управление счетами и журналами решений
- Графики сравнения производительности в реальном времени
- Статистика ROI и процента выигрышей
### 🧠 Механизм самообучения AI (НОВИНКА!)
- **Исторический анализ**: Анализирует последние 20 циклов торговли перед каждым решением
- **Умная оптимизация**:
- Определяет лучшие/худшие монеты по производительности
- Рассчитывает процент выигрышей, соотношение прибыли/убытка, среднюю прибыль
- Избегает повторения ошибок (последовательно убыточные монеты)
- Усиливает успешные стратегии (паттерны с высоким процентом выигрышей)
- **Динамическая корректировка**: AI автономно корректирует торговый стиль на основе исторической производительности
### 📊 Интеллектуальный анализ рынка
- **3-минутная свеча**: Цена в реальном времени, EMA20, MACD, RSI(7)
- **4-часовая свеча**: Долгосрочный тренд, EMA20/50, ATR, RSI(14)
- **Анализ открытого интереса**: Настроения рынка, определение денежных потоков
- **Отслеживание топ OI**: Топ-20 монет с самым быстрым ростом открытого интереса
- **Пул монет AI500**: Автоматический отбор монет с высоким рейтингом
- **Фильтр ликвидности**: Автоматическая фильтрация монет с низкой ликвидностью (<15M USD стоимости позиции)
### 🎯 Профессиональный контроль рисков
- **Лимит позиции по монете**:
- Альткоины ≤ 1.5x капитал счета
- BTC/ETH ≤ 10x капитал счета
- **Фиксированное плечо**: Альткоины 20x | BTC/ETH 50x
- **Управление маржой**: Общее использование ≤90%, AI принимает автономные решения
- **Соотношение риск/доход**: Обязательное ≥1:2 (стоп-лосс:тейк-профит)
- **Предотвращение накопления позиций**: Запрет дублирования открытия той же монеты/направления
### 🎨 Профессиональный UI
- **Профессиональный торговый интерфейс**: Визуальный дизайн в стиле Binance
- **Темная тема**: Классическая цветовая схема (Золотой #F0B90B + темный фон)
- **Данные в реальном времени**: Обновление каждые 5 секунд для счетов, позиций, графиков
- **Кривая капитала**: График исторического тренда стоимости счета (переключение USD/процент)
- **График сравнения производительности**: Сравнение ROI нескольких AI в реальном времени
- **Плавные анимации**: Плавные эффекты наведения, переходов и загрузки
### 📝 Полная запись решений
- **Цепочка рассуждений**: Полный процесс рассуждений AI (CoT)
- **Историческая производительность**: Общий процент выигрышей, средняя прибыль, соотношение прибыли/убытка
- **Последние сделки**: Детали последних 5 сделок (цена входа → цена выхода → P/L%)
- **Статистика по монетам**: Производительность по каждой монете (процент выигрышей, средний P/L)
- **JSON логи**: Полные записи решений для пост-анализа
---
## 💰 Регистрация аккаунта Binance (Экономьте на комиссиях!)
Перед использованием этой системы вам нужен аккаунт Binance Futures. **Используйте нашу реферальную ссылку для получения скидки на комиссии:**
**🎁 [Зарегистрироваться на Binance - Получить скидку](https://www.binance.com/join?ref=TINKLEVIP)**
### Шаги регистрации:
1. **Нажмите на ссылку выше** чтобы перейти на страницу регистрации Binance
2. **Завершите регистрацию** используя email/номер телефона
3. **Пройдите KYC верификацию** (требуется для торговли фьючерсами)
4. **Активируйте аккаунт Futures**:
- Перейдите на главную страницу Binance → Деривативы → USD-M Фьючерсы
- Нажмите "Открыть сейчас" для активации торговли фьючерсами
5. **Создайте API ключ**:
- Перейдите в Аккаунт → Управление API
- Создайте новый API ключ, **включите разрешение "Futures"**
- Сохраните API Key и Secret Key (необходимо для config.json)
- **Важно**: Добавьте свой IP адрес в белый список для безопасности
### Преимущества скидки:
-**Спотовая торговля**: Скидка до 30% на комиссии
-**Торговля фьючерсами**: Скидка до 30% на комиссии
-**Пожизненная**: Постоянная скидка на все сделки
---
## 🚀 Быстрый старт
### 🐳 Вариант A: Docker развертывание в один клик (ПРОЩЕ ВСЕГО - Рекомендуется для новичков!)
**⚡ Начните торговать за 3 простых шага с Docker - Не нужно ничего устанавливать!**
Docker автоматически обрабатывает все зависимости (Go, Node.js, TA-Lib) и настройку среды. Идеально для новичков!
#### Шаг 1: Подготовьте конфигурацию
```bash
# Скопируйте шаблон конфигурации
cp config.json.example config.json
# Отредактируйте и заполните ваши API ключи
nano config.json # или используйте любой редактор
```
#### Шаг 2: Запуск в один клик
```bash
# Вариант 1: Используйте удобный скрипт (Рекомендуется)
chmod +x start.sh
./start.sh start --build
# Вариант 2: Используйте docker-compose напрямую
docker-compose up -d --build
```
#### Шаг 3: Доступ к панели
Откройте в браузере: **http://localhost:3000**
**Вот и все! 🎉** Ваша AI торговая система теперь работает!
#### Управление вашей системой
```bash
./start.sh logs # Просмотреть логи
./start.sh status # Проверить статус
./start.sh stop # Остановить сервисы
./start.sh restart # Перезапустить сервисы
```
**📖 Подробное руководство по развертыванию Docker, устранению неполадок и расширенной конфигурации:**
- **Русский**: См. документацию Docker (скоро будет доступно)
- **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md)
- **中文**: 查看 [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md)
---
### 📦 Вариант B: Ручная установка (Для разработчиков)
**Примечание**: Если вы использовали развертывание Docker выше, пропустите этот раздел. Ручная установка нужна только если вы хотите изменить код или запустить без Docker.
### 1. Требования к среде
- **Go 1.21+**
- **Node.js 18+**
- **TA-Lib** библиотека (расчет технических индикаторов)
#### Установка TA-Lib
**macOS:**
```bash
brew install ta-lib
```
**Ubuntu/Debian:**
```bash
sudo apt-get install libta-lib0-dev
```
**Другие системы**: См. [Официальную документацию TA-Lib](https://github.com/markcheno/go-talib)
### 2. Клонирование проекта
```bash
git clone https://github.com/tinkle-community/nofx.git
cd nofx
```
### 3. Установка зависимостей
**Backend:**
```bash
go mod download
```
**Frontend:**
```bash
cd web
npm install
cd ..
```
### 4. Получение AI API ключей
Перед настройкой системы вам необходимо получить 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")
- Предотвращает конфликты при одновременном удержании лонг и шорт
- Хранит полные данные: количество, плечо, время открытия/закрытия
---
## ⚠️ Важные предупреждения о рисках
### Торговые риски
1. **Рынки криптовалют чрезвычайно волатильны**, решения AI не гарантируют прибыль
2. **Торговля фьючерсами использует плечо**, убытки могут превысить основную сумму
3. **Экстремальные рыночные условия** могут привести к ликвидации
4. **Комиссии за финансирование** могут повлиять на стоимость удержания
5. **Риск ликвидности**: Некоторые монеты могут испытывать проскальзывание
### Технические риски
1. **Задержка сети** может вызвать проскальзывание цены
2. **Лимиты API** могут повлиять на исполнение сделок
3. **Тайм-ауты AI API** могут вызвать сбои решений
4. **Системные ошибки** могут вызвать неожиданное поведение
### Рекомендации по использованию
**Рекомендуется**
- Используйте только средства, потерю которых вы можете позволить для тестирования
- Начните с небольших сумм (рекомендуется 100-500 USDT)
- Регулярно проверяйте состояние работы системы
- Отслеживайте изменения баланса счета
- Анализируйте логи решений AI для понимания стратегии
**Не рекомендуется**
- Инвестировать все средства или заемные деньги
- Запускать без присмотра на длительные периоды
- Слепо доверять решениям AI
- Использовать без понимания системы
- Запускать во время экстремальной волатильности рынка
---
## 🛠️ Частые проблемы
### 1. Ошибка компиляции: TA-Lib не найдена
**Решение**: Установите библиотеку TA-Lib
```bash
# macOS
brew install ta-lib
# Ubuntu
sudo apt-get install libta-lib0-dev
```
### 2. Ошибка точности: Точность превышает максимум
**Решение**: Система автоматически обрабатывает точность из Binance LOT_SIZE. Если ошибка сохраняется, проверьте сетевое подключение.
### 3. Тайм-аут AI API
**Решение**:
- Проверьте правильность API ключа
- Проверьте сетевое подключение (может потребоваться прокси)
- Тайм-аут системы установлен на 120 секунд
### 4. Frontend не может подключиться к backend
**Решение**:
- Убедитесь, что backend запущен (http://localhost:8080)
- Проверьте, не занят ли порт 8080
- Проверьте ошибки в консоли браузера
### 5. Сбой API пула монет
**Решение**:
- API пула монет опционален
- Если API не работает, система использует основные монеты по умолчанию (BTC, ETH и т.д.)
- Проверьте URL API и параметр auth в config.json
---
## 📄 Лицензия
Лицензия MIT - См. файл [LICENSE](LICENSE) для деталей
---
## 🤝 Вклад в проект
Приветствуются Issues и Pull Requests!
### Руководство по разработке
1. Сделайте Fork проекта
2. Создайте ветку функции (`git checkout -b feature/AmazingFeature`)
3. Зафиксируйте изменения (`git commit -m 'Add some AmazingFeature'`)
4. Отправьте в ветку (`git push origin feature/AmazingFeature`)
5. Откройте Pull Request
---
## 📬 Контакты
- **Twitter/X**: [@Web3Tinkle](https://x.com/Web3Tinkle)
- **GitHub Issues**: [Создать Issue](https://github.com/tinkle-community/nofx/issues)
---
## 🙏 Благодарности
- [Binance API](https://binance-docs.github.io/apidocs/futures/en/) - Binance Futures API
- [DeepSeek](https://platform.deepseek.com/) - DeepSeek AI API
- [Qwen](https://dashscope.aliyuncs.com/) - Alibaba Cloud Qwen
- [TA-Lib](https://ta-lib.org/) - Библиотека технических индикаторов
- [Recharts](https://recharts.org/) - Библиотека графиков React
---
## 🔄 История изменений
```json
{
"traders": [
{
"id": "qwen_trader",
"name": "Qwen AI Trader",
"ai_model": "qwen",
"binance_api_key": "ВАШ_BINANCE_API_KEY",
"binance_secret_key": "ВАШ_BINANCE_SECRET_KEY",
"use_qwen": true,
"qwen_key": "sk-xxxxx",
"scan_interval_minutes": 3,
"initial_balance": 1000.0
},
{
"id": "deepseek_trader",
"name": "DeepSeek AI Trader",
"ai_model": "deepseek",
"binance_api_key": "ВАШ_BINANCE_API_KEY_2",
"binance_secret_key": "ВАШ_BINANCE_SECRET_KEY_2",
"use_qwen": false,
"deepseek_key": "sk-xxxxx",
"scan_interval_minutes": 3,
"initial_balance": 1000.0
}
],
"use_default_coins": false,
"coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=ВАШ_AUTH",
"oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=ВАШ_AUTH",
"api_server_port": 8080
}
```
**Примечания к конфигурации:**
- `traders`: Настройте 1-N трейдеров (один AI или соревнование нескольких AI)
- `id`: Уникальный идентификатор трейдера (используется для директории логов)
- `ai_model`: "qwen" или "deepseek"
- `binance_api_key/secret_key`: Каждый трейдер использует независимый аккаунт Binance
- `initial_balance`: Начальный баланс (для расчета P/L%)
- `scan_interval_minutes`: Цикл принятия решений (рекомендуется 3-5 минут)
- `use_default_coins`: **true** = Использовать 8 основных монет по умолчанию | **false** = Использовать API пул монет (рекомендуется для новичков: true)
- `coin_pool_api_url`: API пула монет AI500 (опционально, игнорируется при use_default_coins=true)
- `oi_top_api_url`: API открытого интереса OI Top (опционально, если пусто, данные OI Top пропускаются)
**Список монет по умолчанию** (когда `use_default_coins: true`):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
### 5. Запуск системы
**Запуск backend (система AI торговли + API сервер):**
```bash
go build -o nofx
./nofx
```
**Запуск frontend (веб-панель):**
Откройте новый терминал:
```bash
cd web
npm run dev
```
**Доступ к интерфейсу:**
```
Веб-панель: http://localhost:3000
API сервер: http://localhost:8080
```
### 6. Остановка системы
Нажмите `Ctrl+C` в обоих терминалах
---
## ⚠️ Важные предупреждения о рисках
### Торговые риски
1. **Рынки криптовалют чрезвычайно волатильны**, решения AI не гарантируют прибыль
2. **Торговля фьючерсами использует плечо**, убытки могут превысить основную сумму
3. **Экстремальные рыночные условия** могут привести к ликвидации
4. **Комиссии за финансирование** могут повлиять на стоимость удержания
5. **Риск ликвидности**: Некоторые монеты могут испытывать проскальзывание
### Технические риски
1. **Задержка сети** может вызвать проскальзывание цены
2. **Лимиты API** могут повлиять на исполнение сделок
3. **Тайм-ауты AI API** могут вызвать сбои решений
4. **Системные ошибки** могут вызвать неожиданное поведение
### Рекомендации по использованию
**Рекомендуется**
- Используйте только средства, потерю которых вы можете позволить для тестирования
- Начните с небольших сумм (рекомендуется 100-500 USDT)
- Регулярно проверяйте состояние работы системы
- Отслеживайте изменения баланса счета
- Анализируйте логи решений AI для понимания стратегии
**Не рекомендуется**
- Инвестировать все средства или заемные деньги
- Запускать без присмотра на длительные периоды
- Слепо доверять решениям AI
- Использовать без понимания системы
- Запускать во время экстремальной волатильности рынка
---
## 🛠️ Частые проблемы
### 1. Ошибка компиляции: TA-Lib не найдена
**Решение**: Установите библиотеку TA-Lib
```bash
# macOS
brew install ta-lib
# Ubuntu
sudo apt-get install libta-lib0-dev
```
### 2. Ошибка точности: Точность превышает максимум
**Решение**: Система автоматически обрабатывает точность из Binance LOT_SIZE. Если ошибка сохраняется, проверьте сетевое подключение.
### 3. Тайм-аут AI API
**Решение**:
- Проверьте правильность API ключа
- Проверьте сетевое подключение (может потребоваться прокси)
- Тайм-аут системы установлен на 120 секунд
### 4. Frontend не может подключиться к backend
**Решение**:
- Убедитесь, что backend запущен (http://localhost:8080)
- Проверьте, не занят ли порт 8080
- Проверьте ошибки в консоли браузера
### 5. Сбой API пула монет
**Решение**:
- API пула монет опционален
- Если API не работает, система использует основные монеты по умолчанию (BTC, ETH и т.д.)
- Проверьте URL API и параметр auth в config.json
---
## 📄 Лицензия
Лицензия MIT - См. файл [LICENSE](LICENSE) для деталей
---
## 🤝 Вклад в проект
Приветствуются Issues и Pull Requests!
### Руководство по разработке
1. Сделайте Fork проекта
2. Создайте ветку функции (`git checkout -b feature/AmazingFeature`)
3. Зафиксируйте изменения (`git commit -m 'Add some AmazingFeature'`)
4. Отправьте в ветку (`git push origin feature/AmazingFeature`)
5. Откройте Pull Request
---
## 📬 Контакты
- **Twitter/X**: [@Web3Tinkle](https://x.com/Web3Tinkle)
- **GitHub Issues**: [Создать Issue](https://github.com/tinkle-community/nofx/issues)
---
## 🙏 Благодарности
- [Binance API](https://binance-docs.github.io/apidocs/futures/en/) - Binance Futures API
- [DeepSeek](https://platform.deepseek.com/) - DeepSeek AI API
- [Qwen](https://dashscope.aliyuncs.com/) - Alibaba Cloud Qwen
- [TA-Lib](https://ta-lib.org/) - Библиотека технических индикаторов
- [Recharts](https://recharts.org/) - Библиотека графиков React
---
## 🔄 История изменений
### 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)
**Исправления ошибок:**
- ✅ Исправлена логика обработки данных ComparisonChart - переход от группировки по cycle_number к timestamp
- ✅ Решена проблема замораживания графика при перезапуске backend и сбросе cycle_number
- ✅ Улучшено отображение данных графика - теперь показывает все исторические точки в хронологическом порядке
- ✅ Улучшенные отладочные логи для лучшей диагностики
### v2.0.0 (2025-10-28)
**Основные обновления:**
- ✅ Механизм самообучения AI (исторический анализ, анализ производительности)
- ✅ Режим конкуренции нескольких трейдеров (Qwen vs DeepSeek)
- ✅ UI в стиле Binance (полная имитация интерфейса Binance)
- ✅ Графики сравнения производительности (сравнение ROI в реальном времени)
- ✅ Оптимизация контроля рисков (корректировка лимита позиции по монетам)
---
**Последнее обновление**: 2025-10-29 (v2.0.2)
**⚡ Исследуйте возможности количественной торговли с силой AI!**
---
## ⭐ Star History
[![Star History Chart](https://api.star-history.com/svg?repos=tinkle-community/nofx&type=Date)](https://star-history.com/#tinkle-community/nofx&Date)