Простая скользящая средняя: формула SMA и расчёт по шагам
Главное
SMA придаёт одинаковый вес каждой цене внутри выбранного окна. При появлении новой свечи самая старая цена выходит из расчёта.
Для периода n формула скользящей средней выглядит так: SMA = (C₁ + C₂ + ... + Cₙ) / n. Здесь C означает выбранную цену свечи. В этом примере используем только закрытия, расположенные от старого к новому. Такую логику описывает справка TradingView по SMA.
Возьмём пять условных цен: 100, 102, 101, 105, 107. Их сумма равна 515, поэтому SMA(5) = 515 / 5 = 103. Каждая цена занимает одну пятую окна. Пятая цена 107 влияет на результат с тем же весом, что и первая 100.
Следующее закрытие равно 105. Теперь окно состоит из 102, 101, 105, 107, 105. Новая сумма: 515 − 100 + 105 = 520. Получаем SMA(5) = 104. Делить на шесть не нужно: период остался равен пяти.
- 1
Сумма окна: 515
Цены 100, 102, 101, 105, 107
- 2
Убираем 100, добавляем 105
Новая сумма: 520
- 3
Делим 520 на 5
SMA шестой свечи: 104
Подпись к схеме: окно сохраняет пять значений; меняется его состав. Источник: собственный расчёт по формуле SMA.
Период измеряется в свечах выбранного таймфрейма. Пять часовых свечей и пять дневных свечей дают разные исходные данные. Выбор длины под торговую задачу разобран отдельно в статье о скользящих средних в трейдинге.
Экспоненциальная скользящая средняя: формула EMA и коэффициент k
Главное
EMA переносит в новый результат часть предыдущей средней. Коэффициент k определяет, насколько сильно новая цена изменит линию.
EMAₜ = k × Cₜ + (1 − k) × EMAₜ₋₁, где k = 2 / (n + 1). Равнозначная запись удобнее для калькулятора: EMAₜ = EMAₜ₋₁ + k × (Cₜ − EMAₜ₋₁). Обе формы дают один ответ при одинаковых исходных данных. Fidelity описывает рекурсию EMA с начальным значением на основе SMA.
В нашем упражнении n = 5, поэтому k = 2 / 6 = 1/3. Первую EMA ставим на пятой свече и приравниваем к SMA первых пяти закрытий: EMA₅ = 103. Это явно выбранное правило начала ряда.
На шестой свече цена равна 105. Разница между ней и предыдущей EMA: 105 − 103 = 2. Берём треть этой разницы и прибавляем к 103: EMA₆ = 103 + 2/3 = 103,666667 с округлением для показа.
- 1
105 − 103 = 2
Цена минус предыдущая EMA
- 2
2 × 1/3 = 0,666667
Доля изменения при периоде 5
- 3
103 + 0,666667
Новая EMA: 103,666667
Подпись к схеме: шесть знаков показаны для чтения, в следующем шаге используется неокруглённое значение. Источник: собственный расчёт.
EMA(5) не обрезает историю строго до последних пяти цен. Предыдущее значение уже содержит вклад более старых наблюдений. Число 5 задаёт коэффициент, с которым этот вклад постепенно затухает.
Сквозной пример: считаем SMA(5) и EMA(5) по одной таблице цен
Главное
на десятой свече SMA(5) равна 109,8, а EMA(5) при старте с SMA₅ равна 110,181070. Разница возникает из-за весов и сохранённой истории.
Все десять цен придуманы для арифметического упражнения. Это не котировки актива и не торговый результат. Прочерк означает, что значение ещё не рассчитываем: для выбранного старта нужны пять цен.
| Свеча | Закрытие | SMA(5) | EMA(5), старт с SMA₅ |
|---|---|---|---|
| 1 | 100 | - | - |
| 2 | 102 | - | - |
| 3 | 101 | - | - |
| 4 | 105 | - | - |
| 5 | 107 | 103,0 | 103,000000 |
| 6 | 105 | 104,0 | 103,666667 |
| 7 | 108 | 105,2 | 105,111111 |
| 8 | 112 | 107,4 | 107,407407 |
| 9 | 110 | 108,4 | 108,271605 |
| 10 | 114 | 109,8 | 110,181070 |
Проверка последней строки SMA: (105 + 108 + 112 + 110 + 114) / 5 = 549 / 5 = 109,8. Для EMA возьмите неокруглённое значение девятой строки: 108,271604938... + (114 − 108,271604938...) / 3 = 110,181069959....
Если считать с самого первого закрытия и принять EMA₁ = 100, получится другой ряд. При одинаковом k и последующих ценах разница двух EMA после каждого шага умножается на (1 − k). Для периода 5 это 2/3: расхождение уменьшается, но после одной новой свечи обычно не исчезает.
Риски и ограничения
Главное
правильная арифметика проверяет работу индикатора, но не доказывает выгодность сделки.
Средняя сглаживает уже полученные цены. По одной линии нельзя установить, продолжится ли движение, каким будет убыток и удастся ли исполнить заявку по выбранной цене. Формулы не учитывают комиссии и проскальзывание.
На открытой свече меняется цена закрытия, а вместе с ней может меняться текущее значение индикатора. Для ручной сверки берите завершённые свечи. Особенности пересчёта исторических и текущих баров описаны в модели исполнения Pine Script.
Числа в таблице предназначены для обучения. Материал не является индивидуальной инвестиционной рекомендацией.
Один из самых продвинутых мульти-индикаторов для TradingView
30+ индикаторов в одной системе. Сигнал, стоп и три цели по ликвидности индикатор Midas показывает на графике сам - вам остаётся решить, входить ли в сделку.
- Сигналы Buy и Sell не перерисовываются после закрытия свечи
- 8 400+ установок и 300+ отзывов клиентов
- Проверка на истории - сигналы до 10 лет назад
Проверка расчёта в TradingView и Pine Script
Главное
сначала уравняйте тип средней, период, источник цен и свечу. Для EMA дополнительно проверьте начало доступной истории.
В TradingView добавьте Simple Moving Average и Exponential Moving Average. Для обеих линий задайте Length = 5, Source = close, Offset = 0. Не сравнивайте основную линию с дополнительной линией сглаживания. Справка по EMA описывает эти параметры.
Для SMA выпишите закрытия пяти завершённых свечей одного инструмента на одной площадке. Сложите их, разделите на пять и сопоставьте результат со значением на последней из выбранных свечей. Сравнение по положению линии на экране менее точно, чем сравнение чисел.
В Pine Script встроенные функции вызываются так:
//@version=6
indicator("SMA and EMA check", overlay = true)
plot(ta.sma(close, 5), "SMA 5", color = color.orange)
plot(ta.ema(close, 5), "EMA 5", color = color.blue)Этот код использует цены графика. Он не воспроизводит учебные числа 100, 102, 101 и остальные значения таблицы. Чтобы проверить именно учебную EMA с выбранным стартом, удобно перенести расчёт в электронную таблицу.
Запишите закрытия в B2:B11. В C6 введите =AVERAGE(B2:B6) и протяните вниз: получится SMA. В D6 поставьте =C6, в D7 - =D6+(2/(5+1))*(B7-D6) и протяните до D11. В русской локализации функция среднего может называться СРЗНАЧ. Ограничьте число отображаемых знаков, сохранив полную точность самих ячеек.
Для проверки встроенной EMA на реальном графике пяти выписанных закрытий недостаточно: нужна предшествующая средняя либо история и правило её начального расчёта. При расхождении сначала проверьте эти условия. Название EMA и один период ещё не определяют старт ряда.
Подойдёт, если
- SMA: сумма 520, делитель 5, результат 104
- EMA: предыдущая 103, новая цена 105, k = 1/3
- Сравнение идёт по одной завершённой свече
Не подойдёт, если
- Сумму 520 делят на 6 вместо периода 5
- EMA начинают с нуля без такого правила в расчёте
- Учебную таблицу сравнивают с другой историей цен
Подпись к сравнению: слева условия воспроизводимого примера, справа причины другого ответа. Источник: собственная проверка формул и входных данных.
WMA и SMMA/RMA: другие веса той же идеи
Главное
линейная WMA назначает веса внутри конечного окна, а сглаженная SMMA/RMA переносит предыдущий результат с коэффициентом 1/n.
Для WMA(5) придайте пяти ценам веса 1, 2, 3, 4, 5 от старой к новой и разделите взвешенную сумму на 15. На первых пяти учебных ценах это (100 × 1 + 102 × 2 + 101 × 3 + 105 × 4 + 107 × 5) / 15 = 1562 / 15 = 104,133333. Такой принцип весов приводит Fidelity в описании WMA.
Для сглаживания Уайлдера используют RMAₜ = RMAₜ₋₁ + (Cₜ − RMAₜ₋₁) / n. При старте с SMA₅ = 103 и следующей цене 105 получим RMA₆ = 103 + (105 − 103) / 5 = 103,4. Коэффициент здесь 1/5, у EMA(5) он равен 1/3.
Названия RMA и SMMA часто обозначают эту же рекурсию с начальной SMA. Перед сравнением платформ проверьте обе части: коэффициент и начальное значение. Документация TA-Lib по RMA описывает формулу, старт и используемые названия. Одинаковое сглаживание при разном старте не означает полного совпадения первых значений.
Частые ошибки ручного расчёта
Главное
при расхождении проверяйте исходные цены, окно, начальное значение и округление. Перестановка этих условий меняет ответ даже при верной формуле.
Смешали close и другую цену. Среднее между максимумом и минимумом свечи отличается от закрытия. Выпишите название источника рядом с периодом, прежде чем считать.
Перевернули порядок весов WMA. В нашем примере наибольший вес получает последняя цена 107. Если отдать его первой цене 100, получится другая средняя.
Округлили EMA на каждом шаге. Значение 103,666667 показано с шестью знаками, но внутрь следующей формулы идёт 103 + 2/3. В коротком примере расхождение может быть небольшим, однако оно уже мешает точной проверке.
Заменили отсутствующую EMA нулём. Это отдельное правило старта, которое здесь не используется. До пятой свечи оставьте ячейки пустыми, а затем возьмите рассчитанную SMA.
Сдвинули окно на одну свечу. В SMA десятой свечи входят строки с шестой по десятую включительно. Для проверки обведите эти пять цен перед суммированием.
Ожидают совпадения разных площадок. Даже одинаковое название инструмента не означает тождественную историю закрытий. Сверяйте площадку, тип графика, таймфрейм, дату и время выбранной свечи.
Источники
- TradingView: Simple Moving Average - окно и настройки SMA.
- TradingView: Exponential Moving Average - рекурсия и параметры EMA.
- Fidelity: Exponential Moving Average - расчёт EMA и начальная SMA.
- Fidelity: Weighted Moving Average - линейные веса WMA.
- TA-Lib: Wilder's Smoothed Moving Average - коэффициент и начальное значение RMA.
- TradingView: модель исполнения Pine Script - исторические и текущие свечи.
Частые вопросы
Как рассчитать скользящую среднюю без индикатора?
Для SMA выпишите n последовательных цен закрытия, сложите их и разделите на n. С новой свечой удалите из суммы самую старую цену и добавьте новую. Для EMA заранее выберите начальное значение, вычислите k = 2 / (n + 1), затем последовательно обновляйте среднюю: предыдущая EMA + k × (новая цена − предыдущая EMA). Сохраняйте одинаковый источник цены.
Какая формула расчёта у индикатора EMA?
EMAₜ = k × Cₜ + (1 − k) × EMAₜ₋₁, где Cₜ означает текущую цену, а k = 2 / (n + 1). Для периода 5 коэффициент равен 1/3. В учебном расчёте можно начать с SMA первых пяти цен и применять рекурсию с шестой свечи. При сравнении с готовым индикатором нужно проверить его историю и способ начала ряда.
Почему SMA и EMA одного периода показывают разные числа?
SMA придаёт равные веса ценам внутри окна и исключает цену, которая вышла за его границу. EMA обновляется через предыдущую среднюю; влияние более старых наблюдений затухает постепенно. Поэтому совпадение периода не делает формулы одинаковыми. В учебном ряду на шестой свече SMA(5) равна 104, а EMA(5), начатая с SMA₅ = 103, равна 103,666667.
Чем формула SMMA отличается от EMA?
В распространённом варианте SMMA, также называемом RMA, коэффициент новой цены равен 1/n. У EMA он равен 2 / (n + 1). При периоде 5 это 1/5 и 1/3 соответственно. Если начальное значение обеих средних равно 103, а новая цена 105, следующий результат SMMA составит 103,4, EMA - 103,666667. При сверке программ проверяйте и правило старта.





