Forex Blog

First-hand Forex trading experience and information about foreign exchange market that will be useful to traders


Most Trending Currency Pairs in Forex + TrendStats Script

February 17, 2020 by

Quite some time has passed since I published my last post on the Forex pairs that trend the most. A lot of stuff has changed since then and because a lot of readers have asked me to post an update, I am finally doing it today. But not only that, I am also sharing here a script that you can use to calculate trend statistics for any set of trading instruments and timeframes.

Measuring a trendedness of a currency pair (or any other trading instrument) is always a challenge. It is accentuated by the problem of this trendedness changing over time. A currency pair might be trending strongly one year and be completely trendless the next year. Still I believe that it is possible (and important if you trade the trend) to compare trendedness of currency pairs based on a set of metrics to get better understanding of which currency pairs trend the most and also how exactly they trend.

The post below analyzes 10 currency pairs based on five metrics. It explains how these metrics work and why they can serve as a rough proxy of a pair’s trendedness.

Currency pairs

For the analysis, I chose 10 currency pairs that three conditions: they are very liquid (according to the 2019 Triennial Central Bank Survey), they have low spreads, they are readily available at retail Forex brokers. For example, I have omitted a rather liquid USD/CNY currency pair (which is the 6th most liquid in the world) because it is available only at few brokers, its spreads are high, and trading is severely restricted by the People’s Bank of China. Instead, we will look at the following currency pairs for this study (presented in alphabetical order):



We use the following methods to assess the trendedness of the currency pairs:

  • Mean and median rate of change.
  • Mean and median volatility.
  • Average and median number of consecutive closes above/below a 50-period simple and exponential moving averages.
  • Mean number of consecutive Higher High + Higher Low or Lower Low + Low High occurrences.
  • Mean number of consecutive bullish or consecutive bearish candles.

Rate of change is calculated as previous Close minus current Close and divided by previous Close to get the percentage value. Obviously, this is a crude method of analysis. However, it can give us some hints on the pairs that trend often.

Currency pair’s volatility is calculated as candle’s High minus Low divided by its Open. It is calculated in percentage points too.

The above calculation would be only a starting point. To identify the best of the trending currency pairs, we need to calculate precisely the number of periods a pair had been in a trend during some span of time. We need a dependable indicator to identify trend in three different timeframes. We use moving average for that purpose. We calculate the mean and median number of consecutive closes above/below the moving average. By ranking the average of the number of closes above/below a moving average, we can get additional insights regarding how trending the pairs are. Beginners are often advised to use an exponential moving average instead of a simple one as the former lags less (i.e. it follows a trend more quickly). We verify that as well by applying the calculations to both simple and exponential 50-period moving averages.

Consecutive Higher High + Higher Low or Lower Low + Lower High show exactly that — the streaks of bars that are form according to one of the most popular definitions of trend.

Consecutive bullish and bearish candles show how likely is a bearish candle is to be followed by other bearish candles and the same for bullish ones.

All calculations are repeated on three timeframes: daily, weekly, and monthly. All currency pairs are analyzed using the data of 5 years back from February 17, 2020. The data is derived from MetaTrader 5 platform with a server in GMT+2 time zone, which means that the weekly session goes from Monday 00:00 to Friday 23:59.


Rate of change

We can calculate the absolute change in the exchange rate of a currency pair in a given period (day, week, month), using the following formula:

Change~T1 = {{delim{|}{Close_1 - Close_2}{|}} / Close_2} * 100%

Mean~change = (T_1 + T_2 + T_3 + cdots + T_{N-1}) / {N - 1},

where N is the total number of periods.

The median rate of change is calculated by sorting the individual rates of changes (Tn) and either picking the middle one (for odd number) or calculating the mean of the two middle-most rates of change.

We have to use the percentage values because direct (pips) rate of change would differ significantly among currency pairs as their exchange rates are not comparable.

The table provides the 5-year mean and median percentage (%) rate of change values for the studied currency pairs for three timeframes from February 18, 2015, until today.

Currency pair Daily Weekly Monthly
Mean Median Mean Median Mean Median
AUD/USD 0.45 0.36 0.98 0.84 2.24 1.96
EUR/GBP 0.40 0.30 0.89 0.73 1.68 1.25
EUR/JPY 0.40 0.29 0.95 0.68 1.83 1.42
EUR/USD 0.37 0.28 0.85 0.68 1.57 1.33
GBP/JPY 0.51 0.37 1.28 0.95 2.71 2.32
GBP/USD 0.43 0.33 1.06 0.89 1.91 1.68
NZD/USD 0.49 0.41 1.12 0.98 2.64 2.45
USD/CAD 0.35 0.27 0.80 0.65 1.73 1.28
USD/CHF 0.36 0.28 0.87 0.76 1.67 1.34
USD/JPY 0.37 0.27 0.93 0.70 1.83 1.26

The table above shows how mean and median changes (per day, per week, and per month) differ among currency pairs. The first thing that is noticeable is that they don’t vary by a lot — there isn’t a case where one currency would show twice the average change of the other. Let’s look at the charts below to better analyze the differences among the currency pairs average change for the period.

Judging by the mean change, the clear winner across all timeframes is GBP/JPY. It is closely followed by NZD/USD, which is also the leader when it comes to median changes. Still, the 0.51% mean daily change of GBP/JPY isn’t much greater than 0.35% mean daily change of USD/CAD (which is the least trending pair on daily and weekly timeframes). If we look at the median monthly change, the contrast between 2.45% of NZD/USD and 1.25% of EUR/GBP is rather high. Basically, this means that NZD/USD is likely to move almost twice as much as EUR/GBP in a randomly chosen month. Considering the fact that spreads on NZD/USD aren’t much different from EUR/GBP, trading the former should be significantly more attractive. Other notably slow-moving pairs include USD/CAD, EUR/USD, EUR/JPY, USD/JPY, and USD/CHF.

Mean daily rate of change in percentage for major currency pairs

Median daily rate of change in percentage for major currency pairs

Mean weekly rate of change in percentage for major currency pairs

Median weekly rate of change in percentage for major currency pairs

Mean monthly rate of change in percentage for major currency pairs

Median monthly rate of change in percentage for major currency pairs


The volatility of a currency pair can be calculated using the formula:

Volatility~V_1 = {{High_1 - Low_1} / Open_1} * 100%

Mean~volatility = (V_1 + V_2 + V_3 + cdots + V_N) / N,

where N is the total number of periods.

The median volatility is calculated by sorting the individual volatility values (Vn) and either picking the middle one (for odd N) or calculating the mean of the two middle-most rates of change (for even N).

The table summarizes the mean and median percentage (%) volatility values of the studied currency pairs for daily, weekly, and monthly timeframes from February 18, 2015, until today.

Currency pair Daily Weekly Monthly
Mean Median Mean Median Mean Median
AUD/USD 0.92 0.83 2.05 1.96 4.30 3.82
EUR/GBP 0.82 0.71 1.85 1.68 3.95 3.56
EUR/JPY 0.83 0.73 1.91 1.69 3.82 3.45
EUR/USD 0.75 0.66 1.73 1.51 3.47 2.95
GBP/JPY 1.03 0.89 2.45 2.03 5.37 4.94
GBP/USD 0.86 0.76 2.02 1.77 4.24 3.85
NZD/USD 0.98 0.88 2.24 2.03 4.55 4.36
USD/CAD 0.72 0.66 1.63 1.57 3.33 3.24
USD/CHF 0.74 0.65 1.70 1.52 3.43 3.19
USD/JPY 0.76 0.67 1.78 1.59 3.80 3.22

As you can see, the mean and median volatility of the studied currency pairs varies even less than the rate of change. Unsurprisingly, the most volatile currency pair turns out to be GBP/JPY, which was also the most trending pair as measured above using the mean rate of change. Below, you can find six charts that illustrate and help to compare the differences in volatility for the studied currency pairs.

GBP/JPY is leading in volatility across all timeframes except when measured by median weekly volatility (where there is a BP with NZD/USD at 2.03%). NZD/USD ends up second across all three timeframes in both mean and median measures, except for the median weekly chart. Notably, EUR/USD turns out to be the least volatile pair by median values, whereas USD/CAD and USD/CHF at the least volatile pairs by mean values on all timeframes.

Mean daily volatility in percentage for major currency pairs

Median daily volatility in percentage for major currency pairs

Mean weekly volatility in percentage for major currency pairs

Median weekly volatility in percentage for major currency pairs

Mean monthly volatility in percentage for major currency pairs

Median monthly volatility in percentage for major currency pairs

Consecutive closing above/below moving average

One of the most intuitive methods to detect Forex trends is to use a moving average. We calculate the mean and median number of consecutive closes above and below a 50-period (daily, weekly, and monthly) moving average (both simple and exponential).

Currency pair SMA EMA
Average Median Average Median
AUD/USD 13.6 6.0 9.8 3.0
EUR/GBP 12.0 4.0 11.8 4.0
EUR/JPY 13.1 4.0 11.2 3.5
EUR/USD 9.1 3.0 8.8 3.0
GBP/JPY 16.2 7.5 12.7 3.0
GBP/USD 13.0 4.0 10.8 3.0
NZD/USD 14.6 5.0 13.3 5.0
USD/CAD 14.2 5.5 10.3 4.0
USD/CHF 9.0 3.0 8.0 3.0
USD/JPY 10.9 3.0 10.9 3.0

Unlike previous measures of trendedness, consecutive closes below or above moving averages seem to result in more significant differences between the pairs. For example, when compared to the SMA, median number for GBP/JPY pair is 7.5 periods, while it is only 3 for such pairs as EUR/USD and USD/CHF. This means that GBP/JPY tends to stay more than twice longer above or below a moving average compared to those pairs. The comparison of other pairs is well illustrated by the charts below.

One notable takeaway is the lead of NZD/USD and GBP/JPY among mean consecutive days above/below EMA. NZD/USD, EUR/GBP, and USD/CAD lead with the highest median value of consecutive days above/below EMA where, surprisingly, GBP/JPY is one of the pairs with the minimum median value of such days.

Mean consecutive daily closes above or below SMA

Median consecutive daily closes above or below SMA

Mean consecutive daily closes above or below EMA

Median consecutive daily closes above or below EMA

The table for the consecutive weeks above and below the moving averages is presented below.

Currency pair SMA EMA
Average Median Average Median
AUD/USD 14.1 4.5 15.8 8.0
EUR/GBP 12.0 4.0 10.9 5.0
EUR/JPY 14.2 4.5 9.8 3.0
EUR/USD 10.4 3.0 10.3 2.5
GBP/JPY 6.7 1.5 7.1 3.5
GBP/USD 9.6 2.0 7.8 2.0
NZD/USD 9.8 2.5 7.1 2.0
USD/CAD 9.2 2.0 8.0 4.0
USD/CHF 6.0 3.0 4.5 2.0
USD/JPY 7.1 3.0 8.6 3.0

As evidenced by the charts below, AUD/USD dominates this metric of trendedness, coming out first in all but a mean value of above/below SMA periods where it loses 14.1 vs. 14.2 to EUR/JPY. Surprisingly, the weekly timeframe MA comparison also shows GBP/JPY and NZD/USD as weakly trending pairs whereas they have been quite strong according to some of the previous metrics. GBP/JPY even gets to win the title of the least trending currency pair on when gauged by the median number of weeks above or below the 50-week simple moving average.

Mean consecutive weekly closes above or below SMA

Median consecutive weekly closes above or below SMA

Mean consecutive weekly closes above or below EMA

Median consecutive weekly closes above or below EMA

The table for the monthly data is presented below. Unfortunately, it doesn’t offer reliable information because 5 years contain not so many monthly candles to work with.

Currency pair SMA EMA
Average Median Average Median
AUD/USD 17.0 17.0 17.0 17.0
EUR/GBP 27.5 27.5 13.8 6.5
EUR/JPY 3.8 1.0 4.9 2.0
EUR/USD 6.4 2.5 9.3 4.5
GBP/JPY 10.0 10.0 11.3 10.0
GBP/USD 56.0 56.0 17.0 17.0
NZD/USD 8.5 3.0 8.5 3.5
USD/CAD 9.5 3.0 17.0 17.0
USD/CHF 8.0 4.0 4.7 3.5
USD/JPY 4.9 4.0 4.3 2.0

As you can see on the charts below, GBP/USD and EUR/GBP get an undeniable lead when comparing with the 50-month SMA, but that’s just because we only have 60 monthly candles to look at, and these currency pairs spent nearly all of them trending below or above the moving average. Still, the data can be useful to get the idea of how some pairs (I am looking at you, EUR/JPY) traded in a whipsawing sideways market on a monthly timeframe. Another interesting point is that three pairs — AUD/USD, GBP/USD, and USD/CAD — show the same number of median monthly closes above/below EMA — 17.

Mean consecutive monthly closes above or below SMA

Median consecutive monthly closes above or below SMA

Mean consecutive monthly closes above or below EMA

Median consecutive monthly closes above or below EMA

Higher High + Higher Low and Lower Low + Lower High

A currency pair is generally believed to be trending if it forms consecutive Higher Highs with Higher Lows (HHHL) in an uptrend or Lower Low with Lower Highs (LLLH) in a downtrend. We calculate the mean number of HHHL and LLLH patterns for each currency pair on the daily, weekly, and monthly timeframes.

Currency pair Mean length of HHHL or LLLH streak
Daily Weekly Monthly
AUD/USD 1.894 1.830 1.615
EUR/GBP 1.857 1.841 2.043
EUR/JPY 1.881 1.719 1.571
EUR/USD 1.904 1.671 2.048
GBP/JPY 1.911 1.990 1.500
GBP/USD 1.907 1.865 1.720
NZD/USD 1.911 1.774 1.846
USD/CAD 1.886 1.791 1.704
USD/CHF 1.866 2.010 1.583
USD/JPY 1.891 1.743 1.913

On the charts below you can see the illustration of the data presented in the table above. Mean consecutive HHHL/LLLH days are the highest for NZD/USD, GBP/JPY, GBP/USD, and EUR/USD. The first two pairs performed well also by other metrics. Surprisingly, weekly timeframe shows a high mean number of consecutive HHHL/LLLH periods for USD/CHF, which otherwise didn’t demonstrate much trendedness in earlier tests.

Mean consecutive HHHL/LLLH days

Mean consecutive HHHL/LLLH weeks

Mean consecutive HHHL/LLLH months

Consecutive bullish/bearish candles

A blunter way to measure trends is to record the average number of consecutive bullish or bearish candles. It ignores the Higher High + High Low and Lower Low + Lower High condition outlined in the previous analysis but still captures useful information about the currency pair’s trendedness. The following table contains the mean values of consecutive bullish/bearish candles for each currency pair on the daily, weekly, and monthly timeframes.

Currency pair Mean consecutive bullish/bearish candles
Daily Weekly Monthly
AUD/USD 1.969 2.132 1.629
EUR/GBP 1.922 2.016 2.261
EUR/JPY 2.040 1.962 1.839
EUR/USD 1.921 1.741 1.727
GBP/JPY 2.028 2.168 1.727
GBP/USD 2.045 1.856 1.839
NZD/USD 1.962 1.977 1.727
USD/CAD 2.049 1.969 1.966
USD/CHF 1.982 1.836 1.647
USD/JPY 1.911 1.760 1.400

There are four main leaders on the daily timeframe: EUR/JPY, GBP/JPY, GBP/USD, and USD/CAD. Weekly timeframe favors GBP/JPY, AUD/USD, and EUR/GBP. On the monthly charts, EUR/GBP is well ahead of the rest of the crowd. These results don’t stack well with the ones obtained in the analysis by other methods. Yet, it hints that average bullish and bearish streaks are quite longer at some currency pairs compared to others.

Mean consecutive bullish/bearish days

Mean consecutive bullish/bearish weeks

Mean consecutive bullish/bearish months


Our research has revealed the following facts based on the studied period of 5 years:

  • NZD/USD, GBP/JPY, and AUD/USD have the largest expected rate of change for any of the studied periods — day, week, and month. These should be your currency pairs of choice if you your trading strategy involves opening a trade and holding it for some fixed period of time.
  • GBP/JPY and NZD/USD are the most volatile pairs. It means that an average candle on these pairs’ charts is likely to be longer than on the charts of other currency pairs. This can be used to capture large movements (spikes) with well-placed take-profit orders. This conclusion (along with the one above) also seem to be very reliable as the currency pairs lead not only by mean but also the median values.
  • NZD/USD, GBP/JPY, AUD/USD, and EUR/GBP are best trending pairs when measuring trends with a moving average on daily timeframe.
  • AUD/USD, EUR/GBP, and EUR/JPY enter longer trends on average on weekly timeframe.
  • Monthly timeframe comparison to moving averages is highly unreliable, so there is little point into trying to get any insights from EUR/GBP and GBP/USD dominance there.
  • The data on consecutive Higher High + Higher Low or Lower Low + Lower High is very mixed with no clear leaders (especially on weekly timeframe).
  • Consecutive bullish/bearish candles data is also very mixed, but suggests that trading in GBP/USD, USD/CAD, EUR/JPY, and GBP/JPY on daily timeframe can be more lucrative if your strategy relies on candles repeating their color.


  • Higher volatility on GBP/JPY, NZD/USD, and AUD/USD also warrants a wider stop-loss for your trades.
  • The low median number of days above/below a moving average for most currency pairs (just 3 or 4 days) suggests that the basic moving average crossover strategy is ineffective with most trading instruments. Whether expecting the high median values to hold for pairs that had them high during the previous 5 years is a good idea is another (unanswered) question.
  • If I had to answer the question of what is the most trending currency pair based on all the data in this post, I would say that it is either GBP/JPY or NZD/USD. However, it should be noted that the latter usually involves lower spreads.

Important note: The past performance is not an indication of the future performance. This means that it might be impractical to base actual trading on expectations of the trending behavior to remain the same as they were during the studied period.


And now to the most important stuff — a MetaTrader script that can be used to get the same data that is presented in this post and even more. TrendStats script consists of two files that should be unarchived into the same subfolder inside your /MQL4/Scripts/ folder (/MQL5/Scripts/ for MetaTrader 5). You need to compile TrendStats.mq4 (for MetaTrader 4) or TrendStats.mq5 (for MetaTrader 5); TrendsStats.mqh is an include file used by TrendStats.mq4 and TrendStats.mq5.

The script, when run on any chart, will analyze a list of currency pairs (given via input parameters) on a range of timeframes (also given via input parameters) and on a given time period (also changeable via input parameters). It will produce .csv files with output results and will also output the results in the Experts tab of the terminal. Here is the list of input parameters for the script:

  • Symbols — list of currency pairs and other trading instruments you want to analyze. Enter them as they are listed in your Market Watch window. You can use space, comma, or semicolon to separate them.
  • Timeframes — list of timeframes to process. Enter them as M1, H4, or PERIOD_M1, PERIOD_H4, and so on. Same as with Symbols, recognized separators are space, comma, and semicolon.
  • PeriodToProcess — a period to process by the script. It is a choice of either Last_5_Years (same as was used in this post), Time_Period (you then set the exact start and finish dates via StartDate and FinishDate inputs), and Last_N_Candles (you then set the exact number of candles to process via N input parameter).
  • StartDate — ignored unless Time_Period is selected in PeriodToProcess.
  • FinishDate — ignored unless Time_Period is selected in PeriodToProcess.
  • N — ignored unless Last_N_Candles is selected in PeriodToProcess.
  • Time_Shift — you can set time shift in hours to move the start of the date. This is useful if your broker has unconventional time zone. For example, if your server is UTC-7 and you want the day to start exactly at 00:00 UTC, you set this parameter to 7. Please note, that setting non-zero Time_Shift will make the script to calculate everything using only H1 data — it will be converted to other timeframes you request via Timeframes parameters, but there might be not enough H1 candles to generate enough high-timeframe data.
  • MA_Period — moving average period for moving average comparison stats.
  • FileNamePrefix — prefix for .csv file names.
  • SilentMode — if true, the silent mode will prevent the script from outputting any calculation data into the Experts tab of the terminal. Service and error messages will still be printed.


If you have some questions about this study of the major currency pairs’ trendedness, if you want to suggest some other measures of trendedness to analyze, or if you find some bugs in the TrendStats script, please use the commentary form below to let us know.

2 Responses to “Most Trending Currency Pairs in Forex + TrendStats Script”

  1. Chau

    Regarding the calculation of Volatility, [(High – Low) / Open] * 100%. Why divided by Open? This means that for the same currency pair, the bar having higher Open price will be less volatile than the bar having lower Open price even if the two bars have the same range (high – low)?


    Andriy Moraru Reply:

    It is divided by Open to get volatility value in percentage points. Yes, this means that for the same currency pair, the bar with a higher Open price will be less volatile than the bar with a lower Open price when the High-Low range is the same.

    Think of Crude Oil trading at above $100 in 2013-2014 and at near $20 it is trading today. $2 change today is 10% whereas back then it would be mere 2%.


Leave a Reply

required (will not be published)