Не должен, но может, если очень хочется.
2й вариант ближе к текущей "реальности".
"Контракт" индикатора с программой заключается в строке (в Вашем случае):
public IList<double> Execute(IList<double> list1)
это значит, что программа дает индикатору список значений и ждет в ответ тоже список. Неявно подразумевается, что длины списков должны быть одинаковы.
Список каждый раз будет разным, но этого никто не гарантирует.