Skip to content
All library documents

Normalizing Technical Indicator Time Series for Neural Networks

Article Quant Q&A · Author: Rıdvan Sözen

Summary

The document discusses preparing technical indicator time series as inputs to a neural network. It presents two basic transformations: use differences between consecutive observations, or use percentage changes to express relative movement. When combining multiple signals, their magnitudes should be checked and scaled as needed so that one feature does not dominate simply because of its units or range.

The guidance is introductory rather than a complete preprocessing recipe. The appropriate transformation depends on what an indicator measures, and the document does not compare methods empirically or specify model architecture, validation procedures, or safeguards against look-ahead bias. It also points toward fractional differentiation as a more advanced way to address time-series feature properties, without explaining how to implement or evaluate it.

Key ideas

  • Consecutive differences can represent changes in time-series indicators.
  • Percentage changes express relative movement between adjacent observations.
  • Feature scales should be checked when multiple indicators enter a neural network.
  • The best normalization choice depends on the indicator and the modeling context.

Tags

Full text
# Algorithmic Trading: Normalization and Selection of Technical Indicators for Artificial Neural Networks


# Algorithmic Trading: Normalization and Selection of Technical Indicators for Artificial Neural Networks












I study on algorithmic trading for a while based on technical indicators. I started to learn about neural networks and want to use technical trading indicators in this approach.

However, I am not sure how to normalize, read past questions, but there is no clear answer.

Is there anybody who can suggest a starting point?

## Answer by Ian Ash (score 5)

https://quant.stackexchange.com/a/44443

This question is broad, and the normalisation strategy is going to depend on the nature of your indicator.

Assuming the technical indicators are a time series, then two simple approaches for normalising your data are:

- Calculate the difference between each time step. If you are feeding multiple signals into a neural network you should confirm the values are of similar magnitude, and scale if necessary (obviously your features will not be neatly bounded [0,1] unless that's the nature of the indicator). An easy to understand Python tutorial using this strategy can be found in the Microsoft Cognitive Toolkit; or

- Calculate the returns / percentage change of the indicator at each time step which will give you a scaled result between 0 and 1. i.e. `(t2 - t1) / t1` where `t1` is the signal at time step 1 and `t2` is the signal at time step 2.

Machine Learning Mastery is a good resource for tutorials that will include appropriate normalisation steps for different sorts of features with a strong focus on time series data, and to a degree for different deep learning models.

Finally, if you are up to the challenge, review the chapter Fractionally Differentiated Features in Advances in Financial Machine Learning by Marcos Lopez De Prado. Excellent thinking and review of the challenges of dealing with the kinds of features you want to use.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.