Macro trading factors: dimension reduction and statistical learning

Jupyter Notebook

Macro trading factors are information states of economic developments that help predict asset returns. A single factor is typically represented by multiple indicators, just as a trading signal often combines several factors. Like signal generation, factor construction can be supported by regression-based statistical learning. Dimension reduction is particularly useful for factor discovery. It is the transformation of high-dimensional data into a lower-dimensional representation that retains most of the information content. Dimension reduction methods, such as principal components and partial least squares, reduce bias, increase objectivity, and strengthen the reliability of backtests.

This post applies statistical learning with dimension-reduction techniques to macro factor generation for developed fixed-income markets. The method adapts to the degree of theoretical guidance and the complexity of the data. Several dimension-reduction approaches have successfully produced factors for interest-rate swap trading, delivering positive predictive power, strong accuracy, and robust long-term PnL.

(more…)

Systematic equity allocation across countries for dollar-based investors

Jupyter Notebook

This post demonstrates that country allocation with macroeconomic factors can materially enhance the returns on international equity portfolios in dollar terms. We identify a range of economic developments that, according to standard theory and in conjunction with market inattention, should predict the outperformance of countries either through exchange rate appreciation or higher local-currency equity returns. These developments are captured in backtestable economic factor scores, built from point-in-time macro-quantamental indicators. To select and combine these factors into trading signals without hindsight bias, we employ sequential machine learning. Empirical evidence based on 19 international markets shows highly significant predictive power and consistent material value arising from cross-country allocation alone. A simulation of U.S. dollar-based cross-country allocation of real money investment also reveals material long-term outperformance relative to an equally-weighted international portfolio or a U.S. portfolio.

(more…)

Boosting macro trading signals

Jupyter Notebook

Boosting is a machine learning ensemble method that combines the predictions of a chain of basic models, whereby each model seeks to address the shortcomings of the previous one. This post applies adaptive boosting (Adaboost) to trading signal optimisation. Signals are constructed with macro factors to guide positioning in a broad range of global FX forwards.
Boosting is beneficial for learning from a wide and heterogeneous set of markets over time, because it is well-suited for exploiting the diversity of experiences across countries and global economic states. Empirically, we generate machine learning-based signals that use regularized regression and random forest regression, and compare processes with and without adaptive boosting methods. For both regression types, machine learning prefers boosting as datasets get larger and, by doing so, creates more profitable signals.

(more…)

Macro trading signal optimization: basic statistical learning methods

Jupyter Notebook

A key task of macro strategy development is condensing candidate factors into a single positioning signal. Statistical learning offers methods for selecting factors, combining them to a return prediction, and classifying the market state. These methods efficiently incorporate diverse information sets and allow running realistic backtests.
This post applies sequential statistical learning to optimal signal generation for interest rate swap positions. Sequential methods update, estimate, and select models over time, adapting to growing development data sets, and apply signals based on the latest optimal model each month. These methods require intelligent choices on model versions, hyperparameters, cross-validation splitters, and model quality criteria. Sequential statistical learning has generally done a good job in discarding irrelevant information and has produced greater accuracy and higher risk-adjusted returns than simple factor averages.

(more…)

Statistical learning for sectoral equity allocation

Jupyter Notebook of factor calculation Jupyter Notebook of statistical learning

There is sound reason and evidence for the predictive power of macro indicators for relative sectoral equity returns. However, the relations between economic information and equity sector performance can be complex. Considering the broad range of available point-in-time macro-categories that are now available, statistical learning has become a compelling method for discovering macro predictors and supporting prudent and realistic backtests of related strategies. This post shows a simple five-step method to use statistical learning to select and combine macro predictors from a broad set of categories for the 11 major equity sectors in 12 developed countries. The learning process produces signals based on changing models and factors per the statistical evidence. These signals have been positive predictors for relative returns of all sectors versus a broad basket. Combined into a single strategy, these signals create material and uncorrelated investor value through sectoral allocation alone.

(more…)

How “beta learning” improves macro trading strategies

Jupyter Notebook

Macro beta is the sensitivity of a financial contract’s return to a broad economic or market factor. Macro betas broaden the traditional concept of equity market betas and can often be estimated using financial contract baskets. Macro sensitivities are endemic in trading strategies, diluting alpha, undermining portfolio diversification, and distorting backtests. However, it is possible to immunize strategies through “beta learning,” a statistical learning method that supports identifying appropriate models and hyperparameters and allows backtesting of hedged strategies without look-ahead bias. The process can be easily implemented with existing Python classes and methods. This post illustrates the powerful beneficial impact of macro beta estimation and its application on an emerging market FX carry strategy.

(more…)

FX trading signals with regression-based learning

Jupyter Notebook

Regression-based statistical learning helps build trading signals from multiple candidate constituents. The method optimizes models and hyperparameters sequentially and produces point-in-time signals for backtesting and live trading. This post applies regression-based learning to macro trading factors for developed market FX trading, using a novel cross-validation method for expanding panel data. Sequentially optimized models consider nine theoretically valid macro trend indicators to predict FX forward returns. The learning process has delivered significant predictors of returns and consistent positive PnL generation for over 20 years. The most important macro-FX signals, in the long run, have been relative labor market trends, manufacturing business sentiment changes, relative inflation expectations, and terms of trade dynamics.

(more…)

Macroeconomic data and systematic trading strategies

While economic information undeniably wields a significant and widespread influence on financial markets, the systematic incorporation of macroeconomic data into trading strategies has thus far been limited. This reflects skepticism towards economic theory and serious data problems, such as revisions, distortions, calendar effects, and, generally, the lack of point-in-time formats. However, the emergence of industry-wide quantamental indicators and the rise of statistical learning methods in financial markets make macroeconomic information more practical and powerful. Successful demonstrations of statistical learning and macro-quantamental indicators have been achieved, with various machine learning techniques poised to further improve the utilization of economic information.

(more…)

Regression-based macro trading signals

Jupyter Notebook

Regression is one method for combining macro indicators into a single trading signal. Specifically, statistical learning based on regression can optimize model parameters and hyperparameters sequentially and produce signals based on whatever model has predicted returns best up to a point in time. This method learns from growing datasets and produces valid point-in-time signals for backtesting. However, whether regression delivers good signals depends on managing the bias-variance trade-off of machine learning. This post provides guidance on pre-selecting the right regression models and hyperparameter grids based on theory and empirical evidence. It considers the advantages and disadvantages of various regression methods, including non-negative least squares, elastic net, weighted least squares, least absolute deviations, and nearest neighbors.

(more…)

Optimizing macro trading signals – A practical introduction

Jupyter Notebook

Based on theory and empirical evidence, point-in-time indicators of macroeconomic trends and states are strong candidates for trading signals. A key challenge is to select and condense them into a single signal. The simplest (and often successful) approach is conceptual risk parity, i.e., an equally weighted average of normalized scores. However, there is scope for optimization. Statistical learning offers methods for sequentially choosing the best model class and other hyperparameters for signal generation, thus supporting realistic backtests and automated operation of strategies.
This post and an attached Jupyter Notebook show implementations of sequential signal optimization with the scikit-learn package and some specialized extensions. In particular, the post applies statistical learning to sequential optimization of three important tasks: feature selection, return prediction, and market regime classification.

(more…)