I think a loop would be easier to read, but just for fun, here's a solution in Python using recursion:
x = [-0.01, 0.003, -0.002, 0.018, 0.002, 0.006, -0.012, 0.014, -0.017, -0.007, 0.002, 0.002, -0.004, 0.015, 0.002, -0.001, -0.008, 0.01, -0.018, 0.046]def sign(number): return 1 if number > 0 else -1def sum_previous(pos, result=None): if not result: result = x[pos] else: result += x[pos] if pos == 0 or sign(x[pos]) != sign(x[pos-1]): return result else: return sum_previous(pos-1, result)results = [sum_previous(i) for i in range(len(x))]print(results)