# 🤖 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` | Использовать встроенный список монет
**✨ Умное значение по умолчанию: `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 --- #### ⚠️ Важно: Поле `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)