Я не совсем уверен, что эти функции пытаются сделать, было бы неплохо, если бы вы могли дать объяснение.Чтобы ответить на ваш вопрос относительно длины списка ema_list, который мы можем проверить, если вы на самом деле меняете его.
Здесь вы инициализируете список ema_list с двумя значениями:
ema_list = [sma, first_ema_value]
После этого вы повторяете два шагов в цикле
for i in data_list[:2]:
Итак, чтобы ответить на ваш вопрос: причина в том, что результирующий список ema_list имеет длину 4, состоит в том, что вы инициализируете его двумя значениями изатем добавьте еще 2 значения.Если вы хотите перебрать все значения в data_list, измените
for i in data_list[:2]:
на
for i in data_list:
Удачи!