The activation function you choose depends on the application you are building/data that you have got to work with. It is hard to recommend one over the other, without taking this into account.
Here is a short-summary of the advantages and disadvantages of some common activation functions:
What does the author mean with ReLU when I'm dealing with positive values, and a linear function when I'm dealing with general values.
ReLU is good for inputs > 0, since ReLU = 0 if input < 0(which would kill the neuron, if the gradient is = 0)
To remedy this, you could look into using a Leaky-ReLU instead.
(Which avoids killing the neuron by returning a non-zero value in the cases of input <= 0)