---
id: document_item.ema-strategy-and-its-parameters
page_type: documentation_article
title: "Стратегия \"EMA\" и её параметры"
description: "Как Moonbot использует формулы CustomEMA и SellByCustomEMA для сравнения EMA, максимумов и минимумов цены, BTC и среднерыночных значений на заданных интервалах."
section: documentation
category: "Стратегии / Специальные параметры стратегий"
url: https://moonbot.pro/ru/documentation/advanced-strategy-parameters/ema-strategy-and-its-parameters?format=md
locale: ru
alternate_en: https://moonbot.pro/documentation/advanced-strategy-parameters/ema-strategy-and-its-parameters?format=md
parent: https://moonbot.pro/ru/documentation/advanced-strategy-parameters?format=md
previous: https://moonbot.pro/ru/documentation/advanced-strategy-parameters/topmarket-strategy-and-its-parameters?format=md
next: https://moonbot.pro/ru/documentation/advanced-strategy-parameters/spread-strategy-and-its-parameters?format=md
status: published
updated_at: 2026-10-19T14:49:41+03:00
---

# Стратегия "EMA" и её параметры

Для использования EMA фильтров с формулами для всех стратегий в терминале и EMA стратегии для выставления Buy ордеров с реальным депозитом необходимо активировать платный пакет расширений для Автоторговли, если он не активирован, то функции из этого пакета будут работать только в общем режиме Эмулятора, включённого через **Меню** **→** **Режим эмуляции**.

### EMA-фильтр и стратегия EMA

В настройках стратегий для параметров **CustomEMA** (фильтр-условие для входа в позицию) и **SellByCustomEMA** (условие для выхода из позиции) можно записывать формулы, которые реализуют идею задания произвольных фильтров-условий, построенных на сравнении цен на графиках монет или объемов за разные интервалы времени.

В поле параметра **CustomEMA** или **SellByCustomEMA** в строчку пишется набор функций для сравнения в виде:

**EMA(X,Y) > A AND MAX(X,Y) \< B AND..**. любое количество формул, разделенное словами AND или OR (порядок применения - алгебраический: сначала между собой все AND, потом OR). \
**Пример: A AND B OR C AND D** означает одно из двух: **(A AND B) или (C AND D)**.

#### Типы формул

- **EMA(X,Y) >** или **\< A**: Сравнение цен за EMA X секунд, минут или часов назад и EMA Y секунд, минут или часов назад.\
  Допустимые значения: X=**1s...300s** или **2m...90m** или **1h...41h**, Y=**1s...300s** или **2m...90m** или **1h...41h**);
- **MAX(X,Y) >** или **\< A**: Сравнение максимальной цены за X минут или часов назад и EMA Y секунд, минут или часов назад.\
  Допустимые значения: X=**5m...90m** или **1h...41h**, Y=**1s...300s** или **2m...90m** или **1h...41h**.\
  Пояснения к расчету максимумов смотрите ниже **"Методика расчета"**;
- **MIN(X,Y) >** или **\< A**: Сравнение минимальной цены за X минут или часов назад и EMA Y секунд, минут или часов назад.\
  Допустимые значения: X=**5m...90m** или **1h...41h**, Y=**1s...300s** или **2m...90m** или **1h...41h**. \
  Пояснения к расчету минимумов смотрите ниже **"Методика расчета"**;
- **BTC(X,Y) >** или **\< A**: Сравнение цен BTC/USDT за **EMA X** секунд, минут или часов назад и **EMA Y** секунд, минут или часов назад.\
  Допустимые значения: X=**1s...300s** или **2m...90m** или **1h...41h**, Y=**1s...300s** или **2m...90m** или **1h...41h**).
- **MAvg(X,Y) >** или **\< A**: Сравнение средних цен всего рынка (маркета) за **EMA X** секунд, минут или часов назад и **EMA** **Y** секунд, минут или часов назад.\
  Допустимые значения: X=**1s...300s** или **2m...90m** или **1h...41h**, Y=**1s...300s** или **2m...90m** или **1h...41h**).\
  На расчет средней цены рынка (маркета) влияют 2 настройки:
  - На вкладке **Настройки → Основные**, **Черный список** и **Исключить из дельт**, если галочки стоят, то в средней цене рынка исключены маркеты Черного списка;
  - На вкладке **Настройки → Специальные → Настройка движка**, **Weighted mAvg**, если галочка стоит, то цена маркета в среднем берется с весом, равным суточному объему.\
    Иначе говоря, чем меньше суточный объем на монете, тем меньше она влияет на среднее.\
    Расчет можно сравнить с капитализацией: это сумма (цена \* объем).
- **Avg(X,Y) >** или **\< A:** запись по аналогии с EMA(X, Y). Сравнивается цена X секунд или минут назад и Y секунд или минут назад.\
  Допустимые значения: X=**1s...300s** или **2m...90m** или **1h...41h**, Y=**1s...300s** или **2m...90m** или **1h...41h**).\
  Если Y=1, то берётся текущая цена. Линию средней цены можно увидеть на графике, включив галку **AvgPrice**;
- **Vol(X,Y) >** или **\< A**: формула сравнения объёмов. X и Y могут быть: 5s, 15s, 30s, 1m, 3m, 5m, 15m, 30m, 1h, 3h, 24h.\
  Расчёт выполняется по формуле: (средний минутный объем за время Y) делить на (средний минутный объём за время X).

**Пример:** Объём за час 120000 USDT (средний минутный объем за час будет 2000 USDT).\
Объём за посл. минуту: 4000 USDT.

Тогда Vol(1h,1m) = 4000/2000 = 2, то есть объём в эту минуту в 2 раза больше минутного среднего за последний час.

Частный случай: Vol(0,Y) дает просто средний минутный объём за время Y, без сравнения.

- **Arb(биржа) > N%**\
  **Arb(биржа) \< -N%**

Также можно использовать запись: **Arb(\*) > N%** - это означает, что цена хотя бы на одной из бирж отклоняется более чем на N%.\
Формулы можно записывать в строчку с использованием условий **AND** (И), **OR** (ИЛИ). Например: Arb(**BinAlpha)>1%** **AND** Arb(**BinanceF)>1%**

Для формул арбитража цен в настоящее время доступны следующие названия бирж:

**BinAlpha, BinanceF, BinanceQ, BinanceS, BitgetF, BitgetS, BybitF, BybitS, Forex, GateF, GateS, HL_F, HL_io, HL_mkts, HL_para, HL_S, HL_xyz, HtxS, OkxF, OkxS, UpBit**

\* где **BinAlpha** - это Binance Alpha, биржа с буквой **S** на конце - спотовая, биржа с буквой **F** на конце - фьючерсная, биржа с буквой **Q** на конце - фьючерсная квартальная, **HL\_** - биржа Hyperliquid

⚠️ **Важно!** Мы не гарантируем постоянный список источников, с которых доступны цены, а также их бесперебойную работу. Особенно это касается рынка Форекс. В будущем список источников может измениться, а ненадежные источники — быть удалены.

⚠️ **Важно!** Для автоторговли рекомендуем использовать стратегии с вайтлистом и не использовать формулы Arb(\*), а указывать конкретные биржи, которые вас интересуют. Причина — возможны листинги разных токенов с одинаковым названием, что может привести к ложным детектам, если при создании стратегии вы не ограничили вайтлист и список бирж.

Например, формула Arb(\*) > 10%: в момент создания стратегии на всех биржах могла торговаться одна монета PEPE, и детекты были корректными. Позже, например, на Binance Alpha может появиться листинг PePe — другого токена с тем же названием, но существенно отличающейся ценой. Чтобы избежать ложных срабатываний, рекомендуем при настройке стратегии заранее указать вайтлист и список бирж, на которых торгуются нужные активы.

**Каждая формула, где есть (X, Y) > или \< A означает:**

1\) X,Y - время: число, после которого есть буква s или m или h (секунды, минуты, часы соответственно) или нет буквы (тогда число считается секундами).\
2\) Знак больше или меньше.\
3\) A - с чем сравнивать (в процентах).\
Принцип расчёта: средняя цена Y секунд назад сравнивается со средней ценой X секунд назад: \
**Цена(Y) / Цена(X) > 1 + A / 100**\
Иначе говоря, Цена(Y) больше чем Цена(X) на A процентов (или меньше, если в формуле знак \<)

#### Методика расчёта и ограничения

Поскольку все возможные комбинации хранить в памяти невозможно, то терминал Moonbot считает цены по следующему принципу:

1. Набор секундных средних от текущей цены (1 сек.) до 300 сек. назад. Считаются по средним ценам за каждую секунду как классические EMA: Pслед\[N\] = (Pпред\[N\] \* N + Pтекущ) / (N + 1), где N это время в секундах;
2. Минутные средние от 2 минут назад до 90 минут назад. Считаются как просто средняя цена за минуту;
3. Часовые средние от 1 часа назад до примерно 41 часов назад (ограничение биржи на свечи по которым считаются часовые средние). Считаются как средние цены за час по 5м свечам. Исходя из этого, параметры **X,Y** в формуле EMA могут быть: 1s..300s или 2m..90m или 1h..41h (конкретные диапазоны параметров **X** и **Y с**мотрите выше рядом со своим параметром **MIN MAX EMA**);
4. Если **Y** ставить 1s, то будет сравнение с текущей ценой, при указании секунд s можно не ставить;
5. Пересчёт часовых **MAX/MIN** производится раз в 5 минут, по мере появления новой 5м свечи. Чтобы записи MAX(1h)/MIN(1h) и MAX(60m)/MIN(60m) не дублировали друг друга, часовые идут сразу от 1 часа назад. К примеру, для MAX(1h,1) максимальное значение берётся по 5м свечам от 60 по 120 минуту назад;
6. Пересчёт минутных **MAX/MIN** идёт через каждый тик (1 тик = 2 сек), то есть с задержкой от 2 до 4 сек. При этом последние 60 секунд не включены в расчёт уровней минутных **MAX/MIN**.

Таким образом, резкий рост на последней минуте (для минутных интервалов) и за последние 60 минут (для часовых интервалов) не учитывается в определении уровней **MAX/MIN**, а следовательно в моменте значение **MAX** может быть больше нуля, а **MIN** меньше нуля. Так сделано, чтобы можно было формулой задать перехай/перелоу, то есть записать условие, что текущая цена стала больше максимума либо меньше минимума за последние N минут/часов.

![Стратегия EMA](https://moonbot.pro/storage/editor-images/%D0%A1%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D1%8F%20EMA.jpg)

![Стратегия EMA (dark)](https://moonbot.pro/storage/editor-images/%D0%A1%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D1%8F%20EMA.jpg)

Вывести расчётные точки **MAX/MIN**, **EMA** и **MAvg**, соединённые для наглядности синими линиями на график, можно в меню кнопки **Показывать** **графики\\стаканы спотовых торгов** (кнопка находится левее от кнопки **Воронка**), см. рис. выше.

⚠️ **Обратите внимание! Это не индикатор,** а всего лишь наглядное представление о том, как по точкам считаются значения для EMA фильтра. По причинам, изложенным выше, синяя линия средней цены может иметь разрывы - это места, где 300s заканчивается, где начинается 2m и заканчивается 90m.

Фильтр **CustomEMA** срабатывает, когда выполняются все условия в формулах. Таким образом, можно задать самые разные условия входа, например условие «падение цены за длинный период с последующим ростом за короткий» и т.п.

#### Примеры выражений в поле CustomEMA

**Примеры того, что можно записывать в поле CustomEMA**

1. **EMA(15m,3s)\< -1 AND EMA(5s,1s) > 0.1**\
   EMA(15m,3s)\<-1 = означает, что было падение, то есть средняя цена EMA 3 сек. назад на -1% меньше средней цены EMA 15 минут назад.\
   EMA(5s,1s)>0.1 = означает, что был рост, то есть цена текущая EMA 1s больше на 0.1%, чем средняя цена EMA 5 сек. назад.\
   Вместе эти условия означают, что детект произойдёт после падения, за которым следует рост.
2. Формула **MAX(1h,1s)>0.1** означает перехай цены, то есть текущая средняя цена EMA 1s стала больше, чем +0.1% от часового максимума MAX 1h;
3. Формула **MAX(1h,1s)\<-5** = означает падение текущей средней цены EMA 1s ниже на 5% от её часового максимума MAX 1h;
4. Формула **MAX(1h,1s)\<-5 AND MIN(1h,1s)\<0.1 AND MIN(1h,1s)>-0.1** = означает падение текущей средней цены EMA 1s ниже на 5% от часового максимума MAX 1h, при этом текущая средняя цена EMA 1s находится у часового минимума цены в пределах MIN 1h от -0.1 до +0.1%.

Для простоты тестирования этих формул добавлена стратегия EMA, в которой нет своих специальных параметров, так как она построена исключительно на детекте по условию фильтра CustomEMA. То есть, детект происходит в момент, когда выполняются условия фильтров, поэтому используйте её осторожно! \
Возможны неограниченные покупки, поэтому на вкладке Filters настройки стратегии выставляйте задержку в параметре **NextDetectPenalty**.

**Замечания:**

1. Важно использовать фильтры по Latency в стратегии, поскольку значения цен EMA зависят от цен трейдов; если цены поступают с задержкой, то расчёт EMA будет неточен.
2. Линии EMA сохраняются в отчёте на момент детекта стратегий, а для стратегии MoonShot - на момент срабатывания Buy ордера, если в стратегии был включён EMA фильтр.

## Навигация

Путь: [Главная](https://moonbot.pro/ru?format=md) / [Документация](https://moonbot.pro/ru/documentation?format=md) / [Стратегии](https://moonbot.pro/ru/documentation/strategies?format=md) / [Специальные параметры стратегий](https://moonbot.pro/ru/documentation/advanced-strategy-parameters?format=md) / Стратегия "EMA" и её параметры

Раздел выше: [Специальные параметры стратегий](https://moonbot.pro/ru/documentation/advanced-strategy-parameters?format=md)

Предыдущая: [Стратегия "TopMarket" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/topmarket-strategy-and-its-parameters?format=md)

Следующая: [Стратегия "Spread" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/spread-strategy-and-its-parameters?format=md)

## Похожие материалы

- [Стратегия "Spread" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/spread-strategy-and-its-parameters?format=md)
- [Стратегия "MoonHook" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/moonhook-strategy-and-its-parameters?format=md)
- [Стратегия "Activity" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/activity-strategy-and-Its-parameters?format=md)
- [Стратегия "Alerts" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/alerts-strategy-and-its-parameters?format=md)
- [Стратегия "Watcher" и её параметры](https://moonbot.pro/ru/documentation/advanced-strategy-parameters/watcher-strategy-and-its-parameters?format=md)
