Complete Docker deployment solution with beginner-friendly documentation: **New Docker Files:** - `Dockerfile` - Multi-stage Go backend build with health checks - `web/Dockerfile` - Frontend build with Nginx and API proxy - `docker-compose.yml` - Full orchestration with service dependencies - `.dockerignore` & `web/.dockerignore` - Build optimization - `start.sh` - Convenient management script (start/stop/logs/status) **Comprehensive Documentation:** - `DOCKER_DEPLOY.md` (中文) - Complete Chinese deployment guide - `DOCKER_DEPLOY.en.md` (English) - Complete English deployment guide - Prerequisites & Docker installation (macOS/Windows/Linux) - 3-step quick start (config → start → access) - Service management commands - Advanced configuration (ports, resources, env vars) - Data persistence & backups - Comprehensive troubleshooting - Security recommendations - Production deployment (Nginx, HTTPS, Docker Swarm) - Monitoring & logging setup **README Updates (All 4 Languages):** - README.md (English) - README.zh-CN.md (中文) - README.uk.md (Українська) - README.ru.md (Русский) Added prominent "Option A: Docker One-Click Deployment" section at the beginning of Quick Start in all languages. Clearly marked as EASIEST method for beginners. Shows 3 simple steps with command examples and links to detailed DOCKER_DEPLOY docs. **Key Features:** - One-command deployment: `./start.sh start --build` - Auto-handles all dependencies (Go, Node.js, TA-Lib) - Health checks for both services - Data persistence (logs, cache, config) - Log rotation (10MB × 3 files) - Easy service management - Beginner-friendly for complete newcomers **User Benefits:** - No need to install Go, Node.js, or TA-Lib manually - Works on macOS, Windows, Linux - Perfect for non-developers - Production-ready with best practices This makes NOFX truly accessible to beginners as requested: "真就让小白都能一键开始" Co-Authored-By: tinkle-community <tinklefund@gmail.com>
51 KiB
🤖 NOFX - AI-керована система автоматичної торгівлі ф'ючерсами Binance
Мови / Languages: English | 中文 | Українська | Русский
Автоматизована система торгівлі ф'ючерсами Binance на базі DeepSeek/Qwen AI, що підтримує змагання кількох AI-моделей у реальній торгівлі, з повним аналізом ринку, прийняттям рішень AI, механізмом самонавчання та професійним веб-інтерфейсом моніторингу.
⚠️ Попередження про ризики: Ця система експериментальна. Автоматична торгівля з AI несе значні ризики. Наполегливо рекомендується використовувати лише для навчання/досліджень або тестування з невеликими сумами!
👥 Спільнота розробників
Приєднуйтесь до нашої спільноти розробників у Telegram для обговорення, обміну ідеями та отримання підтримки:
✨ Основні можливості
🏆 Режим змагання кількох 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 - Отримати знижку
Кроки реєстрації:
- Натисніть на посилання вище щоб перейти на сторінку реєстрації Binance
- Завершіть реєстрацію використовуючи email/номер телефону
- Пройдіть KYC верифікацію (потрібно для торгівлі ф'ючерсами)
- Активуйте акаунт Futures:
- Перейдіть на головну сторінку Binance → Деривативи → USD-M Ф'ючерси
- Натисніть "Відкрити зараз" для активації торгівлі ф'ючерсами
- Створіть API ключ:
- Перейдіть в Акаунт → Управління API
- Створіть новий API ключ, увімкніть дозвіл "Futures"
- Збережіть API Key та Secret Key (необхідно для config.json)
- Важливо: Додайте свою IP адресу до білого списку для безпеки
Переваги знижки:
- ✅ Спотова торгівля: Знижка до 30% на комісії
- ✅ Торгівля ф'ючерсами: Знижка до 30% на комісії
- ✅ Довічна: Постійна знижка на всі угоди
🚀 Швидкий старт
🐳 Варіант A: Docker розгортання в один клік (НАЙПРОСТІШЕ - Рекомендується для новачків!)
⚡ Почніть торгувати за 3 прості кроки з Docker - Не потрібно нічого встановлювати!
Docker автоматично обробляє всі залежності (Go, Node.js, TA-Lib) та налаштування середовища. Ідеально для новачків!
Крок 1: Підготуйте конфігурацію
# Скопіюйте шаблон конфігурації
cp config.json.example config.json
# Відредагуйте та заповніть ваші API ключі
nano config.json # або використайте будь-який редактор
Крок 2: Запуск в один клік
# Варіант 1: Використайте зручний скрипт (Рекомендується)
chmod +x start.sh
./start.sh start --build
# Варіант 2: Використайте docker-compose безпосередньо
docker-compose up -d --build
Крок 3: Доступ до панелі
Відкрийте у браузері: http://localhost:3000
От і все! 🎉 Ваша AI торгова система зараз працює!
Керування вашою системою
./start.sh logs # Переглянути логи
./start.sh status # Перевірити статус
./start.sh stop # Зупинити сервіси
./start.sh restart # Перезапустити сервіси
📖 Детальний посібник з розгортання Docker, усунення несправностей та розширеної конфігурації:
- Українська: Дивіться документацію Docker (скоро буде доступно)
- English: See DOCKER_DEPLOY.en.md
- 中文: 查看 DOCKER_DEPLOY.md
📦 Варіант B: Ручне встановлення (Для розробників)
Примітка: Якщо ви використали розгортання Docker вище, пропустіть цей розділ. Ручне встановлення потрібне лише якщо ви хочете змінити код або запустити без Docker.
1. Вимоги до середовища
- Go 1.21+
- Node.js 18+
- TA-Lib бібліотека (розрахунок технічних індикаторів)
Встановлення TA-Lib
macOS:
brew install ta-lib
Ubuntu/Debian:
sudo apt-get install libta-lib0-dev
Інші системи: Див. Офіційну документацію TA-Lib
2. Клонування проєкту
git clone https://github.com/tinkle-community/nofx.git
cd nofx
3. Встановлення залежностей
Backend:
go mod download
Frontend:
cd web
npm install
cd ..
4. Отримання AI API ключів
Перед налаштуванням системи вам необхідно отримати AI API ключ. Виберіть одного з наступних AI провайдерів:
Варіант 1: DeepSeek (Рекомендується для новачків)
Чому DeepSeek?
- 💰 Дешевше ніж GPT-4 (приблизно 1/10 вартості)
- 🚀 Швидкий час відгуку
- 🎯 Відмінна якість торгових рішень
- 🌍 Доступний глобально без VPN
Як отримати DeepSeek API ключ:
- Відвідайте: https://platform.deepseek.com
- Зареєструйтеся: Використовуючи email/номер телефону
- Підтвердіть: Завершіть підтвердження email/телефону
- Поповніть: Додайте баланс на акаунт
- Мінімум: ~$5 USD
- Рекомендується: $20-50 USD для тестування
- Створіть API ключ:
- Перейдіть у розділ API Keys
- Натисніть "Створити новий ключ"
- Скопіюйте та збережіть ключ (починається з
sk-) - ⚠️ Важливо: Збережіть негайно - пізніше побачити не зможете!
Ціна: Приблизно $0.14 за мільйон токенів (дуже дешево!)
Варіант 2: Qwen (Alibaba Cloud Tongyi Qianwen)
Як отримати Qwen API ключ:
- Відвідайте: https://dashscope.aliyuncs.com
- Зареєструйтеся: Використовуючи акаунт Alibaba Cloud
- Активуйте сервіс: Активуйте DashScope сервіс
- Створіть API ключ:
- Перейдіть в управління API ключами
- Створіть новий ключ
- Скопіюйте та збережіть (починається з
sk-)
Примітка: Може знадобитися китайський номер телефону для реєстрації
5. Конфігурація системи
Доступні два режими конфігурації:
- 🌟 Режим новачка: Один трейдер + монети за замовчуванням (Рекомендується!)
- ⚔️ Експертний режим: Змагання кількох трейдерів
🌟 Конфігурація режиму новачка (Рекомендується)
Крок 1: Скопіюйте та перейменуйте файл прикладу конфігурації
cp config.json.example config.json
Крок 2: Відредагуйте config.json та заповніть ваші API ключі
{
"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 |
Крок 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 трейдерів, що змагаються один з одним:
{
"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: Явне вказання (Рекомендується для ясності)
"use_default_coins": true,
"coin_pool_api_url": "",
"oi_top_api_url": ""
✅ Варіант 2: Опустити поле (Автоматично використовує монети за замовчуванням)
// Не включати "use_default_coins" взагалі
"coin_pool_api_url": "",
"oi_top_api_url": ""
⚙️ Розширене: Використовувати зовнішній API
"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 частин, які необхідно запустити окремо:
- Backend (AI торговий мозок + API)
- Frontend (Веб-панель моніторингу)
Крок 1: Запустіть Backend
Відкрийте термінал та виконайте:
# Зберіть програму (перший запуск або після змін коду)
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
Відкрийте нове вікно терміналу (тримайте перше відкритим!), потім:
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: Доступ до панелі
Відкрийте у веб-браузері:
Ви побачите:
- 📊 Баланс акаунта в реальному часі
- 📈 Позиції (якщо є)
- 🤖 AI логи рішень
- 📉 Графік капіталу
Підказки для першого використання:
- Перше AI рішення може зайняти 3-5 хвилин
- Початкове рішення може показати "спостереження" - це нормально
- AI повинен спочатку проаналізувати ринок
7. Моніторинг системи
Що відстежувати:
✅ Ознаки здорової системи:
- Backend термінал показує цикли рішень кожні 3-5 хвилин
- Немає постійних повідомлень про помилки
- Оновлюється баланс акаунта
- Веб-панель автоматично оновлюється
⚠️ Ознаки попередження:
- Повторювані API помилки
- Немає рішень більше 10 хвилин
- Швидко падаючий баланс
Перевірка стану системи:
# У новому вікні терміналу
curl http://localhost:8080/health
Повинно повернути: {"status":"ok"}
8. Зупинка системи
Витончене завершення (Рекомендується):
- Перейдіть до Backend терміналу (першого)
- Натисніть
Ctrl+C - Дочекайтеся повідомлення "Система зупинена"
- Перейдіть до Frontend терміналу (другого)
- Натисніть
Ctrl+C
⚠️ Важливо:
- Завжди зупиняйте backend першим
- Дочекайтеся підтвердження перед закриттям терміналів
- Не примусово завершуйте (не закривайте термінали одразу)
📖 Процес прийняття рішень AI
Кожен цикл прийняття рішень (за замовчуванням 3 хвилини), система працює за наступним процесом:
┌──────────────────────────────────────────────────────────┐
│ 1. 📊 Аналіз історичної продуктивності │
│ (останні 20 циклів) │
├──────────────────────────────────────────────────────────┤
│ ✓ Розрахунок загального відсотка виграшів, середнього │
│ прибутку, співвідношення прибутку/збитку │
│ ✓ Статистика по кожній монеті (відсоток виграшів, │
│ середній P/L в USDT) │
│ ✓ Визначення найкращих/найгірших монет за │
│ продуктивністю │
│ ✓ Список деталей останніх 5 угод з точним P/L │
│ ✓ Розрахунок коефіцієнта Шарпа для оцінки ризику │
│ 📌 НОВЕ (v2.0.2): Точний P/L в USDT з врахуванням │
│ плеча │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ 2. 💰 Отримання стану акаунта │
├──────────────────────────────────────────────────────────┤
│ • Капітал акаунта, доступний баланс, нереалізований │
│ P/L │
│ • Кількість позицій, загальний P/L (реалізований + │
│ нереалізований) │
│ • Використання маржі (поточне/максимальне) │
│ • Індикатори оцінки ризику │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ 3. 🔍 Аналіз існуючих позицій (якщо є) │
├──────────────────────────────────────────────────────────┤
│ • Отримання ринкових даних для кожної позиції │
│ (3-хвилинні + 4-годинні свічки) │
│ • Розрахунок технічних індикаторів (RSI, MACD, EMA) │
│ • Відображення тривалості утримання позиції │
│ (наприклад, "утримується 2 години 15 хвилин") │
│ • AI визначає, чи потрібно закрити (тейк-профіт, │
│ стоп-лосс або коригування) │
│ 📌 НОВЕ (v2.0.2): Відстеження тривалості позиції │
│ допомагає AI вирішувати │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ 4. 🎯 Оцінка нових можливостей (пул кандидатів монет) │
├──────────────────────────────────────────────────────────┤
│ • Отримання топ-20 монет з високим рейтингом AI500 │
│ • Отримання топ-20 монет з найшвидшим зростанням OI │
│ • Об'єднання, видалення дублікатів, фільтрація монет з │
│ низькою ліквідністю (OI < 15M USD) │
│ • Масове отримання ринкових даних та технічних │
│ індикаторів │
│ • Підготовка повних послідовностей сирих даних для │
│ кожної монети-кандидата │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ 5. 🧠 Комплексне рішення AI │
├──────────────────────────────────────────────────────────┤
│ • Перегляд історичного зворотного зв'язку (відсоток │
│ виграшів, коефіцієнт P/L, найкращі/найгірші монети) │
│ • Отримання всіх даних послідовностей (свічки, │
│ індикатори, відкритий інтерес) │
│ • Аналіз Chain of Thought │
│ • Вивід рішення: закрити/відкрити/утримувати/спостерігати │
│ • Включає параметри плеча, розміру, стоп-лосса, │
│ тейк-профіта │
│ 📌 НОВЕ (v2.0.2): AI може вільно аналізувати сирі │
│ послідовності, не обмежений заздалегідь визначеними │
│ індикаторами │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ 6. ⚡ Виконання угод │
├──────────────────────────────────────────────────────────┤
│ • Пріоритизація: спочатку закриття, потім відкриття │
│ • Автоматична адаптація точності (правила LOT_SIZE) │
│ • Запобігання накопиченню позицій (відхилення │
│ дублювання монета/напрямок) │
│ • Автоматична відміна всіх ордерів після закриття │
│ • Запис часу відкриття для відстеження тривалості │
│ позиції │
│ 📌 НОВЕ (v2.0.2): Відстеження часу відкриття позиції │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ 7. 📝 Запис логів │
├──────────────────────────────────────────────────────────┤
│ • Збереження повного запису рішення в decision_logs/ │
│ • Включає ланцюг міркувань, JSON рішення, знімок │
│ акаунта, результати виконання │
│ • Зберігання повних даних позиції (кількість, плече, │
│ час відкриття/закриття) │
│ • Використання ключів symbol_side для запобігання │
│ конфліктів лонг/шорт │
│ 📌 НОВЕ (v2.0.2): Запобігання конфліктів при утриманні │
│ лонг + шорт, врахування кількості + плеча │
└──────────────────────────────────────────────────────────┘
Ключові покращення в v2.0.2
📌 Відстеження тривалості позиції:
- Система тепер відстежує, як довго кожна позиція утримується
- Відображається в промпті користувача: "утримується 2 години 15 хвилин"
- Допомагає AI приймати кращі рішення про те, коли вийти
📌 Точний розрахунок P/L:
- Раніше: Лише відсоток (100U@5% = 1000U@5% = обидва показували "5.0")
- Тепер: Реальний прибуток в USDT = Вартість позиції × Зміна ціни × Плече
- Приклад: 1000 USDT × 5% × 20x = 1000 USDT фактичного прибутку
📌 Розширена свобода AI:
- AI може вільно аналізувати всі дані сирих послідовностей
- Більше не обмежений заздалегідь визначеними комбінаціями індикаторів
- Може виконувати власний аналіз трендів, розрахунок підтримки/опору
📌 Покращене відстеження позицій:
- Використовує ключ
symbol_side(наприклад, "BTCUSDT_long") - Запобігає конфліктам при одночасному утриманні лонг та шорт
- Зберігає повні дані: кількість, плече, час відкриття/закриття
⚠️ Важливі попередження про ризики
Торговельні ризики
{
"id": "qwen_trader",
"name": "Qwen AI Trader",
"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 (веб-панель):
Відкрийте новий термінал:
cd web
npm run dev
Доступ до інтерфейсу:
Веб-панель: http://localhost:3000
API сервер: http://localhost:8080
6. Зупинка системи
Натисніть Ctrl+C в обох терміналах
⚠️ Важливі попередження про ризики
Торговельні ризики
- Ринки криптовалют надзвичайно волатильні, рішення AI не гарантують прибуток
- Торгівля ф'ючерсами використовує плече, збитки можуть перевищити основну суму
- Екстремальні ринкові умови можуть призвести до ліквідації
- Комісії за фінансування можуть вплинути на вартість утримання
- Ризик ліквідності: Деякі монети можуть відчувати проковзування
Технічні ризики
- Затримка мережі може викликати проковзування ціни
- Ліміти API можуть вплинути на виконання угод
- Тайм-аути AI API можуть викликати збої рішень
- Системні помилки можуть викликати неочікувану поведінку
Рекомендації щодо використання
✅ Рекомендується
- Використовуйте лише кошти, втрату яких ви можете дозволити для тестування
- Почніть з невеликих сум (рекомендується 100-500 USDT)
- Регулярно перевіряйте стан роботи системи
- Відстежуйте зміни балансу рахунку
- Аналізуйте логи рішень AI для розуміння стратегії
❌ Не рекомендується
- Інвестувати всі кошти або позичені гроші
- Запускати без нагляду на тривалі періоди
- Сліпо довіряти рішенням AI
- Використовувати без розуміння системи
- Запускати під час екстремальної волатильності ринку
🛠️ Часті проблеми
1. Помилка компіляції: TA-Lib не знайдена
Рішення: Встановіть бібліотеку TA-Lib
# 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 для деталей
🤝 Внесок у проєкт
Вітаються Issues та Pull Requests!
Керівництво з розробки
- Зробіть Fork проєкту
- Створіть гілку функції (
git checkout -b feature/AmazingFeature) - Зафіксуйте зміни (
git commit -m 'Add some AmazingFeature') - Надішліть до гілки (
git push origin feature/AmazingFeature) - Відкрийте Pull Request
📬 Контакти
- Twitter/X: @Web3Tinkle
- GitHub Issues: Створити Issue
🙏 Подяки
- Binance API - Binance Futures API
- DeepSeek - DeepSeek AI API
- Qwen - Alibaba Cloud Qwen
- TA-Lib - Бібліотека технічних індикаторів
- Recharts - Бібліотека графіків React
🔄 Історія змін
v2.0.2 (2025-10-29)
Критичні виправлення помилок - Історія угод та аналіз продуктивності:
Ця версія виправляє критичні помилки розрахунку в системі історичних записів угод та аналізу продуктивності, які значно впливали на статистику прибутковості.
1. Розрахунок P/L - Виправлення великої помилки (logger/decision_logger.go)
- Проблема: Раніше P/L розраховувався лише як відсоток, повністю ігноруючи розмір позиції та плече
- Приклад: Позиція 100 USDT з доходом 5% та позиція 1000 USDT з доходом 5% обидві показували
5.0як прибуток - Це робило аналіз продуктивності повністю неточним
- Приклад: Позиція 100 USDT з доходом 5% та позиція 1000 USDT з доходом 5% обидві показували
- Рішення: Тепер розраховується фактичний прибуток в 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!