Розробка алгоритму виконання великих ордерів (iceberg)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка алгоритму виконання великих ордерів (iceberg)
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка алгоритму виконання крупних ордерів (iceberg)

Iceberg ордер — техніка приховування істинного розміру крупної заявки. У стакані видна тільки «верхівка айсберга» — невеликий видимий обсяг. Коли він виконується, автоматично виставляється наступний слайс. Контрагенти не знають, що за цим ордером стоїть великий обсяг.

Проблема крупних ордерів

Якщо виставити limit buy 500 BTC у стакан — це миттєво стає видно всім учасникам. Market makers піднімуть ціну (front running). HFT алгоритми виявлять крупний попит та купять вище, потім продадуть вам. Ринок почне рухатися проти вас ще до виконання.

Механіка iceberg ордера

Видима частина: невеликий «display qty» (наприклад, 1 BTC з 100 BTC). Прихована частина: залишок обсягу зберігається локально, не видно в стакані. Автоматичне поповнення: при виконанні видимої частини, наступний слайс автоматично виставляється.

Варіювання розміру слайсів: випадковий розмір кожного слайса (1–3 BTC замість фіксованих 1 BTC) — алгоритмам складніше розпізнати паттерн.

Варіювання ціни: кожен новий слайс виставляється з невеликим випадковим зміщенням від target ціни.

Адаптація до ринкових умов

import random

class IcebergExecutor:
    def __init__(self, symbol, total_qty, target_price, exchange):
        self.total_qty = total_qty
        self.remaining = total_qty
        self.target_price = target_price
        self.exchange = exchange
    
    def get_slice_size(self):
        # Випадковий розмір слайса: ±30% від базового
        base_slice = self.total_qty * 0.02  # 2% від загального
        variance = base_slice * 0.3
        return base_slice + random.uniform(-variance, variance)
    
    def get_slice_price(self, side):
        # Випадкове відхилення для зменшення передбачуваності
        variance = self.target_price * 0.0001  # 0.01%
        offset = random.uniform(-variance, variance)
        return self.target_price + offset
    
    async def execute(self, side='buy'):
        while self.remaining > 0:
            slice_qty = min(self.get_slice_size(), self.remaining)
            price = self.get_slice_price(side)
            
            order = await self.exchange.create_limit_order(
                self.symbol, side, slice_qty, price
            )
            
            # Чекаємо виконання або timeout
            filled = await self.wait_for_fill(order['id'], timeout=30)
            self.remaining -= filled
            
            # Пауза між слайсами (випадкова)
            await asyncio.sleep(random.uniform(1, 5))

Детектирування та обхід детектирування

HFT системи вміють розпізнавати iceberg ордери по паттерну поновлення. Методи обходу:

  • Випадкові інтервали між виставленням слайсів
  • Використання кількох акаунтів на різних суб-акаунтах
  • Комбінування з TWAP/VWAP логікою — слайси виставляються в залежності від ринкового обсягу
  • Dark pool використання: Binance Block Trade, OTC desk для дуже крупних ордерів

Моніторинг виконання

Real-time відслідження: відсоток виконання, середня ціна fill vs target, рункове движение ціни під час виконання (proxy для ринкового впливу).

Стек: Python asyncio + CCXT, PostgreSQL для execution logs. Простий веб-інтерфейс для запуску iceberg ордерів, моніторингу прогресу та скасування при необхідності.