Расхождение экспоненциальной скользящей средней? - PullRequest
0 голосов
/ 03 мая 2020

У меня есть следующий pandas объект. Это кадр данных временного ряда OHL C.

enter image description here

Я хотел бы рассчитать EMA30 столбца close. Для этого я использовал 2 разных подхода, просто в качестве теста.

# Approach A, as explained by sentdex in this video:
# https://youtu.be/t_JXXT7VgeQ?list=PLbLcS9xv6IuGi8uyxMP3-BN-lTRQNpqEG&t=245
def ExpMovingAverage(values, window):
    weights = np.exp(np.linspace(-1., 0., window))
    weights /= weights.sum()
    a = np.convolve(values, weights, mode='full')[:len(values)]
    a[:window] = a[window]
    return a

# Approach B
pd.Series.ewm(local_df['close'].copy(), span=30).mean()

После вычисления я добавляю их в соответствующие новые столбцы.

# EMA30 (Using approach A)
local_df['ema30_a'] = pd.Series.ewm(local_df['close'].copy(), span=30).mean()

# EMA30 (Using approach B)
x = local_df['close'].values
calculate_ema30_b = ExpMovingAverage(x, 30)
local_df['ema30_b'] = calculate_ema30_b

Полученный кадр данных ниже : enter image description here

Тем не менее, после построения графика кажется, что pandas (синий) отличается от других подходов, основанных на numpy (красный). В таком случае, какой из методов расчета является правильным?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...