SmartBot 2.0: як я перетворив свій бот для OKX на AI-керований міні-термінал з реальними TP/SL і вибором LLM/ML моделей
У першій статті на DOU я розповідав про створення власного GUI-бота для OKX — тоді це була проста утиліта з таблицею позицій, ROE-моніторингом та базовими TP/SL.
Сьогодні все змінилося
SmartBot 2.0 — це вже не «перший проєкт», а повноцінний AI-керований міні-термінал, який включає:
- реальні TP/SL через OKX trigger-ордера
- нову оптимізовану архітектуру
- графік із ключовими індикаторами
- два AI-шари: LLM + ML
- вибір моделей штучного інтелекту просто в інтерфейсі
- оновлене головне меню торгових параметрів
Це продовження того, з чого я почав — але тепер уже на іншому рівні.
Нове ядро: оптимізована архітектура + синхронізація з API
У другій версії я повністю переписав технічний каркас SmartBot.

У SmartBot v1 значна частина логіки була всередині GUI-коду — тепер усе розділено на модулі.
Приклад нового ядра:
class SmartBotCore:
def __init__(self, api):
self.api = api
self.market_cache = {}
self.positions = {}
self.settings = {}
У GUI залишилися лише:
- інтерфейс
- відображення
- виклики функцій ядра
Що це дало:
✔ стабільність
✔ менше затримок
✔ легше розширювати
✔ точніша синхронізація з API OKX
Основні технічні зміни:
- єдиний кеш ринкових даних
- окремі потоки для графіка й AI
- чітко розділена логіка торгівлі
- повна синхронізація позицій з акаунтом
Живий графік з індикаторами — майже як у терміналі
Графік у SmartBot 2.0:
- оновлюється в реальному часі
- використовує кеш ринку
- підтримує ключові індикатори
Індикатори:
- SMA 10/20/50
- RSI 14
- Parabolic SAR
- Volume
- маркер поточної ціни
Приклад розрахунку:
df["sma20"] = df["close"].rolling(20).mean() df["rsi"] = compute_rsi(df["close"], 14) df["sar"] = PSARIndicator( high=df["high"], low=df["low"], close=df["close"] ).psar()
Графік — це не декоративний елемент: LLM отримує показники із графіка, щоб давати точні сигнали.
Реальні TP/SL через OKX trigger-ордера
У SmartBot v1 TP/SL працювали як внутрішні перевірки в Python.
У SmartBot 2.0 я перейшов на trigger-ордера OKX, тобто виконання відбувається на біржі.
Приклад:
payload = {
"instId": symbol,
"tdMode": "cross",
"ordType": "trigger",
"side": "sell",
"triggerPx": str(tp_price),
"sz": str(size),
}
resp = self.trade_api.place_algo_order(payload)
Переваги:
✔ спрацьовує навіть коли бот вимкнений
✔ немає ризику пропустити момент
✔ стабільність, бо логіка — на стороні біржі
✔ GUI лише синхронізує та відображає
Нове меню параметрів: TP, SL, TP Ratio, ROE-пороги, трейлінг
У SmartBot 2.0 я оновив верхню панель. Тепер усі важливі торгові параметри — на один клік.
🟦 1) TP (Take Profit)
Може задаватися у вигляді ціни або відсотка:
tp_price = entry * (1 + tp_ratio)
🟥 2) SL (Stop Loss)
sl_price = entry * (1 - sl_ratio)
🟩 3) TP Ratio (%) — нова фіча SmartBot 2.0
Бот сам розраховує TP відносно ціни входу.
Приклад:
TP Ratio = 0.7% → бот сам рахує цільову ціну.
ratio = float(self.tp_ratio_var.get()) / 100 tp_price = entry_price * (1 + ratio) self.place_tp_order(tp_price)
🟪 4) Trailing / Dynamic TP
new_tp = max(tp_price, last_high * (1 - trail_percent))
Подвійна AI-система: мовні LLM + локальні ML
Одна з ключових інновацій SmartBot 2.0 — двошаровий AI-двигун:
🟦 1) LLM-моделі (мовні)
Вони:
- пояснюють ринкові події
- дають рекомендації LONG/SHORT/NEUTRAL
- описують ризики
- формують сигнали
Вибір моделі прямо в GUI:

self.model_choices = [ "groq/compound", "openai/gpt-oss-safeguard-20b", "openai/gpt-oss-120b", "moonshotai/kimi-k2-instruct-0905", "meta-llama/llama-4-maverick-17b-128e-instruct", "llama-3.3-70b-versatile", ]
🟩 2) ML-моделі (локальні)
Працюють без інтернету.
Прогнозують короткостроковий рух ціни:
- Transformer
- XGBoost
- LightGBM
- Random Forest

final_signal = {
"ml_dir": ml_pred,
"ai_dir": llm_dir,
"confidence": (ml_conf * llm_conf),
}
Короткі висновки
SmartBot 2.0 — це вже не просто Python-бот.
Технічна частина
- trigger-ордера OKX
- нове ядро з потоками
- кеш ринку
- живий графік
- синхронізація позицій
AI-частина
- 6
LLM-моделей - локальний
ML-двигун - комбінований AI+ML сигнал
інтерфейс
- TP, SL, TP Ratio
- ROE-пороги
- трейлінг
- DEMO режим
Порівняння SmartBot 2.0 з іншими системами
SmartBot не конкурує з великими сервісами напряму, але функціонально перекриває багато їхніх можливостей.
Порівняльна таблиця
| Функція / Платформа | OKX Grid / DCA | 3Commas | MoonBot | SmartBot 2.0 |
|---|---|---|---|---|
| TP/SL на біржі (trigger / algo) | Частково (вбудовані ордери) | ✔ (через API) | ✔ | ✔ — використовує /api/v5/trade/order-algo, обробляє відповіді і синхронізує GUI. |
| ROE-моніторинг | ✖ | ✖ | Частково | ✔ — виводиться у таблиці/логах, реалізований у monitor_positions. |
| Live-графік + індикатори | мінімально | ✔ | ✖ | ✔ — інтегрований графік з SMA/RSI/SAR, синхронізується із парою. |
| ✖ | ✖ | ✖ | ✔ — вибір моделей + воркери (Groq + інші пріоритети), multi-model виклики. | |
| Локальні | ✖ | ✖ | Частково | ✔ — TransformerXL_Hybrid, XGBoost/LightGBM/RandomForest опції. |
| DEMO (OKX sandbox) | обмежено | ✖ | ✖ | ✔ — demo_mode / sandbox підтримка у заголовку. |
| Локальний GUI | ✖ | ✖ | ✖ | ✔ — повноцінний tkinter інтерфейс (Tables, Logs, AI panel). |
| Логи / аудит | обмежено | Залежить | Залежить | ✔ — централізоване логування + changes.log + CSV trades. |
| Конфігурація/оздоблення | Простий | Комерц. | Комерц. | ✔ — config.ini, tp_sl_store.json, caching. |
| Розширюваність (код) | Н/Д | Платформа | Платформа | ✔ — модульна (AI, ML, trade, GUI), але є місця для рефакторингу. |
| Безпека (ключі, ліцензія) | N/A | N/A | N/A | ✔ — локальна активація/HWID, але потрібно hardening для production (секрети, Themida тощо). |
| Підсумкова оцінка | Простий, на місці | Повнофункц., SaaS | Нішевий | Сильний локальний інструмент для power-user / розробника: найкраще поєднання GUI + on-exchange TP/SL + AI/ML. |
Підсумок
SmartBot 2.0:
- працює локально, без хмарних сервісів
- має унікальну комбінацію AI + ML
- використовує trigger-ордера OKX
- підтримує sandbox
- має живий графік із індикаторами
- виконує функції рівня професійних терміналів
- є безкоштовна версія (DEMO)
SmartBot 2.0 — це AI-керований термінал, а не просто ще один бот.

10 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів