Шукаю КОМАНДНОГО ГРАВЦЯ! хочу знайти кілька людей, з якими постійно розробляти та реалізовувати проекти в Крипті і разом заробляти. Це ТЗ є пробним, щоб ми побачили один одного і змогли зійтися/зрозуміли, що не підходимо один одному. ЯКЩО твоя МЕТА РАЗОВО заробити - тобі НЕ сюди. Шукаю постійного співробітництва.
Завдання: реалізація максимально швидкого розрахунку та відкриття ордера на біржі ByBit
Підготовка даних
Парсимо всі токени на біржі байбит (spot / futures, окремо), список оновлюється раз на 5 хвилин за кроном.
Підключаємося по сокету до кожної монети і збираємо в реальному часі тики (зміна ордер бука) і угоди.
Відправляємо це все в Вікторію Метрикс, дані до 5 хв – зберігаємо в оперативній пам'яті
Окремо для спота, окремо для ф'ючерсів збираємо актуальний ордер бук самостійно по тикам
Розрахунок даних для угоди
Розраховуємо динаміку зміни ціни по VOLUME.
Для цього беремо середню ціну для асків (для відкриття лонга) в еквіваленті обсягів:
1 000$, 5 000$ (крок у вигляді масиву задається в налаштуваннях)
Порівнюємо зі середнім значенням по угодах за останні 60 і 300 сек
Порівнюємо зі середнім значенням асків (на той же обсяг) по історії ордербуків.
На виході отримуємо масив [price_difference_60s]
1000$ - 5.86%
5000$ - 6.12%
Робимо перевірку, якщо на обсязі 1000$ дельта в ціні менше 10% (PRICE_CHANGE_DELTA_60S = 10), тоді продовжуємо логіку\покупку.
Розрахунок даних сліпажу для визначення сайзу.
Використовуючи задану константу (MAX_SLIPPAGE_PERCENT = 5) додаємо построчно аски, поки не досягнемо потрібного ліміту в >5%
Умножаємо обсяг на ціну в стакані, щоб розрахувати доступний обсяг в стакані з урахуванням граничного сліпажу.
Використовуємо змінну з конфіга (MAX_POSITION_SIZE_IN_USD = 10000) для остаточного розрахунку сайзу. Наприклад, в ордербуці в аска доступний обсяг 8500$ зі сліпажем <5%, значить це наш розмір позиції 8500$, якщо обсяг доступний >10000$, тоді наш розмір позиції буде 10 000$ (взято з MAX_POSITION_SIZE_IN_USD)
Відкриття угоди
Відправляємо на вебсокеті і через rest api лімітні ордери з ціною асків +5% до ціни (взято з MAX_SLIPPAGE_PERCENT) і параметр IOC (immediantly or cancel).
Разом з ордером встановлюється стоп лосс/тейк профіт по 33% сайзу на ріст +10%, +20%, +30%
Стоп лосс встановлюється на -10% від першого аска в стакані.
Передавати в ордер orderLinkId і "smpType": "CancelTaker" для коректної роботи скрипта при паралельному запуску на кількох серверах.
Важливо продумати систему реконнектів, ретраїв, логів і алертів
Warm_up_mode, раз на 30 секунд відправляти “фейк” ордер на біржу для підтримання активності.
Система генерації ja3 finger prints