Алгоритм Depth Shot
Алгоритм Depth Shots
Обзор алгоритма
Алгоритм Depth Shots получает прибыль на внезапных скачках цены (прострелах) с последующим откатом к исходному уровню. Ключевое отличие от классического алгоритма Shots — ордер размещается не на основе цены актива, а на основе суммарного объёма заявок в биржевом стакане.
При плавном изменении объёмов в стакане ордер автоматически перемещается, чтобы оставаться вблизи заданного объёма. Когда происходит резкий скачок цены в сторону ордера, позиция открывается и быстро закрывается на откате.
Принцип работы: алгоритм предполагает, что при исполнении объёма торгов, равного заданному, цена окажется на уровне, где находился этот объём (и ордер). Это позволяет более точно торговать на парах с разрежёнными стаканами, где размер прострелов может сильно варьироваться.
Алгоритм разработан для краткосрочной торговли и не предназначен для длительного удержания позиций.
Версии алгоритма:
Depth Shots — торговля на одной конкретной торговой паре без фильтра активных рынков
Depth Shots Group — торговля на нескольких торговых парах с возможностью использования фильтра активных рынков
Как работает алгоритм
Принцип работы
Анализ объёмов в стакане
Алгоритм непрерывно отслеживает суммарный объём заявок в соответствующей части биржевого стакана (Bid для покупки, Ask для продажи).
Размещение ордера у заданного объёма
Ордер размещается на уровне цены, где находится заданный объём в стакане. Например, если вы указали объём 50 000 USDT, ордер будет размещён там, где накопленный объём заявок в стакане достигает этого значения.
Создание буфера вокруг ордера
Вокруг ордера создаётся буферная зона — коридор, внутри которого объём может колебаться без перемещения ордера. В отличие от алгоритма Shots, буфер располагается вокруг ордера, а не вокруг цены.
Автоматическое перемещение ордера
При плавном изменении объёмов ордер автоматически перемещается:
если дальняя от цены граница буфера пересекает ордер — ордер движется ближе к цене
если ближняя к цене граница буфера пересекает ордер — ордер движется дальше от цены
Исполнение ордера при простреле
Когда происходит резкий скачок цены в сторону ордера, он исполняется и открывается позиция.
Управление позицией
После открытия позиции автоматически выставляются Take Profit и Stop Loss для управления рисками.
Настройка алгоритма
Основные параметры
1. Объём котируемых активов
Искомый объём в стакане торговой пары в единицах котируемого актива.
Объём указывается в единицах второй валюты пары:
для пары ETH/USDT — объём в USDT
для пары ETH/BTC — объём в BTC
Этот объём отображается в биржевом стакане на графике любого актива при включённом отображении стакана.
⚠️ Важно: объём указывается цифрами без сокращений. Для 1 миллиона USDT укажите: 1000000
Как определить нужный объём:
Откройте биржевой стакан выбранной торговой пары
Найдите уровень цены, на котором хотите разместить ордер
Посмотрите накопленный объём до этого уровня
Укажите этот объём в настройках
Рекомендации:
для высоколиквидных пар (BTC/USDT, ETH/USDT): от 100 000 до 1 000 000 USDT
для среднеликвидных пар: от 10 000 до 100 000 USDT
для низколиквидных пар: от 1 000 до 10 000 USDT
Минимальное значение: 0
Максимальное значение: без ограничений
2. Мин/Макс расстояние
Диапазон расстояний в процентах от цены, в пределах которого алгоритм может размещать ордера.
Если искомый объём в стакане находится между минимальным и максимальным расстоянием от цены — ордер размещается. Если объём выходит за эти границы, поведение алгоритма зависит от настройки «Остановиться если вне диапазона».
Расстояние отсчитывается в соответствии с выбранным направлением:
для ордера «Купить» — ниже текущей цены
для ордера «Продать» — выше текущей цены
Пример:
Текущая цена: 50 000 USDT
Мин. расстояние: 0,5%
Макс. расстояние: 2%
Направление: «Купить»
Результат:
минимальная цена размещения: 49 000 USDT (50 000 × (1 - 0,005))
максимальная цена размещения: 49 000 USDT (50 000 × (1 - 0,02))
ордер может быть размещён только в диапазоне 49 000 - 49 750 USDT
Значение по умолчанию:
Мин. расстояние: 0,5%
Макс. расстояние: 3%
Минимальное значение: 0%
Максимальное значение: без ограничений
Система буферов
Алгоритм использует двухуровневую систему буферов, которые вместе формируют единую буферную зону вокруг ордера.
3. Буфер по объёму
Размер коридора в единицах котируемого актива, в пределах которого объём в стакане может колебаться без перемещения ордера.
При первоначальном размещении ордера искомый объём располагается в центре буфера. Размер буфера делится на 2 в каждую сторону от искомого объёма.
Пример:
Искомый объём: 50 000 USDT
Буфер по объёму: 4 000 USDT
Результат:
дальняя граница буфера: 52 000 USDT (50 000 + 2 000)
ближняя граница буфера: 48 000 USDT (50 000 - 2 000)
пока объём в стакане колеблется между 48 000 и 52 000 USDT, ордер не перемещается
Рекомендации:
для стабильных рынков: 2-5% от искомого объёма
для волатильных рынков: 5-10% от искомого объёма
для очень активных стратегий: 1-2% от искомого объёма
Минимальное значение: 0
Максимальное значение: без ограничений
4. Мин/Макс буфер
Дополнительное ограничение ширины буферной зоны в процентах от цены торговой пары.
Параметр применяется отдельно к каждой границе единой буферной зоны и корректирует её положение:
Минимальный буфер — минимальное расстояние любой границы буфера от ордера
граница не может быть ближе к ордеру, чем указанный процент
предотвращает схлопывание буфера при высокой концентрации объёма («стенка»)
ширина зоны буфера всегда будет не меньше 2 × мин. буфер
Максимальный буфер — максимальное расстояние любой границы буфера от ордера
граница не может быть дальше от ордера, чем указанный процент
предотвращает чрезмерное расширение буфера в разрежённых стаканах
Взаимодействие буферов:
Алгоритм формирует единую буферную зону по следующему принципу:
За основу берётся «Буфер по объёму» (делится пополам в каждую сторону от ордера)
Каждая граница проверяется отдельно:
если граница в пределах от Мин. до Макс. буфера → используется значение из «Буфер по объёму»
если граница выходит за пределы → автоматически устанавливается на ближайшую границу Мин./Макс. буфера
Обе границы могут корректироваться независимо друг от друга
Возможные ситуации:
обе границы взяты из «Буфер по объёму»
обе границы ограничены Мин./Макс. буфером
одна граница из «Буфер по объёму», другая ограничена Мин./Макс. буфером
Пример:
Цена: 50 000 USDT
Искомый объём: соответствует уровню 49 500 USDT (1% от цены)
Буфер по объёму: 4 000 USDT (эквивалент ~8% от цены)
Мин. буфер: 0,2%
Макс. буфер: 2%
Расчёт без учёта Мин./Макс. буфера:
дальняя граница: на уровне объёма +2 000 USDT = ~52 000 USDT (~4% от ордера) ❌ превышает Макс. буфер
ближняя граница: на уровне объёма -2 000 USDT = ~47 000 USDT (~5% от ордера) ❌ превышает Макс. буфер
Итоговый буфер:
дальняя граница: 49 500 × (1 + 0,02) = 50 490 USDT ✅ ограничена Макс. буфером 2%
ближняя граница: 49 500 × (1 - 0,02) = 48 510 USDT ✅ ограничена Макс. буфером 2%
Значение по умолчанию:
Мин. буфер: 0,1%
Макс. буфер: 1%
Минимальное значение: 0%
Максимальное значение: без ограничений
Управление движением
5. Остановиться если вне диапазона
Поведение алгоритма при выходе искомого объёма за пределы Мин./Макс. расстояния.
При отключении параметра:
Ордер остаётся активным, но фиксируется на граничных значениях:
если искомый объём ближе Мин. расстояния к цене → ордер остаётся на Мин. расстоянии
если искомый объём дальше Макс. расстояния от цены → ордер остаётся на Макс. расстоянии
при возвращении объёма в допустимые границы ордер перемещается как обычно
При включении параметра:
Ордер отменяется при выходе объёма за границы диапазона.
Повторная проверка условий происходит через заданное время. По умолчанию проверка через 60 секунд. Изменить интервал можно в разделе «Общие настройки» → «Задержка перезапуска при критической ошибке».
Применение:
отключайте для непрерывной торговли с ограничением максимального расстояния
включайте для строгого контроля условий входа
Значение по умолчанию: отключено
6. Использовать быстрое обновление стакана
Частота получения данных о состоянии биржевого стакана.
При отключении:
спотовый рынок: обновление 1 раз в 1 секунду
фьючерсный рынок: обновление 1 раз в 0,5 секунды
низкая нагрузка на API биржи
подходит для большинства стратегий
При включении:
обновление 1 раз в 0,1 секунды для всех рынков
максимально точное отслеживание изменений в стакане
значительно выше нагрузка на API биржи
быстрее расходуются API-лимиты биржи
⚠️ Важно: использование быстрого обновления на большом количестве торговых пар может привести к:
рассинхронизации данных между терминалом и биржей
исчерпанию API-лимитов
задержкам в обработке данных
Рекомендации:
включайте только для активной торговли на 1-5 парах
отключайте при работе с 10+ парами одновременно
отключайте на слабом интернет-соединении
Значение по умолчанию: отключено
7. Задержка на следование за ценой
Время в секундах между пересечением ордера дальней границей буфера и перемещением ордера ближе к цене.
Если в течение указанной задержки объём в стакане возвращается так, что ордер снова оказывается внутри буфера, ордер не перемещается. Нулевое значение означает мгновенное перемещение.
Применение:
Параметр помогает избежать лишних перемещений ордера при временных колебаниях объёмов в стакане.
Рекомендации:
для быстрых стратегий: 0-0,5 секунды
для умеренных стратегий: 0,5-2 секунды
для терпеливых стратегий: 2-5 секунд
Значение по умолчанию: 0 секунд
Минимальное значение: 0 секунд
Максимальное значение: без ограничений
8. Задержка на перемещение от цены
Время в секундах между пересечением ордера ближней границей буфера и перемещением ордера дальше от цены.
Если в течение указанной задержки объём в стакане возвращается так, что ордер снова оказывается внутри буфера, ордер не перемещается. Нулевое значение означает мгновенное перемещение.
Применение:
Параметр помогает избежать ложных срабатываний при временных изменениях объёмов, которые не являются настоящими прострелами.
Рекомендации:
устанавливайте значение больше нуля для фильтрации ложных сигналов
оптимальное значение: 0,5-2 секунды
Значение по умолчанию: 0 секунд
Минимальное значение: 0 секунд
Максимальное значение: без ограничений
Параметры ордера
1. Направление
Направление, в котором алгоритм будет размещать ордера.
Купить — ордер размещается в стакане заявок на покупку (Bid)
позиция открывается по низкой цене
закрывается по высокой цене (Take Profit)
открывается позиция Long с расчётом на откат цены вверх
Продать — ордер размещается в стакане заявок на продажу (Ask)
позиция открывается по высокой цене
закрывается по низкой цене (Take Profit)
открывается позиция Short с расчётом на откат цены вниз
2. Тип ордера
Тип ордера, размещаемого алгоритмом.
Подробнее о типах ордеров читайте в отдельной статье «Типы ордеров».
3. Прибавление к стоп-лимитному ордеру
Значение стоп-цены при использовании типа ордера «Стоп-лимит».
Подробнее читайте в статье «Типы ордеров».
4. Размер ордера
Размер размещаемого ордера в USDT.
При торговле с кредитным плечом указывайте полный размер ордера с учётом плеча.
⚠️ Важно: размер ордера должен соответствовать минимальным и максимальным требованиям биржи для выбранных торговых пар. Указанный размер будет применён ко всем торговым парам в алгоритме.
Автоматическое повышение до минимума
Кнопка справа от поля «Размер ордера» позволяет автоматически повысить размер до минимально допустимого биржей. Функция применяется только к тем торговым парам, где введённый размер меньше минимального.
Текущие минимальные размеры ордеров по торговым парам доступны на вкладке «Управление».
5. Айсберг
Функция для спот-рынков, позволяющая скрыть истинный размер ордера из стакана.
Ордер размещается и исполняется по частям, что делает невидимым полный объём заявки для других участников рынка.
6. Auto join (автоматическое объединение)
Автоматическое объединение нескольких позиций на одной торговой паре.
При объединении:
пересчитывается общая точка входа (средневзвешенная цена)
корректируются цены Take Profit и Stop Loss относительно новой точки входа
Что объединяется:
позиции, открытые всеми алгоритмами с включённым параметром «Auto join» без ключа
позиции, открытые вручную
⚠️ Рекомендация: всегда используйте ключ объединения, чтобы избежать нежелательного объединения с позициями из других алгоритмов или ручными позициями.
7. Ключ объединения
Уникальный идентификатор для объединения позиций строго по ключу.
Выберите любое название ключа и укажите его во всех алгоритмах, позиции которых нужно объединять между собой. Позиции с разными ключами объединяться не будут.
Если указать ключ только в одном алгоритме, будут объединяться только позиции, открытые этим алгоритмом.
⚠️ Важно: если оставить алгоритм с включённой функцией объединения, но без ключа, он может инициировать объединение с другими позициями, даже если те были открыты с ключом.
Подробнее читайте в статье «Режим позиций».
Управление прибылью и рисками
Take Profit (фиксация прибыли)
Автоматическое размещение ордера для фиксации прибыли.
По умолчанию Take Profit включён. При отключении позиции будут открываться без Take Profit.
В алгоритме Depth Shots доступны три режима расчёта Take Profit. Все типы отсчитываются в прибыльную сторону:
для ордера «Купить» — выше цены входа
для ордера «Продать» — ниже цены входа
⚠️ Важно: размер Take Profit должен покрывать суммарную комиссию биржи за все этапы сделки для получения прибыли.
Классический Take Profit
Процент от цены открытия позиции, на котором будет размещён ордер Take Profit.
Работает аналогично Take Profit в алгоритмах Shots/Shots Group.
Пример:
Цена входа: 50 000 USDT
Take Profit: 0,5%
Направление: «Купить»
Результат: Take Profit на уровне 50 250 USDT (50 000 × 1,005)
Применение:
для стабильных рынков с предсказуемыми прострелами
когда вы знаете точный размер профита в процентах от цены
Исторический Take Profit
Процент от расстояния, пройденного ценой за последние 2 секунды, включая прострел.
Пройденное расстояние принимается за 100%. Вы указываете процент отката от этого расстояния.
Формула:
Расстояние за 2 секунды = |Цена 2 секунды назад - Текущая цена|
Take Profit = Цена входа ± (Расстояние за 2 секунды × Процент расстояния / 100)
Пример:
Цена 2 секунды назад: 50 000 USDT
Цена входа (после прострела): 48 500 USDT
Направление: «Купить»
Пройденное расстояние: 50 000 - 48 500 = 1 500 USDT (3% от исходной цены)
Процент расстояния: 33%
Результат:
Ожидаемый откат: 1 500 × 0,33 = 495 USDT
Take Profit: 48 500 + 495 = 48 995 USDT (~1% от цены входа)
Применение:
когда размер прострелов сильно варьируется
для адаптации Take Profit под силу движения
на рынках с переменной волатильностью
Значение по умолчанию: 50% (откат на половину пройденного расстояния)
Take Profit «Глубина»
Процент только от размера самого прострела, без учёта движения за предшествующие 2 секунды.
Работает аналогично историческому, но за 100% принимается только величина прострела.
Формула:
Размер прострела = |Цена до прострела - Цена входа|
Take Profit = Цена входа ± (Размер прострела × Процент расстояния / 100)
Пример:
Цена до прострела: 49 500 USDT
Цена входа (после прострела): 48 500 USDT
Направление: «Купить»
Размер прострела: 49 500 - 48 500 = 1 000 USDT
Процент расстояния: 50%
Результат:
Ожидаемый откат: 1 000 × 0,5 = 500 USDT
Take Profit: 48 500 + 500 = 49 000 USDT
Применение:
для максимально точной привязки к размеру прострела
когда важен именно откат от прострела, а не общее движение
Значение по умолчанию: 50% (откат на половину прострела)
Сравнение типов Take Profit
Ситуация: цена плавно падала с 50 000 до 49 500 USDT за 2 секунды, затем резкий прострел до 48 500 USDT
Классический 1%
48 500 × 1,01
48 985 USDT
Фиксированный процент
Исторический 33%
48 500 + (1500 × 0,33)
48 995 USDT
Общее движение
Глубина 50%
48 500 + (1000 × 0,5)
49 000 USDT
Только прострел
Тип ордера
Тип ордера для Take Profit.
Лимитный (по умолчанию, рекомендуется)
алгоритм размещает реальный лимитный ордер на бирже
ордер виден в стакане заявок
обозначается зелёным символом «r» (real) в настройках Take Profit
работает в связке с виртуальным Stop Loss (подробнее в статье «Stop Loss»)
Маркет
ордер остаётся виртуальным до момента достижения ценой уровня Take Profit
информация об ордере хранится только в ядре MoonTrader
обозначается сиреневым символом «v» (virtual) в настройках Take Profit
работает в связке с реальным стоп-лимитным Stop Loss (подробнее в статье «Stop Loss»)
⚠️ Важно: возможность использования маркетного Take Profit зависит от допустимых конфигураций ордеров на конкретной бирже.
Айсберг
Скрытие истинного размера ордера Take Profit из стакана заявок.
Настройка применяется только к Take Profit и не зависит от настройки айсберга основного ордера.
Автопонижение цены Take Profit
Последовательная корректировка цены Take Profit в сторону уменьшения уровня прибыли.
Функция помогает закрыть позицию с меньшей прибылью, если цена не достигает изначально заданного уровня Take Profit.
⚠️ Важно: независимо от выбранного типа Take Profit (классический, исторический, глубина), шаг и порог автопонижения указываются только в процентах от цены открытия позиции.
Таймер
Время в секундах между каждым шагом понижения Take Profit.
Допускаются целые и дробные значения.
Минимальное значение: 0 секунд
Максимальное значение: без ограничений
Шаг
Размер в процентах от цены открытия позиции, на который будет уменьшаться Take Profit с частотой, указанной в параметре «Таймер».
Минимальное значение: без ограничений
Максимальное значение: без ограничений
Порог
Минимальное значение Take Profit в процентах от цены открытия позиции, до которого допустимо автопонижение.
Минимальное значение: без ограничений
Максимальное значение: без ограничений
Пример работы автопонижения
Условия:
тип Take Profit: «Глубина» 50%
размер прострела: 3% от цены (1 500 USDT)
таймер автопонижения: 1 секунда
шаг автопонижения: 0,5%
порог автопонижения: 0,2%
цена входа: 48 500 USDT
Последовательность событий:
Позиция открывается, Take Profit выставляется на 50% от прострела = 750 USDT = 49 250 USDT (1,5% от цены входа)
Через 1 секунду (если Take Profit не исполнился) → новый Take Profit на уровне 1% = 48 985 USDT
Через 1 секунду → новый Take Profit на уровне 0,5% = 48 742,5 USDT
Через 1 секунду → новый Take Profit на уровне 0,2% = 48 597 USDT (минимальный порог)
Take Profit остаётся на уровне 0,2% до закрытия позиции
⚠️ Важно: корректировка Take Profit в сторону повышения прибыли не предусмотрена.
Контакты и поддержка
Если у вас возникли вопросы по настройке алгоритма или вы хотите предложить улучшения, обратитесь в службу поддержки.
Последнее обновление