SMA и EMA: как проверить расчёт, веса и начальное значение
Воспроизведите скользящую среднюю по своему ряду цен закрытия. Сравните два явных способа инициализации EMA, разберите каждый вес и вклад, затем проверьте результат в электронной таблице.
Автор · Редактор
- Автор
- Николай Заваров
- Редактор
- Андрей Бондаренко
Проверено

Главное
SMA присваивает последним N ценам одинаковые веса; EMA использует рекуррентную формулу с α = 2/(N + 1). Единицы результата совпадают с единицами цены.
Начальное значение влияет на ранние значения EMA. Здесь явно доступны старт с первой SMA и старт с первой цены.
Ранние значения SMA недоступны, а не равны нулю. Пустые строки не заполняются и не удаляются незаметно.
Точные веса в сумме дают единицу и восстанавливают среднюю выбранной строки. Для совпадения с платформой нужны также одинаковые данные, история и правила.
Начните с сопоставимых цен закрытия
На одном экране вы видите одно значение скользящей средней, а в таблице — другое. Прежде чем искать ошибку в формуле, установите точный исходный ряд и правило старта. Обозначение EMA 3 не описывает всех условий, необходимых для воспроизведения числа. Результат этого гайда — численная проверка: исходные цены, доступные средние, веса выбранной строки и список того, что пока неизвестно.
Используйте один инструмент, одно определение цены, одни единицы и завершённые периоды одинаковой длины, от старых к новым. Close может означать закрытие по Bid, Ask, последней сделке или другому справочному значению. Это разные исходники. Запишите поставщика, часовой пояс, границы сессии и наличие корректировок истории. Если к инструменту применяются корпоративные корректировки, скорректированная историческая цена может отличаться от исходной.
Что записать до расчёта | Почему ответ может измениться |
|---|---|
Поле цены закрытия и единицы | Средняя цен в USD остаётся ценой в USD, а не процентной доходностью или прибылью. |
Длина периода, сессия и часовой пояс | Разные границы могут выбирать разные наблюдения закрытия. |
Полная упорядоченная история и пропущенные периоды | EMA зависит от начального значения и следующих за ним наблюдений. |
N и способ инициализации EMA | При одинаковом N разные старты могут давать разные ранние значения. |
Закрыт ли последний период | Меняющаяся цена текущего периода не равна завершённому закрытию. |
Прокрутите вбок, чтобы сравнить все столбцы ↔
Калькулятор принимает последовательность чисел, а не временные метки или рыночный поток. Он не может проверить, что строки действительно соответствуют закрытым, равноотстоящим периодам. Установите это по источнику до вставки. Одинаковые цены подряд допустимы; пропущенный период — другая ситуация, которую нельзя заменять придуманным нулём.
Рассчитайте SMA и выберите начальное значение EMA
SMA — простая скользящая средняя, EMA — экспоненциальная скользящая средняя. Для строки t простая скользящая средняя равна SMAₜ = (pₜ₋ₙ₊₁ + … + pₜ)/N. При требовании полного окна она появляется в строке N, когда накоплены N наблюдений. В строках с 1 по N − 1 значения ещё нет. Справка MetaQuotes о скользящих средних описывает арифметическое среднее и рекуррентную формулу EMA; отдельное правило старта из раздела сглаженной средней SMMA не следует принимать за правило инициализации EMA.
В этом гайде α = 2/(N + 1), β = 1 − α. После инициализации EMAₜ = αpₜ + βEMAₜ₋₁. Объяснение CME приводит этот множитель и допускает начальную SMA либо предыдущее закрытие как стартовое значение. Описание EMA от TradingView также использует экспоненциальное обновление с коэффициентом сглаживания 2. Эти описания метода не устанавливают единственный старт для любой платформы, длины истории и настройки.
Явный вариант в калькуляторе | Первое доступное значение EMA | Следующие строки |
|---|---|---|
Старт с первой SMA | В строке N: среднее цен 1…N | Рекуррентная формула применяется с N + 1. |
Старт с первой цены | В строке 1: p₁ | Рекуррентная формула применяется со строки 2. |
Прокрутите вбок, чтобы сравнить все столбцы ↔
Старт с первой цены здесь означает первую цену именно введённого ряда. Это не утверждение, что вы передали всю предшествующую историю платформы или её неизвестное предыдущее значение EMA. Оба варианта используют одинаковую α. Выбор начального значения — условие численной сверки, а не рекомендация торговать по определённому индикатору.
При N = 1 получаем α = 1 и β = 0. SMA и оба варианта EMA равны текущей цене в каждой строке. Если N равно длине ряда, SMA и EMA со стартом с SMA появляются только в последней строке. При длине ряда больше одного значения EMA со стартом с первой цены доступна раньше, потому что для её инициализации нужно одно число.
Повторите полный пример из пяти цен
Возьмите придуманный ряд 100, 110, 90, 110, 100 — цены в USD для неназванного учебного инструмента. Каждая строка обозначает завершённый период одинаковой длины внутри упражнения; это не рыночные наблюдения. Установите N = 3, тогда α = β = 1/2. До финального отображения сохраняйте дроби или полную численную точность.
Строка | Цена, USD | SMA, USD | EMA: старт с SMA, USD | EMA: старт с первой цены, USD |
|---|---|---|---|---|
1 | 100 | Недоступно | Недоступно | 100 |
2 | 110 | Недоступно | Недоступно | 105 |
3 | 90 | 100 | 100 | 97,5 |
4 | 110 | 310/3 ≈ 103,333333333333333 | 105 | 103,75 |
5 | 100 | 100 | 102,5 | 101,875 |
Прокрутите вбок, чтобы сравнить все столбцы ↔
Первая полная SMA: (100 + 110 + 90)/3 = 100. В строке 4 окно содержит 110, 90, 110 и даёт 310/3; в строке 5 это 90, 110, 100, и результат равен 100. При добавлении новой цены самая старая полностью покидает окно SMA.
EMA со стартом с SMA начинается в строке 3 со значения 100. Строка 4: 0,5 × 110 + 0,5 × 100 = 105; строка 5: 0,5 × 100 + 0,5 × 105 = 102,5. EMA со стартом с первой цены начинается со 100 в строке 1; далее получаются 105, 97,5, 103,75 и 101,875. Цены и множитель одинаковы, различается инициализация.
Последняя EMA со стартом с SMA минус последняя EMA со стартом с первой цены: 102,5 − 101,875 = 0,625 USD. Это разность двух средних цен, а не 0,625%, доходность или торговая прибыль. В строке 3 расхождение равно 2,5; следующие два обновления дважды умножают его на β: 2,5 × 0,5² = 0,625. Так можно выделить влияние старта, не меняя данные.
Объясните выбранную строку через веса
Полезная сверка показывает, почему получилось именно это число. У SMA последние N цен имеют вес 1/N, а все более ранние — нулевой вес. У EMA для конечной введённой истории можно явно выписать веса с учётом начального значения. Если отбросить его вклад, сумма весов окажется меньше единицы, а средняя будет занижена.
При старте с SMA в строке t ≥ N каждая из первых N цен имеет вес β^(t − N)/N. Каждая более поздняя цена pⱼ, где j > N, имеет вес αβ^(t − j). При старте с первой цены вес p₁ равен β^(t − 1), а вес pⱼ при j ≥ 2 — αβ^(t − j). Это веса для выбранной строки, без участия ещё не наступивших наблюдений.
Цена при разборе строки 5 | Вес SMA | Вес EMA со стартом с SMA | Вес EMA со стартом с первой цены |
|---|---|---|---|
p₁ = 100 | 0 | 1/12 | 1/16 |
p₂ = 110 | 0 | 1/12 | 1/16 |
p₃ = 90 | 1/3 | 1/12 | 1/8 |
p₄ = 110 | 1/3 | 1/4 | 1/4 |
p₅ = 100 | 1/3 | 1/2 | 1/2 |
Сумма весов | 1 | 1 | 1 |
Прокрутите вбок, чтобы сравнить все столбцы ↔
Умножьте каждую цену на её вес и сложите вклады. EMA со стартом с SMA в строке 5: 100/12 + 110/12 + 90/12 + 110/4 + 100/2 = 102,5 USD. EMA со стартом с первой цены: 100/16 + 110/16 + 90/8 + 110/4 + 100/2 = 101,875 USD. Веса безразмерны, а вклады и итоговая средняя выражены в USD.
Разбор показывает все наблюдения до выбранной строки, включая нулевые веса SMA, и суммы вкладов. Если метод ещё недоступен в этой строке, его веса и средняя также остаются недоступны. При N = 1 текущая цена имеет вес один, все прежние — ноль; трактовать неоднозначную степень ноль в нулевой степени не требуется.
Проверьте свой ряд и выберите строку для разбора
Проверьте SMA, EMA и веса исходных цен
Вставьте последовательные цены закрытия в одних единицах. Сравните средние, выберите начальное значение EMA и разберите вклад каждой предыдущей цены.
Используйте закрытые периоды равной длины в исходном порядке. Калькулятор не проверяет пропущенные рыночные периоды, сессии, корректировки или закрытие свечи. Он не рекомендует индикатор или торговый период.
Компонент хранит ввод в памяти страницы. Он не отправляет данные на сервер и не записывает их в постоянное хранилище браузера. Общая аналитика сайта рассматривается отдельно.
Фиксированный учебный эталон · отдельно от ваших данных
Цены 100, 110, 90, 110, 100 USD; N = 3; α = 1/2. В эталоне выбрано начало с SMA и разобрана строка 5. Цены придуманы для обучения, это не датированные рыночные наблюдения.
Последовательных цен: 5 · N = 3 · единица: USD.
Выбранная EMA: EMA с началом от первой SMA.
- α · коэффициент обновления EMA
- 0,5
Показать точное значение
- Точная дробь
- 1/2
- Точная десятичная запись
- 0,5
- β = 1 − α
- 0,5
Показать точное значение
- Точная дробь
- 1/2
- Точная десятичная запись
- 0,5
- SMA · Строка 5 · USD
- 100
Показать точное значение
- Точная дробь
- 100/1
- Точная десятичная запись
- 100
- Выбранная EMA · Строка 5 · USD
- 102,5
Показать точное значение
- Точная дробь
- 205/2
- Точная десятичная запись
- 102,5
Разница начальных методов в последней строке: 0,625 USD = EMA с началом от SMA − EMA с началом от первой цены.
- Цена закрытия
- SMA
- Выбранная EMA
График — визуальное приближение. Сравнивайте цифры по таблице и точной выгрузке; пересечения линий не являются торговыми рекомендациями.
Переведите фокус на область таблицы и прокручивайте её по горизонтали клавишами со стрелками.
| Строка | Цена | SMA | EMA · начало с SMA | EMA · начало с первой цены |
|---|---|---|---|---|
| 1 | 100 Показать точное значение
| Пока недоступно | Пока недоступно | 100 Показать точное значение
|
| 2 | 110 Показать точное значение
| Пока недоступно | Пока недоступно | 105 Показать точное значение
|
| 3 | 90 Показать точное значение
| 100 Показать точное значение
| 100 Показать точное значение
| 97,5 Показать точное значение
|
| 4 | 110 Показать точное значение
| ≈ 103,333333333333333 Показать точное значение
| 105 Показать точное значение
| 103,75 Показать точное значение
|
| 5 | 100 Показать точное значение
| 100 Показать точное значение
| 102,5 Показать точное значение
| 101,875 Показать точное значение
|
Веса и вклады цен в строке 5
Веса безразмерны; каждый вклад выражен в единицах цены. Предыдущие цены вне окна SMA имеют нулевой вес. Включены только цены, доступные к выбранной строке.
| Исходная строка | ЦенаUSD | Вес SMA | Вклад в SMAUSD | Вес выбранной EMA | Вклад в выбранную EMAUSD |
|---|---|---|---|---|---|
| 1 | 100 Показать точное значение
| 0 Показать точное значение
| 0 Показать точное значение
| ≈ 0,0833333333333333333 Показать точное значение
| ≈ 8,33333333333333333 Показать точное значение
|
| 2 | 110 Показать точное значение
| 0 Показать точное значение
| 0 Показать точное значение
| ≈ 0,0833333333333333333 Показать точное значение
| ≈ 9,16666666666666667 Показать точное значение
|
| 3 | 90 Показать точное значение
| ≈ 0,333333333333333333 Показать точное значение
| 30 Показать точное значение
| ≈ 0,0833333333333333333 Показать точное значение
| 7,5 Показать точное значение
|
| 4 | 110 Показать точное значение
| ≈ 0,333333333333333333 Показать точное значение
| ≈ 36,6666666666666667 Показать точное значение
| 0,25 Показать точное значение
| 27,5 Показать точное значение
|
| 5 | 100 Показать точное значение
| ≈ 0,333333333333333333 Показать точное значение
| ≈ 33,3333333333333333 Показать точное значение
| 0,5 Показать точное значение
| 50 Показать точное значение
|
| Сумма весов · Без единицы | 1 Показать точное значение
| 1 Показать точное значение
| |||
| Сумма произведений цены на вес · USD | 100 Показать точное значение
| 102,5 Показать точное значение
| |||
Сумма вкладов равна среднему, показанному для этой строки.
Основное отображение содержит до 18 значащих цифр. Знак ≈ означает сокращённую или бесконечную десятичную запись. Точные дроби и полные конечные десятичные значения доступны под каждым числом и в CSV; отображаемые округления не используются в расчёте.
Эталонные файлы и протокол проверки
Статические файлы описывают фиксированный пример, а не текущий ввод. CSV исходных цен содержит заголовок: копируйте в форму только значения, по одному на строку. Импорта CSV нет.
Вставьте одну цену на строку, от старой к новой, без заголовка. Точка или запятая могут быть десятичным разделителем, но запятая не разделяет наблюдения: 100,5 — одно число. Не вставляйте CSV-таблицу, обозначения валют, разделители тысяч или экспоненциальную запись. Входной CSV для скачивания содержит заголовок и эталонные значения; копируйте в форму только ячейки цен. Это поле не является импортом CSV.
Допустимы 1–240 положительных цен, каждая не больше 1 000 000 000 и не более чем с 12 знаками после десятичного разделителя. Ограничения: 80 символов на строку и 20 000 на весь ввод. Один перенос строки в конце разрешён. Пустые строки в начале или внутри ряда вызывают ошибку: отсутствующее наблюдение нельзя незаметно удалить. Ноль, отрицательные значения, нечисловые и неконечные записи отклоняются.
Задайте целое N от 1 до числа цен, подпись единиц длиной 1–24 символа и один из двух вариантов старта EMA. Подпись должна начинаться с буквы или цифры; далее допустимы буквы, цифры, пробелы и . _ - /. Она обозначает данные и не выполняет конвертацию валют. После расчёта доступны обе EMA и SMA; выбранный вариант EMA используется на графике и при разборе весов.
Изменение цен, N, единиц или начального значения скрывает прежний расчёт и его CSV до нового запуска. Выбор другой строки разбора лишь перемещает вас по рассчитанным данным и не удаляет результат. Пресеты с эталоном, постоянным рядом и всплеском являются учебными примерами, а не рекомендованными настройками или проверенными стратегиями.
На всех этапах сохраняются точные дроби. Периодические десятичные дроби и сокращённые для отображения значения явно помечаются как приближения; используется 18 значащих цифр. Округлённое отображение не возвращается в рекуррентную формулу. Если нужны дополнительные цифры, откройте точную выгрузку. Полная эталонная таблица и статический CSV расчёта доступны без JavaScript вместе с исходным CSV и протоколом проверки.
Компонент хранит ввод в памяти страницы, не отправляет его на сервер и не записывает в постоянное хранилище. Общая аналитика сайта — отдельный вопрос. Без JavaScript интерактивные элементы отключены, но полный фиксированный пример и файлы остаются доступными.
Проверьте SMA и EMA в Excel или другой таблице
Поместите пять эталонных цен в B2:B6, от старой к новой. В H2 задайте N = 3, в H3 — формулу =2/(H2+1) для α. Столбец C используйте для SMA, D — для EMA со стартом с SMA, E — для EMA со стартом с первой цены. Первые две ячейки столбцов C и D оставьте пустыми: нули создали бы несуществующие ранние средние.
Ячейка или диапазон | Формула или действие | Ожидаемый результат |
|---|---|---|
C4 | =SUM(B2:B4)/$H$2 | 100 |
C5 | =SUM(B3:B5)/$H$2 | 310/3 |
C6 | =SUM(B4:B6)/$H$2 | 100 |
D4 | =C4 | 100 |
D5 | =$H$3*B5+(1-$H$3)*D4 | 105 |
D6 | =$H$3*B6+(1-$H$3)*D5 | 102,5 |
E2 | =B2 | 100 |
E3 | =$H$3*B3+(1-$H$3)*E2; протянуть до E6 | E6 = 101,875 |
F6 | =D6-E6 | 0,625 USD |
Прокрутите вбок, чтобы сравнить все столбцы ↔
Для другого N перенесите первую полную SMA и старт EMA на строку, содержащую N-ю цену, затем продолжите ту же логику. Недостаточно изменить только H2, оставив в формулах окно из трёх цен. Длина окна, первая доступная строка и диапазон начального среднего должны соответствовать N.
Здесь приведено английское имя SUM; в русской версии Excel это СУММ. Десятичный разделитель также зависит от локальных настроек. Ссылки на ячейки и смысл арифметики остаются прежними. Отделяйте формат отображения от расчёта: не добавляйте ОКРУГЛ в каждое обновление. Обычные таблицы имеют конечную численную точность, поэтому последние отображаемые цифры не обязаны совпадать с точной дробью произвольной длины.
В выгрузках точные числитель и знаменатель отделены от десятичного отображения. Импортируйте поля с дробями и длинными целыми как текст, чтобы избежать преобразования в даты и потери цифр. Полезная сверка сопоставляет эталонные значения, суммы весов и суммы вкладов; скриншот округлённого графика сам по себе не подтверждает весь расчёт.
Разберите расхождение, не придумывая недостающую историю
Сравнивайте с первой строки, в которой оба расчёта доступны. Если цены совпадают, а EMA различается уже при старте, сначала зафиксируйте различие инициализации. При одинаковых α и последующих ценах существующее расхождение умножается на β при каждом обновлении. Это объясняет постепенное сближение, но не доказывает, что неизвестное начальное значение восстановлено.
- Разная история: первая вставленная цена может быть гораздо позднее начала ряда другой системы. Запишите, каких ранних данных или предыдущего значения EMA не хватает.
- Разное закрытие: проверьте определения Bid, Ask, последней сделки и других полей вместо предположения, что все close одинаковы.
- Разные периоды: сравните часовой пояс, сессию, границы агрегации и завершённость всех периодов.
- Скорректированные данные: укажите правила корректировки там, где они применимы; не смешивайте скорректированную и исходную историю.
- Разные правила расчёта: подтвердите N, множитель, инициализацию и промежуточное округление. Название EMA 3 не раскрывает этих условий.
Гайд о бэктестинге рассматривает отдельную задачу: использовать информацию только после её появления. Здесь проверяется более узкий вопрос: более поздняя цена не должна менять ранее рассчитанную среднюю. Калькулятор не моделирует заявки, не оценивает стратегию и не проверяет исторический поток терминала.
В протоколе сохраните источник, определение цены, единицы, интервал, сессию, диапазон наблюдаемых периодов, старт и нерешённые вопросы. Если история или правило неизвестны, укажите пробел, а не подгоняйте данные до совпадения двух округлённых чисел.
Читайте результат в пределах его смысла
В строке 5 примера с N = 3 новая цена получает вес 1/2 в обоих вариантах EMA, а в SMA — 1/3. Это конкретное различие весов. EMA сохраняет убывающие вклады более ранней истории; SMA исключает наблюдения за пределами своего окна. Из этих определений не следует универсально лучший период или прибыльное пересечение линий.
Поскольку веса здесь неотрицательны и в сумме равны единице, средняя лежит внутри диапазона участвующих цен. Постоянный положительный ряд даёт ту же константу после появления каждого метода. Умножение всех цен на положительный коэффициент умножает все доступные средние на него; прибавление константы сдвигает их на эту константу, если новые исходники остаются допустимыми.
Скользящая средняя сглаживает уровни цен. Она не измеряет разброс изменений цены — это другая задача, которую разбирает гайд о волатильности Forex. Ни график, ни учебный пресет со всплеском не измеряют торговый риск, не предсказывают будущее закрытие и не рекомендуют вход или выход.
Проверяемый итог — запись расчёта: точные исходники и условия, доступные SMA и EMA, веса выбранной строки и перечень недостающих доказательств. Точная арифметика устанавливает следствия из этих данных. Она не подтверждает совпадение данных с конкретной платформой или прогностическую ценность индикатора.
Частые вопросы
EMA использует только последние N цен?
Нет, за исключением N = 1. Здесь N задаёт α = 2/(N + 1). При N > 1 более ранние наблюдения после инициализации продолжают участвовать с убывающими весами. SMA использует только текущее окно из N цен. При N = 1 оба метода используют только текущую цену.
Почему одна EMA появляется раньше SMA?
Для старта с первой цены достаточно p₁, поэтому значение есть со строки 1. Старту с SMA нужны N цен, и он начинается в строке N. Ранее недоступные значения не являются нулями.
Какое начальное значение EMA правильное?
Оба варианта — явно определённые расчёты. Для сверки используйте правило и историю проверяемого ряда, если они известны. Гайд не устанавливает универсальный старт платформы и не выбирает лучший торговый индикатор.
Можно удалить пустые строки перед вставкой?
Только после выяснения их смысла в источнике. Пропуск периода — не обычный пробел форматирования. Калькулятор отклоняет пустые строки в начале и внутри ряда, не сжимая время и не подставляя нули; один перенос в конце допускается.
Нужно округлять каждое обновление EMA в Excel?
Для сравнения с этой точной моделью — нет. Сохраняйте промежуточные расчёты с доступной таблице точностью и форматируйте итог. Если другая система намеренно округляет каждый шаг, запишите это как отдельное правило вычисления.
Результат точно совпадёт с торговой платформой?
Такое ожидание обосновано только при одинаковых исходниках и правилах. Сначала проверьте историю, определение close, границы сессий, N, старт и округление. Калькулятор не загружает данные платформы и не подтверждает совпадение с ней.