# Алгоритм 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.moontrader.com/torgovlya/algoritmicheskii-treiding/algoritm-vector.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
