Як я створив GUI-бота для OKX з допомогою ChatGPT

Як я, без великого досвіду в розробці, створив трейдинг-бота для OKX з допомогою ChatGPT

Маю технічну вищу освіту (механіка), у трудовій є запис «інженер-програміст», а понад 10 років займаюсь ремонтом і налаштуванням комп’ютерів: установка ОС, оптимізація, видалення вірусів, чистка ноутбуків та допомога знайомим і клієнтам.

У якийсь момент мене почала цікавити тема криптовалют, бірж, автоматизації — і захотілося створити щось своє.
Колись я навіть проходив конкурс до кіберполіції (і писав про це на DOU) — то був цікавий, але зовсім інший досвід. Цей же проект став справжнім зануренням у практичну реалізацію ідеї.

Я не працюю програмістом, але вирішив спробувати створити трейдинг-бота для OKX самостійно — з допомогою ChatGPT та коду на Python. І зробив це.

Шо вдалося реалізувати з допомогою ChatGPT

КомпонентЯк реалізував
З’єднання з OKX APIЧерез REST-запити та config.ini-файл
GUI на TkinterChatGPT допомагав з побудовою таблиць, кнопок, кольорів
TP / SLРеалізував логіку збереження та автоматичного закриття
ROE-моніторингВирахування в % із урахуванням плеча, оновлення в циклі
Smart AssistantПідказки на основі стану позицій
Графік CoinGeckoЧерез requests + matplotlib, підтягується автоматично
Захист .exeУпакував PyInstaller’ом, а потім додав Themida для захисту від реверсу
Демо-режимВбудовані sandbox-ключі OKX + можливість вставити свої через config.ini

Основний функціонал:

  • Таблиця відкритих позицій з автоматичним оновленням.
  • Кольорове виділення PnL: зелений — прибуток, червоний — збиток.
  • Живий лог подій — усе, що відбувається, можна відслідковувати в реальному часі.
  • TP/SL на рівні позиції — можна встановити Take Profit і Stop Loss незалежно від ордерів.
  • Автоматичне закриття позицій при досягненні:
    • встановленого TP або SL;
    • порогового рівня ROE.
  • Зручний вибір торгової пари:
    • через випадаючий список;
    • автопідбір по першій літері;
    • підтримка ф’ючерсних SWAP-пар з OKX.

Що вийшло в результаті?

Файл .exe, який можна одразу запускати після завантаження — жодних додаткових налаштувань.

✔ Згодом доопрацьовано до повноцінного інсталятора для Windows (завдяки InnoSetup).

Інтерфейс українською або російською мовами — залежно від побажання користувача.

Особливості та «фішки»:

  • Частина логіки оптимізована на основі практичного досвіду у роботі з криптоботами.
  • Впроваджені захисні механізми від ліквідацій.
  • Код містить унікальні внутрішні рішення, що не дублюються у публічних проектах.
  • Підходить як для реального, так і для демо-режиму (через OKX sandbox API).

Призначення:

  • Для новачків — це зручний спосіб ознайомитися з крипторинком на прикладі біржі OKX.
  • Для професіоналів — бот автоматизує більшість рутинних дій, економить час.
  • Для всіх — при правильному налаштуванні бот допомагає уникати втрат унаслідок різких коливань ринку, захищає від ліквідацій.
  • 💰 І найголовніше — дозволяє фіксувати прибуток, коли це справді важливо.

Помилки і знахідки

— GPT кілька разів «плутав» структуру API OKX
— Було складно реалізувати незалежний threading з оновленням GUI
— TP/SL по позиції, а не ордеру — це окрема пригода
— Але всі ці труднощі виявились реально корисним навчанням і цікавим досвідом для подальших кроків у цьому напрямку.

Де подивитися і потестити

Бот доступний у демо-режимі:

Telegram-група: t.me/smartbot_okx у повідомленні — установочний файл, в якому прикріплені інструкція та опис бота

Або також посилання на Google Drive

В групі можна поставити запитання чи залишити фідбек.

Скрин робочого вікна бота:

Будь-хто охочий може протестувати функціонал — достатньо просто завантажити файл і встановити на свій ПК або ноутбук з Windows.

Ніяких додаткових налаштувань не потрібно — все вже готово для запуску в демо-режимі (sandbox OKX).

✅ Розширена відповідь на запитання в коментарях

🔹 OKX SmartBot — це не класичний Grid або DCA, які реалізовані в самій біржі OKX.

Він побудований на принципі позиційного входу з контролем TP, SL і ROE (Return on Equity).

🔸 Основна логіка:

— Бот відкриває 1 позицію за напрямом (long/short)

— Контролює рівень прибутку (TP), збитку (SL) та ROE

— Якщо ROE досягає заданого значення — позиція автоматично закривається

— Вся логіка йде через API OKX (sandbox або реальний режим)

🔍 У чому відмінність від вбудованих ботів OKX?

Функція / ОсобливістьOKX Grid/DCAMoonBot / 3commas / PionexOKX SmartBot
📈 СтратегіяGrid / DCAGrid, SmartTrade, DCATP/SL + ROE-контроль
⚙️ СкладністьСередняВисока (багато налаштувань)Низька (простий GUI)
🧠 Режим ROE-моніторингу❌ Немає❌ Немає✅ Є
🔄 Кілька ордерів✅ Так✅ Так✅ Так (TP/SL/Manual)
📊 Журнал PnL/ROE❌ НемаєЧастково✅ CSV-лог з деталями
🧪 DEMO-режим (sandbox)❌ Обмежено❌ Немає✅ Повна підтримка OKX DEMO
🖥 Локальний GUI для Windows❌ Немає❌ Немає✅ Є
🔒 Відкритість кодуНіЧастково (на платформі)🔒 Закрито, .exe доступне
💸 ЦінаЗалежитьПідписка $15—99/міс🆓 DEMO, BASE — пізніше
🇺🇦 Локалізація (UA/RU)❌ Немає❌ Немає✅ UA + RU

🔰 Основні переваги OKX SmartBot:

1. ✅ Простий запуск — .exe без налаштувань

  • Не потрібно реєстрацій, сервісів, підписок

2. 🧠 TP, SL і ROE в одному місці

  • Автоматично закриває позицію при досягненні мети
  • Контролює ризик через ROE — чого нема у Grid/DCA

3. 🗂 Історія торгів (PnL / ROE / TP / SL)

  • Усе логовано в .csv — легко рахувати, дивитись і будувати графіки

4. 🧪 DEMO-режим без реальних грошей

  • Sandbox OKX: ідеально для вивчення стратегії новачкам

5. 🖥 GUI на Python для Windows

  • Таблиця позицій, кнопки, лог — не командний рядок, а зручний інтерфейс

🔄 Оновлення 21.06.2025

🆕 Додано модуль CryptoGUI:
— Показ топ-100 монет із CoinGecko
— Живі графіки через yfinance
— Індикатори: ✅ SMA 20, ✅ RSI(14), ✅ SAR
— Кнопки-перемикачі для зручності
— Підтримка розгортання на весь екран

🔄 Оновлення, які ще не ввійши в дану збірку:

Скрин робочого вікна майбутнього оновлення і це вже тема для окремої статті:

SmartBot AI: як я інтегрував AI‑помічника у свій криптобот!

Кому цікава тема AI запитуйте в коментарях!

Висновки

— Не обов’язково бути крутим програмістом, щоб зробити щось реально працююче і дієве
— ChatGPT не пише все сам — але може дуже допомогти на кожному кроці
— Якщо маєш технічну базу і бажання — багато чого можливо

P.S. Якщо хтось спробує замінити demo API-ключі в config.ini на свої реальні — майте на увазі:

🧩 У демо-режимі інтерфейс може відобразити баланс з реального акаунта (з позначкою [DEMO]), але самі торгові операції виконуватись не будуть — API OKX повертатиме помилки.

✅ Для коректної роботи слід використовувати sandbox/demo API-ключі, які вже вбудовані у програму, або додати свої ключі з доступом до тестового середовища OKX.

Готовий до фідбеку та тестування. Дякую, що дочитали!

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

головне не забудьте побільше exe файлів закинути
привіт доу модерації, уже не перший пост де таке роблять. безпека ж переоцінена, це всі знають, бережіть файли на компі, хлопці та дівчата

1. Exe я робив сам, тому і знаю що там зроблено і вірусів чи злоякісного коду нема!
2. На DOU є модерація і все перевіряється та й я тут не перший день.
3. Робити загальні висновки на основі того що десь можуть обманути це смішно!
4. Exe файл можна модифікувати якщо він не захищений, мій же захищений від модифікації!

Наступна стаття буде про ще один проєкт — AI Smart Assistant:
Це ще цікавіше — на основі модуля з графіками від OKX чи будь якої іншої біржі застосовувати ai, який робить висновки читаючи дані з графіків і показників таблиці! Це виявилось ще важче реалізувати ніж сам проєкт торгового бота, але таки щось вже намальовується!

Кому цікаво — запитуйте в коментарях!
скрин прикріплений
res.cloudinary.com/...​/tqxn9bcl2atpzv2nknvq.png

Якщо бот відкриває лише одну позицію, то TP/SL виставляються в самому ордері... Що тоді робить бот? Як реалізована серверна частина?
P.S. Дайте будь-ласка посилання на сторінку з тарифами OKX на ботів :)

Дякую за хороше запитання!

На даний момент у боті TP/SL — це розумна система, яка працює через сам бот.
Вони не виставляються прямо в ордері на біржі, тобто OKX про них не знає.
🔁 Бот сам контролює поточну ціну та, за необхідності, закриває позицію по TP або SL.
Але важливо: бот має бути увімкнений, інакше позиції не закриються автоматично.
Згодом можна буде доробити чи підправити механізм в разі необхідності, але на даний момент зроблено так.
Зараз бот проходить публічне тестування — щоб кожен міг перевірити, чи логіка працює як задумано.
Тому: 🔧 Поки не завершено перевірку на практиці (з демо-даними з OKX), — жодних тарифів чи оплат немає :)

Тобто замість бота — термінал, який має буди постійно ввімкнений. Він створює ордер без TP/SL і сам контролює TP/SL?

✅ Так, бот працює як локальний термінал, який має бути постійно увімкнений.
Він відкриває позицію без TP/SL на самій біржі, а далі сам контролює її закриття — за заданими TP, SL або ROE.

Це зроблено так, бо:

Якщо використовувати TP/SL напряму на біржі — ❌ втрачається контроль ROE,
❌ неможливо гнучко оновлювати TP/SL під час руху ціни,
❌ біржа не повертає ROE по ордерах, лише по позиції, і то не завжди.
🧠 ROE не привʼязується до ордера одразу — бот лише у фоновому режимі відстежує його по позиції й приймає рішення, якщо ROE перевищує вказане в GUI значення.
🔄 ROE бот розраховує самостійно, за формулою:
ROE = (Unrealized PnL / Margin) × 100%
📊 Він бере поточний прибуток і маржу з позиції через API, і на цій основі визначає момент для закриття.

📝 Після перезапуску, аварійного завершення або імпорту відкритих позицій бот:
— завантажує відкриті позиції через API для відновлення контролю;
— фіксує логіку TP/SL заново, якщо вона була задана.

🔍 Нюанси роботи з імпортованими відкритими позиціями:

❌ Плече (leverage) не відображається в таблиці, бо біржа не повертає його при запиті відкритих позицій через API.
⚠️ Через це бот не може отримати це значення «наживо» під час імпорту.
✅ Втім, бот запам’ятовує плече локально при відкритті позиції і використовує цю інформацію для внутрішнього контролю, але в таблиці поки не відображає його, оскільки її дані оновлюються з відповіді API, де плеча немає.
❌ Сума позиції повертається біржею у вигляді кількості монет, а не в USDT.
✅ Водночас інші параметри — символ, напрямок позиції, прибуток/збиток, причина закриття, час — фіксуються і відновлюються коректно.

💡 Такий підхід дає максимальний контроль над ризиками, прибутком і журналом торгів, але вимагає, щоб бот був запущений постійно.

🔧 Оновлення проєкту — модуль CryptoGUI (червень 2025)

Продовжую вдосконалювати свій крипто-GUI. Додав новий окремий модуль — `CryptoGUI`, який реалізує:

---

🪙 **Основний функціонал**
— Підтягує **топ-100 криптовалют** із [CoinGecko API](www.coingecko.com)
— Виводить їх у вигляді таблиці (назва, ціна, % зміна за 24 год)
— Живе оновлення цін кожні **10 секунд**
— При кліку на монету — малюється **графік ціни (Close)** через `yfinance`

---

📈 **Технічний графік**
— Джерело: Yahoo Finance через `yfinance`
— Побудова: `matplotlib` → `FigureCanvasTkAgg` (вбудовано у Tkinter)
— Підтримувані інтервали: `1m`, `5m`, `1h`, `1d` тощо
— Автоматичний вибір `period` залежно від інтервалу

---

📊 **Індикатори**
— ✅ **SMA (20)** — проста ковзна середня
— ✅ **RSI (14)** — індекс відносної сили
— ✅ **SAR** — параболічний SAR (реалізація на `numpy`)

Індикатори перемикаються окремими **кнопками**, без чекбоксів:

res.cloudinary.com/...​/eguhzmttpvqpit5z4qai.png

А чим цей бот відрізняється від аналогів або тих, що пропонує сама біржа OKX?
Який його принцип роботи: Grid чи Dca?

Качати ехе с телеграм групи — цікава ідея

Підписатись на коментарі