Knowledge >> Trading signals

Trading signals

Most expert advisors use signals based on indicators or price movement to enter or exit positions. In this short article we will describe several ways of obtaining trading signals. The following signal types are the most commonly used:

Crossover of indicator lines


Moving average crossing Stochastic crossing

Price above/below the indicator line


Price crossing moving average

Indicator above/below certain level


RSI signal

Slope of indicator line above/below certain angle


Moving average slope

Triggering signals

Once we know what types of signals we want to use, it is time to decide, when these signals should be triggered. There are at least two possibilities:

Using current price or indicator value

This allows to react immediately and doesn't cause any lagging. The drawback is that we may get many false signals, when the price or indicator value moves back and forth in a short period of time. We may also get signals, when there is no real crossover. It happens when the price gets above the trigger level, but then moves back and stays below it. The rectangles show correct crossover signals and the circle marks two incorrect signals occurring on the same bar.

Immediate signals

Using values from the previous bar close

The signal is triggered at the beginning of a new bar, but the values it uses are taken from the previous bar close. This way we won't get incorrect signals, but we have to wait longer and our EA may get too late for the party. In case of higher timeframes, this waiting time can be quite meaningful.

End bar signals


Sometimes we may need to reduce the number of signals we are getting from our EA and keep only the most profitable ones. This is a task for filters. Below we present a few methods of filtering signals.

Using another indicator

The most popular way of filtering signals is to use another indicator as a filter. For instance, a long trade can be opened only when the filtering moving average is rising.

Only once per bar

This filter is useful, when we use signals based on current price and we want to avoid the situation, when the indicator oscillates near the trigger level sending many false signals. The filter allows only for the first signal in every bar, discarding all others.

Only once per N bars

This filter allows only for one signal in every N bars. Another words, the signals must be at least N bars away from each other.

Only once per N minutes/hours

This filter works similarly to the previous one. However, it gives better control, since we can adjust the minimum period between signals in hours, minutes or even seconds.

Trading days/hours

Sometimes we may not want to enter positions in certain periods of time. This filter allows us to choose days or hours, when trading is turned on. For example, we may only want to trade between 10:00 and 14:00 and not trade on Fridays. Other application is trading only during one session, for instance only during Asian session.

Minimum time from crossing

This filter uses certain amount of time (in hours, minutes or seconds) that has to pass after the moment of crossing for the signal to be valid. This reduces the number of false signals, but also introduces a significant lag to the system.

Crossing only above/below certain level

This simply means that the signal is only valid when the crossing takes place below or above a specified level. For example, we may want to use the crossing of the lines of Stochastic indicator, but only when the crossing occurs above the level of 70 or below the level of 30.

It is worth to mention that all methods described above can be applied both to entry and exit signals. We may want to use the same method for entry and exit, but we may also use different methods. We can also combine two or more methods into more complex conditions. Everything depends on your needs and creativity.