Разработка алгоритма исполнения крупных ордеров (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 в стакан — это мгновенно становится видно всем участникам. Маркет-мейкеры поднимут цену (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
            )
            
            # Ждём исполнения или таймаут
            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 деск для очень крупных ордеров

Мониторинг исполнения

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

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