# 🤖 NOFX - Agentic Trading OS

[![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-AGPL--3.0-blue.svg)](LICENSE)
[![Backed by Amber.ac](https://img.shields.io/badge/Backed%20by-Amber.ac-orange.svg)](https://amber.ac)

**Языки / Languages:** [English](../../../README.md) | [中文](../zh-CN/README.md) | [Українська](../uk/README.md) | [Русский](../ru/README.md) | [日本語](../ja/README.md)

**Официальный Twitter:** [@nofx_ai](https://x.com/nofx_ai)

**📚 Документация:** [Главная](../../README.md) | [Начало работы](../../getting-started/README.md) | [Журнал изменений](../../../CHANGELOG.zh-CN.md) | [Сообщество](../../community/README.md)

---

## 📑 Содержание

- [🚀 Универсальная AI Торговая Операционная Система](#-универсальная-ai-торговая-операционная-система)
- [👥 Сообщество Разработчиков](#-сообщество-разработчиков)
- [🆕 Что Нового](#-что-нового)
- [📸 Скриншоты](#-скриншоты)
- [✨ Текущая Реализация - Криптовалютные Рынки](#-текущая-реализация---криптовалютные-рынки)
- [🔮 Дорожная Карта](#-дорожная-карта---расширение-на-универсальные-рынки)
- [🏗️ Техническая Архитектура](#️-техническая-архитектура)
- [🚀 Быстрый Старт](#-быстрый-старт)
- [📊 Функции Web-интерфейса](#-функции-web-интерфейса)
- [⚠️ Важные Предупреждения о Рисках](#️-важные-предупреждения-о-рисках)
- [🛠️ Общие Проблемы](#️-общие-проблемы)
- [🔄 Журнал Изменений](#-журнал-изменений)

---

## 🚀 Универсальная AI Торговая Операционная Система

**NOFX** - это **универсальная Agentic Trading OS**, построенная на единой архитектуре. Мы успешно замкнули цикл на криптовалютных рынках: **"Решение Multi-Agent → Единый Контроль Рисков → Исполнение с Низкой Задержкой → Бэктестинг Реальных/Бумажных Счетов"**, и сейчас расширяем этот же технологический стек на **акции, фьючерсы, опционы, форекс и все финансовые рынки**.

### 🎯 Основные Возможности

- **Универсальный Слой Данных и Бэктестинга**: Кросс-рыночное, кросс-таймфреймовое, кросс-биржевое единое представление и библиотека факторов, накапливающая переносимую "память стратегий"
- **Multi-Agent Самоигра и Самоэволюция**: Стратегии автоматически конкурируют и выбирают лучшие, непрерывно итерируясь на основе PnL на уровне счета и ограничений рисков
- **Интегрированное Исполнение и Контроль Рисков**: Маршрутизация с низкой задержкой, песочница проскальзывания/контроля рисков, лимиты на уровне счета, переключение рынков одним кликом

### 🏢 При поддержке [Amber.ac](https://amber.ac)

### 👥 Основная Команда

- **Tinkle** - [@Web3Tinkle](https://x.com/Web3Tinkle)
- **Zack** - [@0x_ZackH](https://x.com/0x_ZackH)

### 💼 Открыт Посевной Раунд Финансирования

Мы в настоящее время привлекаем **посевной раунд**.

**По вопросам инвестиций**, пишите в DM **Tinkle** или **Zack** в Twitter.

**По вопросам партнерства и сотрудничества**, пишите в DM нашего официального Twitter [@nofx_ai](https://x.com/nofx_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](https://www.asterdex.com/en/referral/fdfc0e) (получите скидку на комиссии!)
2. Посетите [Aster API Wallet](https://www.asterdex.com/en/api-wallet)
3. Подключите основной кошелек и создайте API кошелек
4. Скопируйте адрес API Signer и приватный ключ
5. Установите `"exchange": "aster"` в config.json
6. Добавьте `"aster_user"`, `"aster_signer"` и `"aster_private_key"`

---

## 📸 Скриншоты

### 🏆 Режим конкуренции - Битва AI в реальном времени
![Страница конкуренции](../../../screenshots/competition-page.png)
*Лидерборд с несколькими AI и графики сравнения производительности в реальном времени показывают битву Qwen против DeepSeek*

### 📊 Детали трейдера - Полная торговая панель
![Страница деталей](../../../screenshots/details-page.png)
*Профессиональный торговый интерфейс с кривыми капитала, живыми позициями и логами решений AI с раскрываемыми входными промптами и цепочкой рассуждений*

---

> 📘 **Примечание**: Это упрощенная русская версия README. Для получения полной технической документации, включая архитектуру системы, API-интерфейсы и расширенные конфигурации, см. [Английскую версию](../../../README.md) или [Китайскую версию](../zh-CN/README.md).

---

## ✨ Основные возможности

### 🏆 Режим конкуренции нескольких 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 логи**: Полные записи решений для пост-анализа

---

## 🔮 Дорожная Карта - Расширение на Универсальные Рынки

Миссия NOFX - стать **Универсальной AI Торговой Операционной Системой** для всех финансовых рынков.

**Видение:** Та же архитектура. Та же агентная структура. Все рынки.

**Расширение на Рынки:**
- 📈 **Фондовые Рынки**: Акции США, A-акции, Гонконгская биржа
- 📊 **Рынки Фьючерсов**: Товарные фьючерсы, индексные фьючерсы
- 🎯 **Опционная Торговля**: Опционы на акции, крипто опционы
- 💱 **Рынки Форекс**: Основные валютные пары, кросс-курсы

**Предстоящие Функции:**
- Расширенные AI возможности (GPT-4, Claude 3, Gemini Pro, гибкие шаблоны промптов)
- Новые интеграции бирж (OKX, Bybit, Lighter, EdgeX + CEX/Perp-DEX)
- Рефакторинг структуры проекта (высокая связность, низкая связанность, принципы SOLID)
- Улучшения безопасности (AES-256 шифрование API ключей, RBAC, улучшения 2FA)
- Улучшения пользовательского опыта (мобильный интерфейс, графики TradingView, система оповещений)

📖 **Для подробной дорожной карты и сроков см.:**
- **English:** [Roadmap Documentation](../../roadmap/README.md)
- **中文:** [路线图文档](../../roadmap/README.zh-CN.md)

---

## 🏗️ Техническая Архитектура

NOFX построен на современной модульной архитектуре:

- **Backend:** Go с фреймворком Gin, база данных SQLite
- **Frontend:** React 18 + TypeScript + Vite + TailwindCSS
- **Поддержка Бирж:** Binance, Hyperliquid, Aster DEX
- **Интеграция AI:** DeepSeek, Qwen и пользовательские OpenAI-совместимые API
- **Управление Состоянием:** Zustand для фронтенда, на основе базы данных для бэкенда
- **Обновления в Реальном Времени:** SWR с интервалами опроса 5-10 секунд

**Ключевые Особенности:**
- 🗄️ Конфигурация на основе базы данных (больше никакого редактирования JSON)
- 🔐 JWT аутентификация с опциональной поддержкой 2FA
- 📊 Отслеживание производительности и аналитика в реальном времени
- 🤖 Режим конкуренции Multi-AI с живым сравнением
- 🔌 RESTful API для всех настроек и мониторинга

📖 **Для подробной документации по архитектуре см.:**
- **Русский:** [Документация по Архитектуре](../../architecture/README.md)
- **中文:** [架构文档](../../architecture/README.zh-CN.md)

---

## 💰 Регистрация аккаунта 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 V2 (с пробелами)
# Если у вас установлена старая версия `docker-compose`, обновитесь до Docker Desktop или Docker 20.10+
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)
- **日本語**: [DOCKER_DEPLOY.ja.md](DOCKER_DEPLOY.ja.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.console.aliyun.com](https://dashscope.console.aliyun.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",
      "enabled": true,
      "ai_model": "deepseek",
      "exchange": "hyperliquid",
      "hyperliquid_private_key": "your_private_key_without_0x",
      "hyperliquid_wallet_addr": "your_ethereum_address",
      "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](https://www.asterdex.com/en/referral/fdfc0e) (получите скидку на комиссии!)
2. Посетите [Aster API Wallet](https://www.asterdex.com/en/api-wallet)
3. Подключите основной кошелек (MetaMask, WalletConnect и т.д.)
4. Нажмите "Создать API кошелек"
5. **Сохраните эти 3 элемента немедленно:**
   - Адрес основного кошелька (User)
   - Адрес API кошелька (Signer)
   - Приватный ключ API кошелька (⚠️ показывается только один раз!)

**Шаг 2**: Настройте `config.json` для Aster

```json
{
  "traders": [
    {
      "id": "aster_deepseek",
      "name": "Aster DeepSeek Trader",
      "enabled": true,
      "ai_model": "deepseek",
      "exchange": "aster",

      "aster_user": "0xYOUR_MAIN_WALLET_ADDRESS_HERE",
      "aster_signer": "0xYOUR_API_WALLET_SIGNER_ADDRESS_HERE",
      "aster_private_key": "your_api_wallet_private_key_without_0x_prefix",

      "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 Трейдер"` | ✅ Да |
| `enabled` | Включен ли этот трейдер<br>Установите в `false` для пропуска запуска | `true` или `false` | ✅ Да |
| `ai_model` | Используемый AI провайдер | `"deepseek"` или `"qwen"` или `"custom"` | ✅ Да |
| `exchange` | Используемая биржа | `"binance"` или `"hyperliquid"` или `"aster"` | ✅ Да |
| `binance_api_key` | Binance API ключ | `"abc123..."` | Требуется при использовании Binance |
| `binance_secret_key` | Binance Secret ключ | `"xyz789..."` | Требуется при использовании Binance |
| `hyperliquid_private_key` | Hyperliquid приватный ключ<br>⚠️ Удалите префикс `0x` | `"your_key..."` | Требуется при использовании Hyperliquid |
| `hyperliquid_wallet_addr` | Hyperliquid адрес кошелька | `"0xabc..."` | Требуется при использовании Hyperliquid |
| `hyperliquid_testnet` | Использовать тестнет | `true` или `false` | ❌ Нет (по умолчанию false) |
| `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<br>⚠️ Субаккаунты: ≤5x | `5` (по умолчанию, безопасно)<br>`50` (максимум для основного аккаунта) | ✅ Да |
| `altcoin_leverage` | Максимальное плечо для альткоинов<br>⚠️ Субаккаунты: ≤5x | `5` (по умолчанию, безопасно)<br>`20` (максимум для основного аккаунта) | ✅ Да |
| `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

---

#### ⚙️ Конфигурация плеча (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~~ *Измените `API_PORT` в файле .env* |
| `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/api/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: 🎯 Оценка новых возможностей (пул кандидатов монет)
- Получение пула монет (2 режима):
  - 🌟 **Режим по умолчанию**: BTC, ETH, SOL, BNB, XRP и т.д.
  - ⚙️ **Расширенный режим**: AI500 (топ-20) + OI Top (топ-20)
- Объединение, удаление дубликатов, фильтрация монет с низкой ликвидностью (OI < 15M USD)
- Массовое получение рыночных данных и технических индикаторов
- Подготовка полных последовательностей сырых данных для каждой монеты-кандидата

**↓**

### Шаг 5: 🧠 Комплексное решение AI
- Просмотр исторической обратной связи (процент выигрышей, коэффициент P/L, лучшие/худшие монеты)
- Получение всех данных последовательностей (свечи, индикаторы, открытый интерес)
- Анализ Chain of Thought
- Вывод решения: закрыть/открыть/удерживать/наблюдать
- Включает параметры плеча, размера, стоп-лосса, тейк-профита
- 📌 **НОВОЕ (v2.0.2)**: AI может свободно анализировать сырые последовательности, не ограничен заранее определенными индикаторами

**↓**

### Шаг 6: ⚡ Исполнение сделок
- Приоритизация: сначала закрытие, затем открытие
- Автоматическая адаптация точности (правила LOT_SIZE)
- Предотвращение накопления позиций (отклонение дублирования монета/направление)
- Автоматическая отмена всех ордеров после закрытия
- Запись времени открытия для отслеживания длительности позиции
- 📌 Отслеживание времени открытия позиции

**↓**

### Шаг 7: 📝 Запись логов
- Сохранение полной записи решения в `decision_logs/`
- Включает цепочку рассуждений, JSON решения, снимок аккаунта, результаты исполнения
- Хранение полных данных позиции (количество, плечо, время открытия/закрытия)
- Использование ключей `symbol_side` для предотвращения конфликтов лонг/шорт
- 📌 **НОВОЕ (v2.0.2)**: Предотвращение конфликтов при удержании лонг + шорт, учет количества + плеча

**↓**

**🔄 (Повтор каждые 3-5 минут)**

### Ключевые улучшения в 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.console.aliyun.com/) - Alibaba Cloud Qwen
- [TA-Lib](https://ta-lib.org/) - Библиотека технических индикаторов
- [Recharts](https://recharts.org/) - Библиотека графиков React

---

## 🔄 Журнал Изменений

📖 **Для подробной истории версий и обновлений см.:**

- **Русский:** [CHANGELOG.zh-CN.md](../../../CHANGELOG.zh-CN.md)
- **English:** [CHANGELOG.md](../../../CHANGELOG.md)

**Последняя Версия:** v3.0.0 (2025-10-30) - Масштабная Трансформация Архитектуры

**Недавние Основные Моменты:**
- 🚀 Полная переработка системы с веб-конфигурацией
- 🗄️ Архитектура на основе базы данных (SQLite)
- 🎨 Никакого редактирования JSON - вся конфигурация через веб-интерфейс
- 🔧 Комбинируйте AI модели с любой биржей
- 📊 Расширенный API слой с комплексными эндпоинтами
- 🔐 Аутентификация JWT + поддержка 2FA
- 🌐 Поддержка кастомных API (совместимых с OpenAI)
- 📈 Система шаблонов промптов с удаленной аутентификацией

**⚡ Исследуйте возможности количественной торговли с силой 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)
