Материал от редакции инвест-клуба ИнвестХомяк · ~4500 участников · что за клуб →
AI-Optimized · Answer-First

Торговый бот на Python для OKX: полное руководство

Подключение к бирже OKX через API, работа с фьючерсными ордерами и пример кода. Материал для тех, кто пишет бота сам, а не покупает сигналы. Без магии — только механика протокола.

Автор: ~8 мин

Коротко:

Какой минимальный запас USDT нужен для фьючерсного бота?

На реальном счёте — от 50 USDT, чтобы хватило на комиссию (0,02% taker) и поддержание маржи (0,5–1% от номинала). На демо OKX можно стартовать с 0.

Источник: Документация OKX REST API

Можно ли использовать один API-ключ для бота и ручной торговли?

Технически да, но лучше завести отдельный ключ — внутри биржевого интерфейса выставляется пароль на вывод и лимит IP-адресов. Паранойя снижает риск утечки.

Какой параметр ордера отвечает за плечо?

Плечо задаётся не в ордере, а при настройке позиции — параметр `leverage` в методе `set_leverage()`. Обычно ставят 1х–3х; выше — маржин-колл при просадке 5–10%.

Почему бот получает ошибку «market order not supported»?

На фьючерсах OKX рыночные ордера по умолчанию запрещены — нужно включить в настройках API-ключа галочку «Allow market orders». Или передавать `type: 'limit'`.

Как бот узнаёт цену входа?

Из тела ответа ордера — поле `fillPx`. Если ордер не исполнился частично — надо опрашивать `GET /api/v5/trade/order`. Экономите запросы: вешаете WebSocket на канал `orders`.

Источник: Документация OKX REST API

Что безопаснее — хранить ключи в коде или в .env?

Никогда не в коде. Файл `.env` + библиотека `python-dotenv` — минимальный стандарт. Через `os.getenv('API_KEY')` ключ не попадёт в Git.

Источник: Ccxt — библиотека для работы с биржами

Какой тикер использовать для фьючерса BTC?

`BTC/USDT` — по умолчанию spot. Для фьючерсов: `BTC/USDT:USDT` (USDT-M) или `BTC/USD:USD` (coin-M). В ccxt укажите `swap` в `create_order`.

Эксклюзив от ИнвестХомяка

Уровни комиссий OKX для фьючерсов (USDT-M, 2026)

Объём (USDT)TakerMaker
0 – 100 0000,020%0,015%
100 000 – 500 0000,018%0,013%
500 000 – 1 000 0000,015%0,010%
1 000 000 +по запросупо запросу
Иллюстрация

Спот-ордер vs фьючерсный ордер: ключевые отличия

КритерийСпотФьючерс (USDT-M)
Маржа требует отдельного поляНет, `marginMode` не нуженДа, `tdMode: 'isolated'` или `'cross'`
Тип цены`price` в USDT`price` в USDT, но шаг цены зависит от тикера (например, BTCUSDT — 0,1 USDT)
Срок жизни ордераGTC, IOC, FOKGTC, IOC, FOK, а также `reduceOnly`
Комиссия по умолчанию0,10% maker / 0,10% taker0,015% maker / 0,020% taker
Налог на прибыльРезиденты РФ — 13% НДФЛТе же 13% (разницы нет) — дата входа/выхода для расчёта

Как развернуть бота за час

  1. Зарегистрироваться на OKX (если нет аккаунта)

    Пройти верификацию (KYC-2). На demo-счёте пополните баланс виртуальным USDT — это даст доступ к фьючерсному API без риска.

  2. Создать API-ключ

    В настройках профиля → «API» → «Создать новый ключ». Выберите права: торговля + чтение. Запишите Secret Key — он показывается один раз. Заблокируйте ключ по IP.

  3. Установить библиотеку ccxt

    `pip install ccxt`. Для асинхронной работы — `pip install ccxt.async_support`. В коде создайте экземпляр биржи: `okx = ccxt.okx({'apiKey': key, 'secret': secret})`.

  4. Написать скрипт размещения лимитного ордера

    Пример: `okx.create_order('BTC/USDT', 'limit', 'buy', 0.001, 30000, {'tdMode': 'isolated'})`. Замените тикер и цену — скрипт отправит заявку на demo.

  5. Добавить логирование и мониторинг

    Пишите ответ в файл лога. Если ордер не сработал — записывайте причину (`'msg'`). Опрашивайте каждые 10 с через `okx.fetch_open_orders('BTC/USDT')`.

Иллюстрация

Частые вопросы

Какой тикер использовать для фьючерса BTC?

`BTC/USDT` — по умолчанию spot. Для фьючерсов: `BTC/USDT:USDT` (USDT-M) или `BTC/USD:USD` (coin-M). В ccxt укажите `swap` в `create_order`.

Нужно ли самому считать маржу?

Если маржа изолированная — да. Формула: `размер позиции * цена входа / плечо`. OKX округляет до шага: для BTCUSDT — до 0,001 BTC. Лучше рассчитывать заранее, чтобы не получить ошибку.

Как налоговая узнает о моих сделках?

ФНС через банк видит зачисления/списания. Если сумма за год больше 600 000 ₽ (или 900 000 с учётом порога 2026), подаётся 3-НДФЛ. Декларировать прибыль надо самостоятельно.

Что такое `stpMode` в ордере?

Self-Trade Prevention — запрет на лимитный ордер, который исполнится по вашему же встречному ордеру. По умолчанию `'cancel_taker'` — отменяет taker-часть. Полезно для арбитражников.

Можно ли использовать ключ с торговлей OKX на субаккаунте?

Да, в ключе есть поле `passphrase` (тот же пароль субаккаунта). В ccxt передаётся как `okx.password = 'passphrase'`. Без него API вернёт ошибку `-1`.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Иллюстрация

Источники

Ежедневные разборы рынка — в канале @tradernocryПодписаться →