# 🤖 NOFX - AI-управляемая система автоматической торговли фьючерсами Binance
[](https://golang.org/)
[](https://reactjs.org/)
[](https://www.typescriptlang.org/)
[](LICENSE)
**Языки / Languages:** [English](README.md) | [中文](README.zh-CN.md) | [Українська](README.uk.md) | [Русский](README.ru.md)
---
Автоматизированная система торговли криптовалютными фьючерсами на базе **DeepSeek/Qwen AI**, поддерживающая **Binance, Hyperliquid и Aster DEX биржи**, **конкуренцию нескольких AI-моделей в реальной торговле**, с полным анализом рынка, принятием решений AI, **механизмом самообучения** и профессиональным веб-интерфейсом мониторинга.
> ⚠️ **Предупреждение о рисках**: Эта система экспериментальная. Автоматическая торговля с AI несет значительные риски. Настоятельно рекомендуется использовать только для обучения/исследований или тестирования с небольшими суммами!
## 👥 Сообщество разработчиков
Присоединяйтесь к нашему сообществу разработчиков в Telegram для обсуждения, обмена идеями и получения поддержки:
**💬 [Сообщество разработчиков NOFX](https://t.me/nofx_dev_community)**
---
## 🆕 Последние обновления
### 🚀 Поддержка нескольких бирж!
NOFX теперь поддерживает **три основные биржи**: Binance, Hyperliquid и Aster DEX!
#### **Биржа Hyperliquid**
Высокопроизводительная децентрализованная биржа бессрочных фьючерсов!
**Ключевые особенности:**
- ✅ Полная поддержка торговли (лонг/шорт, плечо, стоп-лосс/тейк-профит)
- ✅ Автоматическая обработка точности (размер и цена ордера)
- ✅ Единый интерфейс трейдера (бесшовное переключение бирж)
- ✅ Поддержка мейннета и тестнета
- ✅ Не нужны API ключи - только приватный ключ Ethereum
**Почему Hyperliquid?**
- 🔥 Более низкие комиссии чем на централизованных биржах
- 🔒 Без хранения - вы контролируете свои средства
- ⚡ Быстрое исполнение с расчетом на цепи
- 🌍 Не нужна KYC
**Быстрый старт:**
1. Получите приватный ключ MetaMask (удалите префикс `0x`)
2. Установите `"exchange": "hyperliquid"` в config.json
3. Добавьте `"hyperliquid_private_key": "your_key"`
4. Начните торговать!
См. [Руководство по конфигурации](#-альтернатива-использование-биржи-hyperliquid).
#### **Биржа Aster DEX** (НОВОЕ! v2.0.2)
Децентрализованная биржа бессрочных фьючерсов, совместимая с Binance!
**Ключевые особенности:**
- ✅ API в стиле Binance (легкая миграция с Binance)
- ✅ Web3 аутентификация кошелька (безопасно и децентрализованно)
- ✅ Полная поддержка торговли с автоматической обработкой точности
- ✅ Более низкие комиссии за торговлю чем CEX
- ✅ Совместимость с EVM (Ethereum, BSC, Polygon и т.д.)
**Почему Aster?**
- 🎯 **API совместимый с Binance** - нужны минимальные изменения кода
- 🔐 **Система API кошелька** - отдельный торговый кошелек для безопасности
- 💰 **Конкурентные комиссии** - ниже чем большинство централизованных бирж
- 🌐 **Поддержка нескольких цепей** - торгуйте на вашей любимой EVM цепи
**Быстрый старт:**
1. Посетите [Aster API Wallet](https://www.asterdex.com/en/api-wallet)
2. Подключите основной кошелек и создайте API кошелек
3. Скопируйте адрес API Signer и приватный ключ
4. Установите `"exchange": "aster"` в config.json
5. Добавьте `"aster_user"`, `"aster_signer"` и `"aster_private_key"`
---
## 📸 Скриншоты
### 🏆 Режим конкуренции - Битва AI в реальном времени

*Лидерборд с несколькими AI и графики сравнения производительности в реальном времени показывают битву Qwen против DeepSeek*
### 📊 Детали трейдера - Полная торговая панель

*Профессиональный торговый интерфейс с кривыми капитала, живыми позициями и логами решений AI с раскрываемыми входными промптами и цепочкой рассуждений*
---
## ✨ Основные возможности
### 🏆 Режим конкуренции нескольких 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 капитал счета
- **Настраиваемое плечо** (v2.0.3+):
- Установите максимальное плечо в config.json
- По умолчанию: 5x для всех монет (безопасно для субаккаунтов)
- Основные аккаунты могут увеличить: Альткоины до 20x, BTC/ETH до 50x
- ⚠️ Субаккаунты Binance ограничены ≤5x плечом
- **Управление маржой**: Общее использование ≤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
}
],
"leverage": {
"btc_eth_leverage": 5,
"altcoin_leverage": 5
},
"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`)
---
#### 🔷 Альтернатива: Использование биржи Hyperliquid
**NOFX также поддерживает Hyperliquid** - децентрализованную биржу бессрочных фьючерсов. Чтобы использовать Hyperliquid вместо Binance:
**Шаг 1**: Получите приватный ключ Ethereum (для аутентификации Hyperliquid)
1. Откройте **MetaMask** (или любой Ethereum кошелек)
2. Экспортируйте приватный ключ
3. **Удалите префикс `0x`** из ключа
4. Пополните кошелек на [Hyperliquid](https://hyperliquid.xyz)
**Шаг 2**: Настройте `config.json` для Hyperliquid
```json
{
"traders": [
{
"id": "hyperliquid_trader",
"name": "My Hyperliquid Trader",
"ai_model": "deepseek",
"exchange": "hyperliquid",
"hyperliquid_private_key": "your_private_key_without_0x",
"hyperliquid_testnet": false,
"deepseek_key": "sk-xxxxxxxxxxxxx",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"use_default_coins": true,
"api_server_port": 8080
}
```
**Ключевые отличия от конфигурации Binance:**
- Замените `binance_api_key` + `binance_secret_key` на `hyperliquid_private_key`
- Добавьте поле `"exchange": "hyperliquid"`
- Установите `hyperliquid_testnet: false` для мейннета (или `true` для тестнета)
**⚠️ Предупреждение безопасности**: Никогда не делитесь приватным ключом! Используйте отдельный кошелек для торговли, а не основной.
---
#### 🔶 Альтернатива: Использование биржи Aster DEX
**NOFX также поддерживает Aster DEX** - децентрализованную биржу бессрочных фьючерсов, совместимую с Binance!
**Почему выбрать Aster?**
- 🎯 API совместимый с Binance (легкая миграция)
- 🔐 Система безопасности API кошелька
- 💰 Более низкие комиссии за торговлю
- 🌐 Поддержка нескольких цепей (ETH, BSC, Polygon)
- 🌍 Не нужна KYC
**Шаг 1**: Создайте Aster API кошелек
1. Посетите [Aster API Wallet](https://www.asterdex.com/en/api-wallet)
2. Подключите основной кошелек (MetaMask, WalletConnect и т.д.)
3. Нажмите "Создать API кошелек"
4. **Сохраните эти 3 элемента немедленно:**
- Адрес основного кошелька (User)
- Адрес API кошелька (Signer)
- Приватный ключ API кошелька (⚠️ показывается только один раз!)
**Шаг 2**: Настройте `config.json` для Aster
```json
{
"traders": [
{
"id": "aster_deepseek",
"name": "Aster DeepSeek Trader",
"ai_model": "deepseek",
"exchange": "aster",
"aster_user": "0x63DD5aCC6b1aa0f563956C0e534DD30B6dcF7C4e",
"aster_signer": "0x21cF8Ae13Bb72632562c6Fff438652Ba1a151bb0",
"aster_private_key": "4fd0a42218f3eae43a6ce26d22544e986139a01e5b34a62db53757ffca81bae1",
"deepseek_key": "sk-xxxxxxxxxxxxx",
"initial_balance": 1000.0,
"scan_interval_minutes": 3
}
],
"use_default_coins": true,
"api_server_port": 8080,
"leverage": {
"btc_eth_leverage": 5,
"altcoin_leverage": 5
}
}
```
**Ключевые поля конфигурации:**
- `"exchange": "aster"` - Установите биржу на Aster
- `aster_user` - Адрес вашего основного кошелька
- `aster_signer` - Адрес API кошелька (из Шага 1)
- `aster_private_key` - Приватный ключ API кошелька (без префикса `0x`)
**⚠️ Примечания безопасности**:
- API кошелек отдельный от основного (дополнительный уровень безопасности)
- Никогда не делитесь приватным ключом API
- Вы можете отозвать доступ API кошелька в любое время на [asterdex.com](https://www.asterdex.com/en/api-wallet)
---
#### ⚔️ Экспертный режим: Конкуренция нескольких трейдеров
Для запуска нескольких 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) | ✅ Да |
| **`leverage`** | **Конфигурация плеча (v2.0.3+)** | См. ниже | ✅ Да |
| `btc_eth_leverage` | Максимальное плечо для BTC/ETH
⚠️ Субаккаунты: ≤5x | `5` (по умолчанию, безопасно)
`50` (максимум для основного аккаунта) | ✅ Да |
| `altcoin_leverage` | Максимальное плечо для альткоинов
⚠️ Субаккаунты: ≤5x | `5` (по умолчанию, безопасно)
`20` (максимум для основного аккаунта) | ✅ Да |
| `use_default_coins` | Использовать встроенный список монет
**✨ Умное значение по умолчанию: `true`** (v2.0.2+)
Автоматически включается без API | `true` или опустить | ❌ Нет
(Опционально, авто) |
| `coin_pool_api_url` | API пользовательского пула монет
*Требуется только при `use_default_coins: false`* | `""` (пусто) | ❌ Нет |
| `oi_top_api_url` | API открытого интереса
*Опциональные дополнительные данные* | `""` (пусто) | ❌ Нет |
| `api_server_port` | Порт веб-панели | `8080` | ✅ Да |
**Монеты по умолчанию для торговли** (когда `use_default_coins: true`):
- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE
---
#### ⚙️ Конфигурация плеча (v2.0.3+)
**Что такое конфигурация плеча?**
Настройки плеча контролируют максимальное плечо, которое AI может использовать для каждой сделки. Это критически важно для управления рисками, особенно для субаккаунтов Binance, которые имеют ограничения по плечу.
**Формат конфигурации:**
```json
"leverage": {
"btc_eth_leverage": 5, // Максимальное плечо для BTC и ETH
"altcoin_leverage": 5 // Максимальное плечо для всех других монет
}
```
**⚠️ Важно: Ограничения субаккаунтов Binance**
- **Субаккаунты**: Ограничены **≤5x плечом** от Binance
- **Основные аккаунты**: Могут использовать до 20x (альткоины) или 50x (BTC/ETH)
- Если вы используете субаккаунт и установите плечо >5x, сделки будут **завершаться с ошибкой**: `Subaccounts are restricted from using leverage greater than 5x`
**Рекомендуемые настройки:**
| Тип аккаунта | Плечо BTC/ETH | Плечо альткоинов | Уровень риска |
|--------------|---------------|------------------|---------------|
| **Субаккаунт** | `5` | `5` | ✅ Безопасно (по умолчанию) |
| **Основной (Консервативно)** | `10` | `10` | 🟡 Средний |
| **Основной (Агрессивно)** | `20` | `15` | 🔴 Высокий |
| **Основной (Максимум)** | `50` | `20` | 🔴🔴 Очень высокий |
**Примеры:**
**Безопасная конфигурация (субаккаунт или консервативная):**
```json
"leverage": {
"btc_eth_leverage": 5,
"altcoin_leverage": 5
}
```
**Агрессивная конфигурация (только основной аккаунт):**
```json
"leverage": {
"btc_eth_leverage": 20,
"altcoin_leverage": 15
}
```
**Как AI использует плечо:**
- AI может выбрать **любое плечо от 1x до вашего настроенного максимума**
- Например, с `altcoin_leverage: 20`, AI может решить использовать 5x, 10x или 20x в зависимости от рыночных условий
- Конфигурация устанавливает **верхний лимит**, а не фиксированное значение
- AI учитывает волатильность, соотношение риск/доход и баланс аккаунта при выборе плеча
---
#### ⚠️ Важно: Поле `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
[](https://star-history.com/#tinkle-community/nofx&Date)