how to Iterate over column
I would suggest using a Pandas DataFrame (you didn't mention it in your question).

Then it would be as simple as the following


Create the dataframe from you list x, calling the single column x:

In [1]: import pandas as pd
In [2]: df = pd.DataFrame(x, columns=["x"])   # x is defined in your question

Add a new column (I call it action), which holds your result. As it will be either -1 or +1, I fill it all with +1 to begin with, then only change the values to -1 where your criteria is met:

In [3]: df["action"] = 1

In [4]: df.head()                                                               
Out[4]: 
         x  action
0  2352.60     1
1  2410.26     1
2  2443.31     1
3  2525.78     1
4  2506.58     1

Use the diff() method to find the difference between each row of x. If the difference is less that zero, we can make action equal to -1.

In [5]: df.action[df.x.diff() &lt; 0] = -1

In [6]: df                                                                                                 
Out[6]: 
          x  action
0   2352.60       1
1   2410.26       1
2   2443.31       1
3   2525.78       1
4   2506.58      -1
5   2530.69       1
6   2530.49      -1



If you want to shift the difference up one row, because of your rule:


  Action [ i ] = (-1) if x[ i+1 ] &lt; x[ i ]


Then you simply include that in the assignment part, filling the action column from the start index to the penultimate element:

In [7]: df.action[:-1] = df.action[1:]

In [8]: df.head()
Out[8]:
          x  action
0   2352.60     1.0
1   2410.26     1.0
2   2443.31     1.0
3   2525.78    -1.0
4   2506.58     1.0
5   2530.69    -1.0


Note that the last row will contain a value that could be wrong (you cannot know, without knowing the next value of x).



After edit from OP

If you want to do it in normal lists, you can do this:

In [9]: action = []

In [10]: for i, val in enumerate(x): 
     ...:    if i == (len(x) - 1): break 
     ...:    if x[i+1] &lt; val: 
     ...:        action.append(-1) 
     ...:    else: 
     ...:        action.append(1) 

In [11]: action[:10]         # Look at the first ten elements                                                                                  
Out[11]: [1, 1, 1, -1, 1, -1, 1, 1, -1, -1]


enumerate iterates through the iterable you give it (here, x) and also returns the index of the current element.  We need the check that we do not exceed the length of x, because we check i + 1 each time, so could try to check a value one element too far in the list x.