
Для прогрева (инициализации) индикатора EMA(10) (экспоненциальная скользящая средняя с периодом 10) нужно:
| Кол-во баров | Что это даёт |
|---|---|
| 10 | Минимум, чтобы начать EMA |
| ~20–30 | Более стабильное значение EMA |
| >30 | EMA хорошо «вышла на режим» |
EMA считается рекурсивно:

Первое значение EMA часто инициализируется как SMA(10) — простая средняя из первых 10 значений.
После этого EMA начинает «реагировать» на рынок, но вначале она ещё «зависит» от начальных условий.
На практике применяют эмпирическое правило:
Для EMA(10) → 30–50 баров данных.
Минимум: 10 баров, чтобы EMA вообще появилась.
Рекомендуется: 30+ баров, чтобы значения EMA стали «реальными» и пригодными для торговли или анализа.
import pandas as pd import numpy as np import matplotlib.pyplot as plt # Sample data np.random.seed(0) prices = pd.Series(np.random.normal(loc=100, scale=2, size=30)) period = 10 # 1 Standart ema_classic = prices.ewm(span=period, adjust=False).mean() # calc from 5pos start=5 ema_part = prices.iloc[start:].ewm(span=period, adjust=False).mean() prefix = pd.Series([np.nan] * start, index=prices.index[:start]) ema_classic2 = pd.concat([prefix, ema_part]) ## %matplotlib inline plt.figure(figsize=(12, 8)) plt.plot(prices, label="Цена") plt.plot(ema_classic, label="EMA Classic") plt.plot(ema_classic2, label="EMA Classic2") plt.legend() plt.title("Сравнение EMA") plt.show()Я обычно добавляю 1-2 точки к началу ВР, так:
Исходный ряд: х0, х1, х2...
Модифицированный ряд: х0, х0, х0, х1, х2… Да, ема(х0,10) = х0.
Тогда через 10 отсчетов (к х9) ема(10) должна сходиться к ема(10), построенной из минус бесконечности. Если, конечно, ема честная.
второй вариант как будто данные есть только с 5 бара
Ну и разницу видно
На всяк случай, я еще plt.grid() перед plt.show() на автомате пишу. График лучше смотрится.
А так-то можно взять Truncated-EMA, у которых нет таких проблем, потому что они считаются немного по другому.
Всяческие модификации МА я не использую из за неочевидности физ смысла, а, стало быть, и неоднозначности толкования их значений.
Графики для EMA(10)
Значит Желтая выходит на норма после 10 по оси Х
А Зеленая EMA(10) стартует с 5, значит на норму выход после 15
Но оди разные на 15 по оси Х
И даже на 20 по оси Х они разные, а совпадать начинают примерно после 25 по оси Х.
В чем проблема проверить то, берешь синусоидальный сигнал, пропускаешь через индикатор и видишь результат, если что можно сравнить со стандартной EMA
Ну попробуй сам проверь, «забывает» то как раз примерно после 2.5*период