SmartBot 2.0: як я перетворив свій бот для OKX на AI-керований міні-термінал з реальними TP/SL і вибором LLM/ML моделей

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

У першій статті на 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-частина

  • LLM-моделей
  • локальний ML-двигун
  • комбінований AI+ML сигнал

інтерфейс

  • TP, SL, TP Ratio
  • ROE-пороги
  • трейлінг
  • DEMO режим

Порівняння SmartBot 2.0 з іншими системами

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

Порівняльна таблиця

Таблиця: порівняння SmartBot 2.0 з існуючими системами (технічна оцінка)
Функція / ПлатформаOKX Grid / DCA3CommasMoonBot SmartBot 2.0
TP/SL на біржі (trigger / algo)Частково (вбудовані ордери)✔ (через API)✔ — використовує /api/v5/trade/order-algo, обробляє відповіді і синхронізує GUI.
ROE-моніторингЧастково✔ — виводиться у таблиці/логах, реалізований у monitor_positions.
Live-графік + індикаторимінімально✔ — інтегрований графік з SMA/RSI/SAR, синхронізується із парою.
LLM-підтримка (AI-асистент)✔ — вибір моделей + воркери (Groq + інші пріоритети), multi-model виклики.
Локальні ML-моделі (Transformer / XGBoost)Частково✔ — 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/AN/AN/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-керований термінал, а не просто ще один бот.

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному2
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

Можна запхати якийсь chatgpt сюда, і воно веселіше може поїхати.

Завжди можна спарсити будь яку модель, для тестів наприклад. ^^

Там вже є openai/gpt-oss-120b, але, звісно, можна додати ще якийсь «ChatGPT 5», Gemini 3 або Claude — з часом додам, якщо буде потреба. Хоча gpt-oss-120b теж досить потужна модель: принцип аналізу у них схожий, і чим більше контексту модель може приймати, тим кращий виходить аналіз.

З тих, що зараз є, moonshotai/kimi-k2-instruct-0905 і openai/gpt-oss-120b приймають найбільше контексту. Пізніше планую підключити OpenRouter, щоб через нього додавати нові моделі, якщо ці не справлятимуться.

Просто нюанс: окремий ChatGPT як сервіс від OpenAI і моделі, які даються по підписці на API — це не одне й те саме!

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

Автор молодчик, для портфоліо проєкт пушка.
Але я б побоялась користуватися.

Так звісно, можна апіхам врізати можливості. Але ніхто не заважає в якийсь момент, коли набереться достатня кількість користувачів, просто запампити якусь неліквідну монетку, і об них закритись.
Таких прецедентів було вже і не раз.

Ну і шкода, що скоріше за все навіть без цього, воно буде торгувати в мінус( Особливо зараз, з цими маніпуляціями.

Але як задумка гарна.
Щоб воно було можливо прибуткове, треба Rust, і на расті писати HFT бота. Зараз це актуально.
Тільки за допомогою Аі коректувати стратегії на льоту. І на спреді заробляти, як маркет мейкер.

А взагалі вже років 5 мабуть, якщо не більше, як маркет мейкери навчають свої моделі, будують свої датацентри, і вкладають млрд $, щоб брити рітейл. Я не знаю, чи є сенс з ними тягатись на такій дистанції.
Я рік тому писала подібну штуку, вдалось на дистанції вийти в профіт, АЛЕ, комісія з’їдала весь профіт -_- я довго боролась, але закінчилось це нічим. Якби дали нижчу комісію, можливо був би профіт. Але там не дураки сидять теж.

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

Оскільки контексту багато, довелось створити ансамбль моделей — кожна з них зчитує дані по-своєму.

Щодо маркет мейкерів — їхні продукти створені так, щоб вони заробляли. Вся їхня логіка побудована на тому, що потенційний клієнт не повинен залишитися у виграші. Це велике «казино».

Саме тому я створив цей продукт більше для себе, ніж для реклами чи продажу. Але я поділився досвідом, щоб люди бачили, що реально можна зробити, щоб не залежати від маркет мейкерів. Далі кожен може додумати сам, як використовувати ці знання.

Вчергове оновив бот — додав ансамбль моделей — прогноз на основі збірки прогнозів від всіх llm моделей і вивід одного результату: скрин прикріплений.

Загалом, на основі власного досвіду, можу сказати так:
Крипта не для слабодухих, тут є все: підйоми та падіння, ризик і стрес і, головне — ніхто не дає гарантій! Реальних гарантій прибутку тут нема — хто їх дає — обманює або маніпулює ... а таких зараз багато!

В крипті головне обрана стратегія — короткострок або довгострок! І вже далі визначається як рухатись в обраному напрямку!

Яущо довгострок — вкладувати можна лиш в токенізоване золото, якщо короткострок — треба розробляти власні стратегії і опиратись на набутий досвід ...

res.cloudinary.com/...​/ogucgkwb9×8q0onxxwob.png

Іакщо взіати дві останні ціни двох моїх спрацювавших ордерів можна встановити куди іде ціна. цОст > цПередОст > цПередПередОст тут маємо начебто рух вгору. Але іак довго вона (ціна) триматиме цеі курс? Тому рішенніа що робити з останньою ціною трохи ризиковане, навіть іакщо вона більша за всі інші. Що роблю у цім івенті? Чекаю доки ціна піде ще вище. Іакщо зустрічаю зменшенніа то тоді вже продаю.

Прогориш. Кожен StopLoss буде стрілою у серце твого депозиту. Прогориш через те, що свій депозит витратиш на стоп-лоси.

Якщо логіка не працює тоді так — будуть одні стоп-лоси)))
Але там багато підстраховок є:
— і індекси фондових ринків і підтримка новинного фону + два типи прогнозів і впевненість і точність моделі ... розрахунок фіч і індикаторів при виводі прогнозу ...
Хотілось би щоб були охочі потестити ... але на демці програми в телеграмі логіка вже давно застаіла, нажаль ...
Колись якшо логіка запрацює як треба тоді можливо про це і буде слідуюбчий пост, поки що тренд вгадує а по свічках треба працювати!

Я думаю що жоден індікатор не може запропонувати головне — точний момент часу, коли треба ставити ордер. Через це стоп лоси реальна загроза і стандартна формула 3 стоплоса 1тейк перетвориться на більшу кількість спрацювавших стоп лосів, а це вже не покриє отриманий профіт. Я використовую схему частих продаж і не менш частих покупок невеличкими точіше мінімальними об’сягами. Писав багато про це. Можеш пошукать у історії моїх коментарів.

Відскоки від меж спротиву і відповідні підписи там є на графіках і були звукові сповіщення але я їх відключив, у мене модель розбиває ордери на частини, по типу DCA
за точками входу я не гонюсюсь, не ставив собюі таких задач, бот їх бачить і враховує, але у мене не автомат і сам ордери не розміщує
Моя ціль — бачити напрямок руху по кількох свічках і тренд на кілька днів наперед, друга логіка факутично реалізована в по мірі можливостей наявних моделей вижато скільки можна ... перша — в процесі оптимізації, бо була трьох рівнева але видавала дуже часто «холд», тому переробив на двохрівневу і тестую зараз

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