Intuitive GDP growth estimates #
The category group contains real-time estimated recent GDP growth trends based on regressions that use the latest available national accounts data and monthly-frequency activity data. The estimation relies on GLS regression with autocorrelated errors. Unlike standard academic models, the intention is to mimic intuitive methods of market economists. Recent trends are calculated based on vintages both in outright terms and relative to long-term trends.
Intuitive growth #
Ticker : INTRGDP_NSA_P1M1ML12_3MMA / _P1M1ML12
Label : Intuitive real GDP growth: % oya, 3mma / % oya
Definition : Latest estimable GDP growth trend based on actual national accounts and monthly activity data, based on sets of regressions that replicate conventional charting methods in markets (Macrosynergy methodology): % over a year ago, 3-month moving average / % over a year ago.
Notes :
-
Each day on which a new economic indicator is released, a full new vintage of monthly-frequency GDP growth rates (% over a year ago) is estimated.
-
For the latest months of each vintage, for which national accounts data have not yet been published, GDP growth is estimated based on GLS (generalized least squares) regression. This regression predicts GDP growth for a month based on the relevant growth indicators that have so far been published and the estimated autocorrelation effects error terms. This means that the error of that same regression for the last reported quarter carries over to subsequent months. Errors of linear predictions of GDP growth based on selected growth indicators are often autocorrelated due to unobservable trends, typically related to sectors for which no data is available.
-
For the older history of each vintage, for which national accounts have already been released, the official quarterly-frequency GDP growth rates are decomposed into monthly-frequency growth rates using OLS regression based on monthly activity indicators.
-
The candidate monthly-frequency indicators are pre-selected according to financial market economic release calendars and further narrowed down based on their predictive power prior to the point in time at which the selection must have been done. Thus, there is statistical pre-selection based on prior training data. In summary, this means that the set of explanatory monthly-frequency activity indicators changes overtime according to (i) publication schedule and (ii) past predictive power.
-
Only country-specific activity data are used for estimating country growth. We would not use, for example, U.S. activity data to estimate Canadian growth. This allows differentiating growth information cleanly across countries, which is a good basis for building good relative growth indicators across countries.
-
Important note: The quantamental series of a 3-month moving average, as presented here, is not the same as the 3-month moving average of a quantamental series. Instead the former is a 3-month moving average of the concurrently available vintage. Since the latest month and the previous months may be estimated based on different monthly-frequency data, depending on publication lag, the quantamental 3-month moving averages contain independent information and may look very different from the smoothed monthly quantamental series.
-
For further calculation details, see Appendix 1 .
Excess intuitive growth #
Ticker : INTRGDPv5Y_NSA_P1M1ML12_3MMA / INTRGDPv10Y_NSA_P1M1ML12_3MMA
Label : Excess intuitive real GDP growth trend: based on 5 year lookback / based on 10 year lookback.
Definition : Latest estimated “intuitive” GDP growth trend, % over a year ago, 3-month moving average minus a long-term median of that country’s actual GDP growth rate at that time: based on 5 year lookback of the latter / based on 10 year lookback of the latter.
Notes :
-
For a description of the estimation of intuitive GDP growth, see the above ‘Intuitive growth’ notes.
-
The excess intuitive GDP growth trend subtracts a real-time 5-year or 10-year GDP growth median. This serves as a simplistic but fairly objective estimate for potential GDP growth at the time. See also notes for
RGDP_SA_P1Q1QL4_40QMM
in the category “Long-term GDP growth”.
Intuitive growth trend changes #
Ticker : INTRGDP_NSA_P1M1ML12_D3M3ML3
Label : Change in annual intuitive growth trend over the past 3 months.
Definition : Intuitive GDP growth, % over a year ago, 3-month average, change over the last three estimable months.
Notes :
-
This metric is measuring estimations of growth changes, not changes in estimations. The changes are always calculated based on the latest available vintage of growth estimations.
-
Importantly, quantamental real-time measures of changes in growth trends are not the same as changes in quantamental real-time measures of growth trends. These are two different concepts. The latter can be calculated based on quantamental indicators alone and does not require the underlying vintages.
-
For a description of the estimation of intuitive GDP growth, see the above ‘Intuitive growth’ notes.
Imports #
Only the standard Python data science packages and the specialized
macrosynergy
package are needed.
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import math
import json
import yaml
import macrosynergy.management as msm
import macrosynergy.panel as msp
import macrosynergy.signal as mss
import macrosynergy.pnl as msn
from macrosynergy.download import JPMaQSDownload
from timeit import default_timer as timer
from datetime import timedelta, date, datetime
import warnings
warnings.simplefilter("ignore")
The
JPMaQS
indicators we consider are downloaded using the J.P. Morgan Dataquery API interface within the
macrosynergy
package. This is done by specifying
ticker strings
, formed by appending an indicator category code
<category>
to a currency area code
<cross_section>
. These constitute the main part of a full quantamental indicator ticker, taking the form
DB(JPMAQS,<cross_section>_<category>,<info>)
, where
<info>
denotes the time series of information for the given cross-section and category.
The following types of information are available:
-
value
giving the latest available values for the indicator -
eop_lag
referring to days elapsed since the end of the observation period -
mop_lag
referring to the number of days elapsed since the mean observation period -
grade
denoting a grade of the observation, giving a metric of real time information quality.
After instantiating the
JPMaQSDownload
class within the
macrosynergy.download
module, one can use the
download(tickers,
start_date,
metrics)
method to obtain the data. Here
tickers
is an array of ticker strings,
start_date
is the first release date to be considered and
metrics
denotes the types of information requested.
# Cross-sections of interest
cids_dmca = [
"AUD",
"CAD",
"CHF",
"EUR",
"GBP",
"JPY",
"NOK",
"NZD",
"SEK",
"USD",
] # DM currency areas
cids_dmec = ["DEM", "ESP", "FRF", "ITL", "NLG"] # DM euro area countries
cids_latm = ["BRL", "COP", "CLP", "MXN", "PEN"] # Latam countries
cids_emea = ["CZK", "HUF", "ILS", "PLN", "RON", "RUB", "TRY", "ZAR"] # EMEA countries
cids_emas = [
"CNY",
# "HKD",
"IDR",
"INR",
"KRW",
"MYR",
"PHP",
"SGD",
"THB",
"TWD",
] # EM Asia countries
cids_dm = cids_dmca + cids_dmec
cids_em = cids_latm + cids_emea + cids_emas
cids = sorted(cids_dm + cids_em)
# Quantamental categories of interest
main = [
"INTRGDP_NSA_P1M1ML12",
"INTRGDP_NSA_P1M1ML12_3MMA",
"INTRGDPv5Y_NSA_P1M1ML12_3MMA",
"INTRGDPv10Y_NSA_P1M1ML12_3MMA",
"INTRGDP_NSA_P1M1ML12_D3M3ML3",
]
econ = ["RIR_NSA", "FXCRR_NSA", "REER_NSA_P1M12ML1"] # economic context
mark = [
"EQXR_NSA",
"EQXR_VT10",
"FXXR_VT10",
"DU05YXR_NSA",
"DU05YXR_VT10",
"FXUNTRADABLE_NSA",
"FXTARGETED_NSA",
] # market links
xcats = main + econ + mark
# Download series from J.P. Morgan DataQuery by tickers
start_date = "2000-01-01"
tickers = [cid + "_" + xcat for cid in cids for xcat in xcats]
print(f"Maximum number of tickers is {len(tickers)}")
# Retrieve credentials
client_id: str = os.getenv("DQ_CLIENT_ID")
client_secret: str = os.getenv("DQ_CLIENT_SECRET")
# Download from DataQuery
with JPMaQSDownload(client_id=client_id, client_secret=client_secret) as downloader:
start = timer()
df = downloader.download(
tickers=tickers,
start_date=start_date,
metrics=["value", "eop_lag", "mop_lag", "grading"],
suppress_warning=True,
show_progress=True,
)
end = timer()
dfd = df
print("Download time from DQ: " + str(timedelta(seconds=end - start)))
Maximum number of tickers is 555
Downloading data from JPMaQS.
Timestamp UTC: 2023-07-14 13:15:14
Connection successful!
Number of expressions requested: 2220
Requesting data: 100%|███████████████████████████████████████████████████████████████| 111/111 [00:34<00:00, 3.18it/s]
Downloading data: 100%|██████████████████████████████████████████████████████████████| 111/111 [01:22<00:00, 1.34it/s]
Download time from DQ: 0:02:26.765426
Availability #
cids_exp = sorted(
list(set(cids) - set(cids_dmec + ["ARS", "HKD"]))
) # cids expected in category panels
msm.missing_in_df(dfd, xcats=main, cids=cids_exp)
Missing xcats across df: set()
Missing cids for INTRGDP_NSA_P1M1ML12: set()
Missing cids for INTRGDP_NSA_P1M1ML12_3MMA: set()
Missing cids for INTRGDP_NSA_P1M1ML12_D3M3ML3: set()
Missing cids for INTRGDPv10Y_NSA_P1M1ML12_3MMA: set()
Missing cids for INTRGDPv5Y_NSA_P1M1ML12_3MMA: set()
Intuitive growth estimates for most countries are available by 2000. Some EM countries only have indicators from the mid-2000s. The early vintages for many EM countries are often quite rough.
For the explanation of currency symbols, which are related to currency areas or countries for which categories are available, please view Appendix 2 .
xcatx = main
cidx = cids_exp
dfx = msm.reduce_df(dfd, xcats=xcatx, cids=cidx)
dfs = msm.check_startyears(dfx)
msm.visual_paneldates(dfs, size=(20, 3))
print("Last updated:", date.today())

Last updated: 2023-07-14
xcatx = main
cidx = cids_exp
plot = msm.check_availability(
dfd, xcats=main, cids=cids_exp, start_size=(20, 1), start_years=False
)

Vintage grading has been high on average. This reflects that intuitive growth relies heavily on estimation, which could be replicated sequentially and realistically for most days since 2000. Great Britain, the United States and Indonesia attain the highest vintage gradings out of all considered cross-sections.
xcatx = main
cidx = cids_exp
plot = msp.heatmap_grades(
dfd,
xcats=xcatx,
cids=cidx,
size=(20, 3),
title=f"Average vintage grades from {start_date} onwards",
)

cidx = cids_exp
for x in main:
xcatx = [x]
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
val="eop_lag",
title="End of observation period lags (ranges of time elapsed since end of observation period in days)",
start="2000-01-01",
kind="box",
size=(16, 4),
)
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
val="mop_lag",
title="Median of observation period lags (ranges of time elapsed since middle of observation period in days)",
start="2000-01-01",
kind="box",
size=(16, 4),
)










History #
Intuitive real GDP growth trend #
Since 2000, real-time intuitive growth rates in emerging market economies have on average outperformed developed economies.
The standard deviations of the quantamental intuitive growth series’ have not always been commensurate to the standard deviations of actual growth, since fluctuations in the quantamental series very much depend on the data release structure. A country with early but unreliable activity indicators would, all other things equal, have a more volatile intuitive growth indicator than a country where markets mainly rely on national account reports.
Taking a three-month moving average removes a lot of short-term noise compared to the original series and is usually preferable as a trend indicator. It is important to remember that this is a moving average of vintages, not of the quantamental series, and that it contains different information, such as the information implied in monthly frequency indicators that have longer publication lags.
xcatx = ["INTRGDP_NSA_P1M1ML12_3MMA"]
cidx = cids_exp
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
sort_cids_by="mean",
start=start_date,
kind="bar",
title="Means and standard deviations of intuitive real GDP growth trends",
xcat_labels=[
"% change over a year ago, 3-month moving average",
],
size=(16, 8),
)

The 3-month lookback growth estimator has been a lot more stable that the monthly one. This reflects the much better data quality of the indicators that are available in the longer window.
xcatx = ["INTRGDP_NSA_P1M1ML12", "INTRGDP_NSA_P1M1ML12_3MMA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Real-time intuitive GDP growth estimates",
title_adj=1.02,
title_xadj=0.39,
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
xcat_labels=[
"% change over a year ago",
"% change over a year ago, 3-month moving average",
],
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Three-month averages of vintages have longer lookbacks and consequently use more data. This means they may be quicker than one-month estimates in detecting trends. The latest information alone may not always be the earliest signal on where the economy is going.
xcatx = ["INTRGDP_NSA_P1M1ML12", "INTRGDP_NSA_P1M1ML12_3MMA"]
cidx = ["COP"]
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start="2000-01-01",
title="Real-time 'intuitive' GDP growth estimate: latest month and 3-month moving average (orange)",
title_adj=1.02,
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
)

Cross-correlation of intuitive real growth trends has been almost uniformly positive across all economies, illustrating the pervasive influence of global business cycles.
cidx = cids_exp
msp.correl_matrix(
dfd,
xcats="INTRGDP_NSA_P1M1ML12_3MMA",
cids=cidx,
title="Cross-sectional correlation of real-time measures of intuitive GDP growth trends, 3-month moving average, across countries",
size=(20, 14),
)

Excess intuitive real GDP growth trend (5-year lookback) #
Since 2000, trend growth has declined globally and consequentially, intuitive GDP growth has on average underperformed its long-term past median over most cross-sections.
xcatx = ["INTRGDPv5Y_NSA_P1M1ML12_3MMA"]
cidx = cids_exp
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
sort_cids_by="mean",
start=start_date,
kind="bar",
title="Means and standard deviations of excess real GDP growth trends, 5-year lookback, since 2000",
xcat_labels=["% over a year ago, 3-month moving average"],
size=(16, 8),
)

Adjustment of current growth trends for long-term averages provides an objective criterion for distinguishing what would be called “high growth” versus “low growth”.
xcatx = ["INTRGDP_NSA_P1M1ML12_3MMA", "INTRGDPv5Y_NSA_P1M1ML12_3MMA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
xcat_labels=[
"% over a year ago, 3-month moving average",
"relative to 5-year median",
],
title="Regular and excess intuitive GDP growth estimates",
title_adj=1.02,
title_fontsize=27,
title_xadj=0.41,
label_adj=0.075,
legend_fontsize=17,
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Excess intuitive real GDP growth trend (10-year lookback) #
The secular moderation in growth is even clearer when using a 10-year lookback as a growth benchmark. The trouble with long benchmarks is that for some countries they shorten the available history.
xcatx = ["INTRGDPv10Y_NSA_P1M1ML12_3MMA"]
cidx = cids_exp
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
sort_cids_by="mean",
start=start_date,
kind="bar",
title="Means and standard deviations of excess real GDP growth trends, 10-year lookback, since 2000",
xcat_labels=["% over a year ago, 3-month moving average"],
size=(16, 8),
)

xcatx = ["INTRGDPv10Y_NSA_P1M1ML12_3MMA", "INTRGDPv5Y_NSA_P1M1ML12_3MMA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
xcat_labels=[
"relative to 10-year median",
"relative to 5-year median",
],
title="Excess intuitive GDP growth estimates, % over a year ago, 3-month moving average",
title_adj=1.02,
title_xadj=0.43,
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Change in annual intuitive growth trend #
Growth changes have varied substantially across countries and time periods, with standard deviations ranging from less than 1% to near 5%.
Importantly, the variability of estimated growth not only depends on the actual variability of growth, but also on the stability of the high-frequency growth indicators that are used for concurrent GDP trend estimation. If a country has many volatile but valid GDP predictors, the estimated latest growth changes can be volatile even if actual growth is not.
xcatx = ["INTRGDP_NSA_P1M1ML12_D3M3ML3"]
cidx = cids_exp
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
sort_cids_by="std",
start=start_date,
kind="bar",
title="Means and standard deviations of changes in annual intuitive growth trends, since 2000",
xcat_labels=["3-month change in annual intuitive growth trends"],
size=(16, 8),
)

xcatx = ["INTRGDP_NSA_P1M1ML12_D3M3ML3"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Change in annual intuitive growth trends over the last 3 estimable months",
title_adj=1.02,
title_fontsize=27,
title_xadj=0.51,
legend_fontsize=17,
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Cross-correlation of real-time measures of growth changes have been predominantly positive, underlining the power of global growth shocks
cidx = cids_exp
msp.correl_matrix(
dfd,
xcats="INTRGDP_NSA_P1M1ML12_D3M3ML3",
cids=cidx,
title="Cross-sectional correlation of real-time measures of intuitive growth changes across countries",
size=(20, 14),
)

Importance #
Research links #
“Interest rates [are] positively related to consumption growth shocks, and therefore provide low [excess currency] returns when consumption growth is weakening…We provide empirical evidence that the risk factors associated with US GDP and foreign country’s GDP growth accounts for both the cross-section of average excess returns and individual currencies’ payoffs.” Gonçalves et al.
“Global economic growth at the end of the year strongly predicts returns from a wide spectrum of international assets, such as global, regional, and individual-country stocks, FX, and commodities…Low growth in the global economy at the end of the year predicts higher returns over the following year. It also predicts the global business cycle. When global economic growth at the end of the year is low, investors expect a worsening of the global business cycle and increase their required returns.” Møller & Rangvid
“We use forecasting models to measure the impact of surprises in GDP announcements on equity markets, and to analyze the effects of anticipated future revisions on announcement-day returns. We show that the publication of better than expected third-release GDP figures provides a boost to equity markets, and if future upward revisions are expected, the effects are enhanced during recessions.” Clements and Galvão
Empirical clues #
Growth trends influence real interest rates and, hence, various measures of real carry and returns. Higher growth is typically associated with higher real interest rates.
xcatx = ["INTRGDP_NSA_P1M1ML12_3MMA", "RIR_NSA"]
cidx = cids_exp
cr_crr = msp.CategoryRelations(
dfd,
xcats=xcatx,
cids=cidx,
freq="A",
lag=0,
xcat_aggs=["mean", "mean"],
start=start_date,
xcat_trims=[20, 15], # trim extreme observations (Turkey)
)
cr_crr.reg_scatter(
title="Intuitive growth and real interest rate across all countries and all years since 2000",
labels=True,
coef_box="upper left",
reg_robust=False,
xlab="Intuitive GDP growth trend",
ylab="Main real short-term interest rate, excluding extreme values of dubious validity",
)

There is some evidence of a negative relationship between intuitive growth trends and subsequent duration returns; higher growth has been followed by lower returns.
xcatx = ["INTRGDP_NSA_P1M1ML12_3MMA", "DU05YXR_NSA"]
cidx = list(set(cids_exp) - set(["BRL", "PEN", "PHP", "RON"])) # remove missing cids
cr = msp.CategoryRelations(
dfd,
xcats=xcatx,
cids=cidx,
freq="M",
lag=1,
xcat_aggs=["last", "sum"],
start=start_date,
xcat_trims=[20, 15],
)
cr.reg_scatter(
title="Intuitive growth and subsequent quarterly IRS returns, all countries, since 2000",
labels=False,
coef_box="upper right",
separator=2015,
xlab="Intuitive GDP growth trend",
ylab="5-year IRS fixed receiver return (next quarter)",
prob_est="map",
)

Appendices #
Appendix 1: Intuitive growth calculations #
In addition to the methodological notes in the ticker sections above, we here clarify some details of the estimation.
The JPMaQS algorithm for intuitive GDP growth uses two types of regressions that mimic conventional approaches in the financial economist community:
Predictive regression : In respect to recent months, for which official national accounts have not yet been released, the method uses generalized least-squares regressions to estimate vintages of GDP growth rates (% over a year ago) based on higher-frequency activity indicators and the residual between their relation and GDP growth in the latest reported quarter.
Interpolating regression : In respect to older history, the method uses standard OLS regression to distribute the reported GDP growth rate of a quarter over its three months, based on higher-frequency (typically monthly) indicators.
The predictive regression takes the following steps each time we buld a new vintage:
-
We use this fitted GLS model to predict the GDP growth rate for the latest months for which no offical national accounts statistic are available yet. This means that the information used for the prediction is the available higher-frequency indicators for a month at the specific date and the residual of the regression in the last period. The specific form of the regression depends on the indicators that are available on a given release for the observed month.
-
To specify the GLS model, we select a set of monthly (or sometimes weekly) activity indicators based on financial market data calendars for each country and transform their values such that they plausibly relate to GDP growth in percent over a year ago. For example, industrial production would be transformed into a percent rate over a year ago, labor market indicators usually use the differences over a year ago, and many survey data are just taken at levels.
-
For any point in time, only feature candidates that have hitherto shown correlation in the direction suggested by theory are used for regression. For example, production growth should be positively correlated and unemployment changes should be negatively correlated.
-
We downsample the \(p\) feature candidates to quarterly frequency by averaging. This results in a dataset \(\{(\boldsymbol{x}_{i},y_{i})\}_{i=1}^{q}\) , where \(q\) is the latest observation period for quarterly real GDP, each \(\boldsymbol{x}_{i}\) is a \(p\) -dimensional feature vector and each \(y_{i}\) is the real GDP growth for the given quarter.
-
We then estimate the relationship between annual GDP growth and the various combinations of feature candidates through a GLS regression at a quarterly frequency. This regression posits that residuals between the actual GDP growth rate and the predicted values (based on the higher-frequency indicators’ averages) carry over to the next period. Technically speaking, we fit a model where \(\alpha^{(gls)}\) , each \(\beta_{j}^{(gls)}\) (for \(j \in \left [ 1,\dots,p \right ]\) ) and \(\rho\) are the parameters to be estimated.
-
This type of equation is being estimated for subsequent vintages of all involved data series. Thus there are sequences of such estimations, each being specific to the real-time date and the eligible set of features.
-
Finally, monthly values of the features are applied to the above model alongside the last quarterly residual to give a monthly GDP growth estimate.
The interpolating regression simply fits an OLS model with the GDP growth rate as target and all concurrent features that have displayed theoretically plausible correlation with GDP growth. This creates a vector of monthly predictions \(\hat{\boldsymbol{y}}\) .
Since actual quarterly real GDP growth rates are known, prior to quarter \(q\) , the monthly OLS in-sample predictions can add a consistency restriction. A naive monthly real GDP growth series, \(\boldsymbol{y}^{(back)}\) , is calculated by filling the quarterly growth rate into all three months of a quarter. The monthly “residuals” \(\boldsymbol{r}^{(m)} = \boldsymbol{y}^{(back)}-\hat{\boldsymbol{y}}\) are calculated and averaged over each quarter to form a vector of “residuals”, denoted \(\boldsymbol{r}^{(q)}\) . The final real GDP growth estimate, prior to observation period \(q\) , is obtained by adding the respective residual vector from \(\boldsymbol{r}^{(q)}\) to the monthly estimates, \(\hat{y}_{m}\) , from the fitted OLS model.
Lastly, the GLS estimates, for the latest months after \(q\) , will be appended to the OLS interpolated monthly estimates of annualised GDP growth to give a full vintage of monthly GDP growth estimates.
Appendix 2: Currency symbols #
The word ‘cross-section’ refers to currencies, currency areas or economic areas. In alphabetical order, these are AUD (Australian dollar), BRL (Brazilian real), CAD (Canadian dollar), CHF (Swiss franc), CLP (Chilean peso), CNY (Chinese yuan renminbi), COP (Colombian peso), CZK (Czech Republic koruna), DEM (German mark), ESP (Spanish peseta), EUR (Euro), FRF (French franc), GBP (British pound), HKD (Hong Kong dollar), HUF (Hungarian forint), IDR (Indonesian rupiah), ITL (Italian lira), JPY (Japanese yen), KRW (Korean won), MXN (Mexican peso), MYR (Malaysian ringgit), NLG (Dutch guilder), NOK (Norwegian krone), NZD (New Zealand dollar), PEN (Peruvian sol), PHP (Phillipine peso), PLN (Polish zloty), RON (Romanian leu), RUB (Russian ruble), SEK (Swedish krona), SGD (Singaporean dollar), THB (Thai baht), TRY (Turkish lira), TWD (Taiwanese dollar), USD (U.S. dollar), ZAR (South African rand).