# Алгоритм Vector

Алгоритм обнаруживает зоны с аномальной рыночной активностью — моменты, когда за короткое время резко увеличиваются диапазоны цен. Алгоритм даёт возможность быстро входить в такие движения и фиксировать прибыль на кратковременных импульсах рынка.

Алгоритм анализирует рынок небольшими временными интервалами (фреймами), отслеживает изменение цены и активность торгов, а затем автоматически размещает ордера при выполнении заданных условий.

***

### Как работает алгоритм

#### Принцип работы

1. **Разбивка времени на фреймы**

   Временной интервал (Time Frame) делится на небольшие отрезки — фреймы (Frame Size). Например, если Time Frame = 2 секунды, а Frame Size = 0,2 секунды, то алгоритму необходимо 10 фреймов для анализа.
2. **Сбор данных в каждом фрейме**

   В каждом фрейме алгоритм анализирует:

   * минимальную и максимальную цену трейдов в периоде;
   * количество трейдов;
   * объёмы трейдов.
3. **Проверка условий для входа**

   Алгоритм формирует сигнал на вход, если:

   * размер спреда (разница между максимальной и минимальной ценой) в каждом фрейме превышает заданный процент (Min Spread Size);
   * направление движения верхней и нижней границы спреда соответствует заданным диапазонам (Upper/Lower Border Range) (если включено);
   * в каждом фрейме количество трейдов превышает минимальное значение (Min Trades Per Frame);
   * объём торгов в каждом фрейме превышает минимум (Min Quote Asset Volume).
4. **Размещение ордеров**

   При срабатывании триггера алгоритм размещает ордера:

   * для покупки (Buy): на расстоянии Order Distance от нижней границы спреда;
   * для продажи (Sell): на расстоянии Order Distance от верхней границы спреда;
   * с частотой, заданной параметром Order Frequency;
   * до тех пор, пока не достигнут Max Orders.
5. **Управление позицией**

   После исполнения ордера активируется Take Profit:

   * для покупки: отсчитывается от нижней границы спреда текущего фрейма;
   * для продажи: отсчитывается от верхней границы спреда текущего фрейма.
   * При этом значение Тейк Профит указывается в процентах от найденного расстояния (мин/макс), а не в процентах цены

***

### Настройка алгоритма

#### Основные параметры

#### 1. Frame Size (размер фрейма)

Размер микро-интервала в секундах, на которые разбивается Time Frame.

Чем меньше Frame Size, тем точнее анализ, но выше требования к частоте данных. Это один из двух ключевых параметров, определяющий принцип алгоритма.

**Значение по умолчанию:** 0,2 секунды

**Минимальное значение:** 0,001 секунды

**Максимальное значение:** без ограничений

#### 2. Time Frame (временной интервал)

Длительность временного окна для анализа в секундах.

Это суммарный период, за который алгоритм анализирует рыночную активность. Это второй ключевой параметр, определяющий принцип алгоритма. Задав очень короткие промежутки - алгоритм будет искать только прострелы, повторяющиеся так часто, на сколько отрезков поделен Time Frame. Задав более длинные промежутки - алгоритм будет искать рынки которые на протяжении указанного времени находятся в состоянии волатильности.

**Значение по умолчанию:** 1 секунда

**Минимальное значение:** 0,001 секунды

**Максимальное значение:** без ограничений

***

#### 3. Min Spread Size (минимальный размер спреда)

Минимальный размер диапазона цены в процентах.

Спред — это разница между максимальной и минимальной ценой во фрейме. Алгоритм создаёт сигнал, только если спред в каждом фрейме превышает указанное значение.

**Значение по умолчанию:** 0,5%

**Минимальное значение:** 0%

**Максимальное значение:** без ограничений

***

#### 4. Upper Border Range (диапазон верхней границы)

Фильтр отслеживает, как изменяется верхняя граница спреда от фрейма к фрейму.

Алгоритм измеряет изменение верхней границы между соседними фреймами в процентах от спреда последнего фрейма. Укажите минимальное и максимальное значение диапазона. Все изменения должны попасть в заданный диапазон — если хотя бы одно выходит за границы, условие не выполнено.

**Как это работает:**

Изменение = (Верхняя граница следующего фрейма - Верхняя граница предыдущего фрейма) / Спред последнего фрейма × 100%

**Пример:** 4 фрейма с верхними границами 100, 101, 102, 105. Спред последнего фрейма = 5.

Изменения: (101-100)/5 × 100 = +20%, (102-101)/5 × 100 = +20%, (105-102)/5 × 100 = +60%

Диапазон от +10% до +70% → все изменения попали ✅

Диапазон от +10% до +50% → последнее изменение (+60%) вышло за границу ❌

**Значения диапазона:**

* Положительные значения — верхняя граница растёт (цена движется вверх)
* Отрицательные значения — верхняя граница снижается (цена движется вниз)
* Диапазон позволяет фильтровать силу движения

Используйте чекбокс для включения или отключения фильтра.

**Использование:** комбинируйте с Lower Border Range для поиска односторонних движений. Например, для растущего тренда установите положительные значения для обеих границ.

**Значение по умолчанию:** от 0% до 0,5%

**Минимальное значение:** без ограничений

**Максимальное значение:** без ограничений

#### 5. Lower Border Range (диапазон нижней границы)

Фильтр отслеживает, как изменяется нижняя граница спреда от фрейма к фрейму.

Алгоритм измеряет изменение нижней границы между соседними фреймами в процентах от спреда последнего фрейма. Укажите минимальное и максимальное значение диапазона. Все изменения должны попасть в заданный диапазон — если хотя бы одно выходит за границы, условие не выполнено.

**Как это работает:**

Изменение = (Нижняя граница следующего фрейма - Нижняя граница предыдущего фрейма) / Спред последнего фрейма × 100%

**Пример:** 4 фрейма с нижними границами 50, 51, 52, 53. Спред последнего фрейма = 3.

Изменения: (51-50)/3 × 100 = +33,3%, (52-51)/3 × 100 = +33,3%, (53-52)/3 × 100 = +33,3%

Диапазон от +20% до +40% → все изменения попали ✅

Диапазон от +20% до +30% → все изменения (+33,3%) вышли за границу ❌

**Значения диапазона:**

* Положительные значения — нижняя граница растёт (цена движется вверх)
* Отрицательные значения — нижняя граница снижается (цена движется вниз)
* Диапазон позволяет фильтровать силу движения

Используйте чекбокс для включения или отключения фильтра.

**Использование:** комбинируйте с Upper Border Range для поиска односторонних движений. Например, для растущего тренда установите положительные значения для обеих границ.

**Значение по умолчанию:** от 0% до 0,5%

**Минимальное значение:** без ограничений

**Максимальное значение:** без ограничений

***

#### 6. Min Trades Per Frame (минимум трейдов во фрейме)

Минимальное количество трейдов, которое должно произойти в каждом фрейме.

Этот параметр фильтрует низкоактивные периоды. Если во фрейме трейдов меньше указанного значения, фрейм не учитывается.

**Значение по умолчанию:** 2

**Минимальное значение:** 0

**Максимальное значение:** без ограничений

***

#### 7. Min Quote Asset Volume (минимальный объём торгов)

Минимальный объём торгов в котируемой валюте для каждого фрейма.

Помогает избежать входа в рынок при низкой ликвидности. Если объём трейдов во фрейме меньше указанного значения, фрейм не учитывается.

**Значение по умолчанию:** 10 000

**Минимальное значение:** 0

**Максимальное значение:** без ограничений

***

#### 8. Order Distance (расстояние для ордера)

Расстояние в процентах от **размера спреда**, на котором будет размещён ордер относительно границы.

**Как это работает:**

Order Distance отсчитывается в процентах от размера спреда (разницы между верхней и нижней границей).

* **Для Buy:** ордер размещается выше нижней границы на указанный процент от спреда
* **Для Sell:** ордер размещается ниже верхней границы на указанный процент от спреда

**Пример для Buy:**

Нижняя граница = 70

Спред = 5

Order Distance = 5%

Расстояние в пунктах = 5 × 5% = 0,25

Цена ордера = 70 + 0,25 = **70,25**

Чем больше значение Order Distance, тем дальше ордер от границы и ближе к противоположной стороне спреда. Отрицательные значения размещают ордер за пределами спреда (ниже нижней границы для Buy или выше верхней границы для Sell).

**Значение по умолчанию:** 5%

**Минимальное значение:** без ограничений (принимаются отрицательные значения)

**Максимальное значение:** без ограничений (принимаются значения выше 100%)

#### 9. Use Adaptive Order Distance (адаптивное расстояние)

Алгоритм автоматически корректирует Order Distance с учётом направления движения границы спреда.

При включении адаптации алгоритм анализирует, как изменялась соответствующая граница спреда между всеми фреймами в Time Frame, вычисляет среднее изменение и добавляет его к базовой цене ордера. Это позволяет размещать ордера более агрессивно в направлении тренда.

**Как это работает:**

1. Алгоритм считает изменение границы между каждой парой соседних фреймов
2. Вычисляет среднее изменение в абсолютных единицах цены
3. Добавляет это значение к базовой цене ордера

**Формула среднего изменения:**

((a2-a1) + (a3-a2) + (a4-a3) + ...) / n

где a — значение границы в каждом фрейме, n — количество переходов между фреймами.

**Для Buy:** используется нижняя граница спреда

**Для Sell:** используется верхняя граница спреда

**Пример для Buy:**

4 фрейма с нижними границами: 76, 74, 72, 70

Последний фрейм: нижняя граница = 70, спред = 5

Order Distance = 5%

Изменения: (74-76) = -2, (72-74) = -2, (70-72) = -2

Среднее изменение = (-2 + -2 + -2) / 3 = **-2**

**Без адаптации:**

Цена ордера = 70 + (5 × 5%) = 70 + 0,25 = **70,25**

**С адаптацией:**

Цена ордера = 70,25 + (-2) = **68,25**

Ордер размещается ниже, так как нижняя граница стабильно падает. Если изменения разнонаправленные (то вверх, то вниз), среднее изменение может быть близко к нулю, и адаптация практически не влияет на цену ордера.

***

#### 10. Order Lifetime (время жизни ордера)

Время в секундах, в течение которого ордер остаётся активным. Алгоритм ищет волатильность, ставит ордер в надежде в волатильности принять участие и снимает если не получил заполнение в ожидаемый срок. Этот параметр имеет смысл выставлять в корреляции с Frame Size/Timeframe.

Если ордер не исполнился за это время — он автоматически отменяется.

**Значение по умолчанию:** 1 секунда

**Минимальное значение:** 0 секунд

**Максимальное значение:** без ограничений

***

#### 11. Max Orders (максимум ордеров и позиций)

Суммарное количество неисполненных ордеров и открытых позиций.

Алгоритм считает ордера и позиции вместе. Новый ордер не будет размещён, если сумма активных ордеров и открытых позиций достигла указанного лимита.

**Значение по умолчанию:** 3

**Минимальное значение:** 0

**Максимальное значение:** без ограничений

***

#### 12. Order Frequency (частота размещения ордеров)

Частота размещения новых ордеров (в секундах) при активном триггере.

**Важно:** данный параметр заменяет привычный параметр «Задержка перед перезапуском», так как выполняет аналогичную функцию — контролирует интервал между размещением ордеров.

**Значение по умолчанию:** 0,1 секунды

**Минимальное значение:** 0 секунд

**Максимальное значение:** без ограничений

***

#### 13. Use Detect Shot (обнаружение прострелов)

Включите этот режим для обнаружения резких движений цены с последующим откатом.

При активации алгоритм анализирует последний фрейм и ищет резкие скачки цены, ожидая отката на указанный процент от максимального движения.

**Важно:** при включённом режиме Detect Shot параметры Time Frame, Upper Border Range и Lower Border Range не учитываются, так как алгоритм анализирует только последний фрейм.

**Значение отката по умолчанию:** 80%

**Минимальное значение:** 0%

**Максимальное значение:** 100%

* 100% — полный откат к начальной точке движения
* 0% — откат отсутствует

**Пример:** если цена резко выросла с 100 до 101, а затем откатила до 100,2, откат составил 80% от движения (цена прошла обратно 0,8 из 1).

***

#### 14. Shot Direction (направление прострела)

Выберите направление движения, которое алгоритм должен обнаруживать:

* **Up** — резкий рост цены
* **Down** — резкое падение цены

***

### Управление прибылью и рисками

#### Take Profit (фиксация прибыли)

Уровень фиксации прибыли в процентах от размера спреда.

* **Для Buy:** отсчитывается от нижней границы спреда в текущем фрейме
* **Для Sell:** отсчитывается от верхней границы спреда в текущем фрейме

Внимание, в отличие от других алгоритмов, в алгоритме Vector, Take Profit указывается в процентах от найденных расстояний, а не в процентах от цены актива. Эта реализация дает больше гибкости алгоритму и возможности забирать больше профитов при нахождении больших расхождений цен.

Например, алгоритм с параметром Spread Size = 0.5, сработает как при расстоянии в 1.0% так и при расстоянии в 5.0% между ценами в фреймах, при такой большой возможной разнице логичнее выставлять Take Profit в зависимости от найденной ситуации.

#### Adaptive Take Profit (адаптивный тейк-профит)

Алгоритм автоматически корректирует дистанцию Take Profit с учётом направления движения границы спреда.

При включении адаптации алгоритм анализирует, как изменялась соответствующая граница спреда между всеми фреймами в Time Frame, вычисляет среднее изменение и добавляет его к базовой цене Take Profit. Это позволяет фиксировать прибыль с учётом текущего тренда движения цены.

**Как это работает:**

1. Алгоритм считает изменение границы между каждой парой соседних фреймов
2. Вычисляет среднее изменение в абсолютных единицах цены
3. Добавляет это значение к базовой цене Take Profit

**Формула среднего изменения:**

((a2-a1) + (a3-a2) + (a4-a3) + ...) / n

где a — значение границы в каждом фрейме, n — количество переходов между фреймами.

**Для Buy:** используется нижняя граница спреда

**Для Sell:** используется верхняя граница спреда

**Пример для Buy:**

4 фрейма с нижними границами: 100, 110, 120, 130

Последний фрейм: нижняя граница = 130, спред = 100

Take Profit = 90%

Изменения: (110-100) = +10, (120-110) = +10, (130-120) = +10

Среднее изменение = (+10 + +10 + +10) / 3 = **+10**

**Без адаптации:**

Цена Take Profit = 130 + (100 × 90%) = 130 + 90 = **220**

**С адаптацией:**

Цена Take Profit = 220 + (+10) = **230**

Take Profit размещается выше, так как нижняя граница стабильно растёт. Если изменения разнонаправленные (то вверх, то вниз), среднее изменение может быть близко к нулю, и адаптация практически не влияет на цену Take Profit.

***

#### Stop Loss (ограничение убытков)

Уровень стоп-лосса в процентах от цены размещения ордера.

***

### Контакты и поддержка

Если у вас возникли вопросы по настройке алгоритма или вы хотите предложить улучшения, обратитесь в [службу поддержки](https://t.me/moontrader_support_ru).
