Gabri, thanks, your answer helped me a lot!
Saleh, I'm about to fill any *MA indicators with custom source, not only with close, high, low, open, volume.
The simplest solution that I found out to achieve this is:
# In stratege file
# Prepare custom source
return abs(np.subtract(self.candles[:, 1], self.candles[:, 2]))
# Feed talib EMA with that custom source
return talib.EMA(self.custom_source, timeperiod=5)[-1]
We can also create a custom indicator that any source can receive as input.