Monthly Archives: September 2016

US Investor Allocation Update

The following is a generic asset allocation report from the perspective of a US investor. I use the Barclay US all treasury index, the MSCI World ex US and the MSCI US Gross indices (i.e dividends re-invested) as proxies for bonds and equities holdings. As time goes I will add a few more asset buckets such as EM, commodities and properties. So see this as a first attempt to an evolutive product.

The below charts shows the rolling 36-month return, volatility and risk adjusted return for each of the assets used in the final portfolio. Clearly equities have a higher volatility than bonds but also higher/lower localised returns highliting that timing is key in unlocking those higher returns.

plot of chunk Summary charts
The below summary performance statistics show that a US investor would have got the best risk adjusted return by holding a broad basket of US treasuries. Over the long term the returns would have been quite similar accross asset classes. However the risk as expressed by the annualised volatility of the monthly returns and the maximum drawdown would have been at it highest for equities and particularly for World Ex. US stocks.

##                                 US Treasuries World Ex US Stocks US Stocks
## Annualized Return                        4.71               4.10      4.98
## Annualized Standard Deviation            4.51              17.24     15.15
## Annualized Sharpe Ratio (Rf=0%)          1.05               0.24      0.33
## Worst Drawdown                           5.01              59.39     52.92

In the following I use a mean-variance model to compute the weights of the portfolio that maximises the information ratio on the efficient frontier.The model is optimised for “long only” and weights adding to one constraints. I use a rolling window of 36-month to estimate the returns, volatility and correlation input fed into the Markovitz model. The use of a rolling window implies that the momentum effect in the input is captured by the optimisation. Therefore if an asset becomes more attractive through time in terms of its risk adjusted return and/or diversification potential its participation into the final portfolio should increase and vice versae.

The two charts below show how the optimised portfolio weights have changed throughout time and also what were the weights at the end of the last month.

plot of chunk weights_chart
Using the above weights I then calculate the return of the portfolio for the folowing period assuming costs of 0.25% of adjusted notional for each monthly rebalancement. The performance is compared to the return of a portfolio composed of 60% US treasuries and 40% US equities.

plot of chunk Opt_porfolio_charts

**Summary Performance Statistics

##                                 Benchmark 60/40 Optimal Portfolio
## Annualized Return                          5.29              5.69
## Annualized Standard Deviation              5.61              4.89
## Annualized Sharpe Ratio (Rf=0%)            0.94              1.16
## Worst Drawdown                            19.43              7.29

Drawdowns Table

##         From     Trough         To Depth Length To Trough Recovery
## 1 2007-12-31 2008-10-31 2008-12-31 -7.29        13     13       11
## 2 2009-01-31 2009-06-30 2010-06-30 -4.74        18     18        6
## 3 2003-06-30 2003-07-31 2004-02-29 -4.59         9      9        2
## 4 2015-08-31 2015-09-30 2016-06-30 -4.57        11     11        2
## 5 2004-04-30 2004-05-31 2004-09-30 -3.31         6      6        2

Monthly Returns

##       Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec YEARLY
## 2002  0.5  0.9 -2.2  2.1  0.6  1.1  2.2  2.1  2.4 -0.9 -0.8  2.2   10.1
## 2003 -0.3  1.6 -0.4  0.5  3.0 -0.5 -4.1  0.5  3.0 -1.2  0.1  1.3    3.4
## 2004  0.9  1.2  0.6 -3.1 -0.3  0.7  0.2  1.8  0.7  1.5  0.7  1.8    6.8
## 2005  0.1  0.5 -0.9  0.7  1.0  0.9 -0.4  2.0  0.7 -2.2  1.7  2.9    7.1
## 2006  3.9 -0.2  2.2  3.6 -3.0  0.0  0.9  2.1  0.4  2.1  1.9  0.7   14.6
## 2007  0.2  1.2  1.2  2.4  0.2  0.0  0.6  0.5  2.2  1.9  0.6 -0.5   10.4
## 2008 -0.9  1.1  0.2 -0.1 -0.4 -1.8 -0.5  0.3 -2.4 -2.4  5.0  3.5    1.6
## 2009 -3.2 -0.6  2.2 -1.9 -1.1 -0.2  0.4  0.9  0.8 -0.1  1.4 -2.7   -4.0
## 2010  1.6  0.4 -0.9  1.1  1.7  1.9  0.7  2.0  0.0 -0.2 -0.7 -1.8    5.8
## 2011  0.0  0.1 -0.1  1.3  1.4 -0.4  1.6  2.2  1.2 -0.1  0.5  1.0    8.6
## 2012  1.2  0.2 -0.1  1.0  0.1  0.4  1.1  0.3  0.2 -0.5  0.6 -0.3    4.3
## 2013  0.2  0.7  0.8  1.2 -1.3 -1.3  1.1 -1.1  1.4  1.6  0.4 -0.1    3.7
## 2014  0.3  1.3 -0.1  0.6  1.4  0.4 -0.5  1.9 -1.0  1.6  1.6  0.0    7.7
## 2015  0.3  1.0 -0.2 -0.1  0.3 -1.5  1.5 -3.6 -1.0  3.2 -0.1 -0.9   -1.1
## 2016 -1.3  0.6  2.0  0.1  0.5  1.8  1.2 -0.4   NA   NA   NA   NA    4.5

If you need more information or have questions about the above, feel free to contact me at

G10 FX Risk Report Update

The following analysis uses a proprietary G10 FX implied volatility index which I created quite a few years ago. The index is a G10 FX 1-month implied volatility index which weights are derived from the BIX FX triennal surveys for the year 2001,2003 & 2007. If you want more information on the exact formulation of the index feel free to contact me for a chat. For the time being suffice to say that the G10 FX volatility index is a broad and accurately weighted measure of G10 FX risk.

In my approach I recognise that the nominal level of implied volatility is a crude metric of risk therefore I also use two other measures, namely Volga and the ShockIndex. The Volga is simply the volatility of the G10 FX volatility index over a given period. This measure highlights how uncertain and unstable the level of risk in G10 FX has become. Though generally positively correlated those measures of risk can diverge from time to time. You can have a high level of volga whilst G10 FX volatilities are trading at rather innocuous levels. This is not a trivial observation as the leverage undertaken by market participants tends to be an inverse function of market volatility which implies a greater vulnerability when volatility becomes uncertain at low levels and therefore cannot be accurately budgeted for. The ShockIndex is the ratio between the Volga and the G10 FX volatility index at the beginning the historical window chosen to evaluate the Volga. It quantifies sharp changes and acceleration in risk levels. Historically it has proven to be a good classifying measure for market event risks in FX markets.

The below charts shows those three measures both relative to a time axis and their historical distribution. The red lines are the 95% confidence intervals, the purple line the median. The blue line highlight the current level. The Volga and ShockIndex in this report are evaluated over a period of 14 days. The medians and 95% confidence intervals are calculated over the full history going back to 1996 though the charts shows only the recent years.

plot of chunk riskchart

At close of business the 2016-09-06 the G10 FX volatility index was estimated at 8.2 % at the 62.3 percentile. The 14-day G10 FX Volga was estimated at 5.7 % its 79.3 percentile and the shockindex at 1 or its 90.6 percentile.

The above charts are useful, however their visualisation is quite limiting. On the one hand we need quite a few charts to present the data on the other hand it is difficult to show the full G10 FX volatility Index history going back to 1996 as this would make the charts unreadable. Therefore clustering and aggregating the whole data into a single chart should be useful to the end user. To answer this I use a mapping technique developed by Kohonen in the 1980′. It uses an unsupervised neural network to re-arrange data around meaningful clusters. Though computationally complex is a practical way to summarise multidimensional data into a low (usually 2) dimensional system.

The below chart shows how the G10 FX Volatility Index history was split into 4 distinct clusters. Those clusters where computed not only as a function of the G10 FX Volatility Index level but also as a function of the other discussed variables, namely Volga and Shockindex.

Since 1996 the G10 FX volatility Index traded 59 % of the time in Cluster 1, 30 % in Cluster 2, 9 % in Cluster 3 and 3 % in Cluster 4. Overall the layering provided seems quite intuitive as the increase in risk and time spent in each cluster points toward what would generally be expected from market risk regimes ranging from low to high risk.

plot of chunk cluster_chart

In the chart below we zoom on the various regimes within which the G10 FX Volatility Index hasevolved for the current year. so far it remained 66 % of the time in Cluster 1, 24 % in Cluster 2, 10 % in Cluster 3 and 0 % in Cluster 4.

plot of chunk ytdriskchart

Finally the below chart shows a Self Organising Map of the above mentioned risk metrics. The data has been grouped and colored as a function of four clusters of increasing market risk regimes. Obviously as shown on the map, the minimum level of volatility pertains to cluster 1 and the highest to cluster4. The current regime and its progression from 21 days ago is also highlighted on the map.

plot of chunk SOM_chart

Minimum Spanning Trees and G10FX implied volatilities…

I have always been keen on clustering methods as they are a practical way to visualise meaningful relationships that may exist in the somehow chaotic financial markets…..Following my previous post on the subject I decided to extend this to FX Implied volatilies…

The following charts show how major 1-month FX volatilities have been trading over the last 20-years and for 2016.

plot of chunk charts

The folowing charts shows the correlations of daily changes since 1996 and for 2016.

plot of chunk correlation

The below plot the minimum spanning tree for G10FX implied vols. The distance between the nodes being a function of the above correlations. Some groupings are quite intuitive…some other less so…I would say the recent period seems to be at odd with the period 2010-2015 where we had two specific group: one for European currencies the other for commodity currencies….

plot of chunk mst

If you want a natter about this or just to exchange some ideas on the subject or other concepts presented in my blog, contact me at

G10 FX Implied Volatilities: Cheap or Expensive ?

The following report provides a granular analysis of implied volatilities within G10 FX. I use primarily the same formatting than for my G10FX positioning report to estimate how extended the 1-month FX implied volatilities are over various time horizon.

The first set of charts shows the historical T-stat of the 1-day changes in 1-month implied volatilities over a rolling period of 61-days. This is my statistical metric to quantify how stretched the implied volatilities are, but clearly other time period could be used as shown further down on in that report. The purple line represents the median value since 1996 and the red lines represent the 95% confidence intervals. Therefore if the value is above or below those the deviation of the given implied volatility should be deemed as atypical relative to what would be expected under a normal distribution (I am not saying that implied volatilities have a normal behaviour to be clear….) and therefore overbought/oversold.

plot of chunk stretch line chart

The below charts shows the current implied volatilities relative to their historical distributions since 1996. Once again the red lines delimit the 95% confidence intervals and the purple line the median value. The blue line indicates the most current level of 1-month implied volatility.

plot of chunk stretch distribution

Finally the below shows a stretch map of the T-Stats to help visualise how much implied volatilities have departed from their equilibrium levels over time horizons ranging from 1-month to 6-month. The bigger the square the most significant the observed upside (Green) or downside (Red) of the implied volatility over the given period.

plot of chunk stretch map

GBP TWI Break Analysis…

In the following I us an R package BFAST designed to detect strucutural breaks in time series.The script Iteratively detects breaks in the seasonal and trend component of a time series. The first chart shows the various break and fitted regressions. The second chart shows the deviations from the regression lines and 95% interval of confidence. This could be used as an overbought/oversold indicator. Anyway, just work in progress…so any input / suggestions are always welcome as usual. Feel free to contact me

plot of chunk plot plot of chunk plot

Trade Weighted Currency Indices Stretch Map

Trade Weighted Currency Indices Report

Tue Sep 06 22:39:54 2016

The following report aims to provide a gauge to the current strenght of major currencies. For doing so I use the Bank of England Trade weighted Exchange rate indices and a standardised statistical measures of price deviation to provide an estimate of how stretched major currencies are on a trade weighted perspective.

plot of chunk linechart

I first calculate the T-stat of the mean price deviations over a rolling period of 61 days. The charts below show the results for each currency over the last 500 days. The purple line represents the median value since 1990-01-03 and the red lines represent the 95% confidence intervals. Therefore if the value is above or below those the deviation of the given currency would be deemed as atypical relative to what #would be expected under a normal distribution and therefore overbought/oversold.

plot of chunk rolling chart

The following Map chart shows how stretched the currencies are over time horizons ranging from 1-month to 1-year. The bigger the square the most significant the upside (green) or downside (red) of currencies over the given period.

plot of chunk stretch map
The charts below show how the daily changes in the Trade weighted indices have correlated since January 1990 and since the begining of 2015.

plot of chunk correlation
Finally, the following provide an ARIMA forecast for each of the trade weighted indices. My script selects the best ARIMA fit over the previous 250-day to generate a forecast for the next 21 days.
It also shows the forecast confidence intervals.

plot of chunk arimaforecastplot of chunk arimaforecastplot of chunk arimaforecast

GBP TWI update….

Whatever the market being traded, there always will be a a question being asked at one moment: How far can this thing go ? Clearly not an easy question to answer as this will invariably depends on factors that are partly unknown or difficult to estimate, such as fundamentals, market positioning or market risk amongst others. The first part is obviously to assess how atypical the move experienced in the given instrument is. This report aims to contribute to this.

The below chart shows the GBP TWI over the period of January 1990 to September 2016 . On the 05 September 2016 it was trading around 79.8429.

plot of chunk chartdata

In the below I plot the previous 125 days against other similar historical periods that would have closely matched the recent history. The data has been normalised so as to be on the same scale. The chart shows the latest 125 days in black, and overlay similar historical patterns in grey. It Also shows what has been the price path for the following 125 days as well as the observed quartiles.

plot of chunk pattern

Finally I plot the last 125 days and a trend forecast derived from an ARIMA(0,1,0) model as well as the 95% confidence intervals. The ARIMA model is fitted to the past 625 historical values whilst ignoring the last 125 days, therefore we can look at the recent price path against the trend forecast and its confidence intervals to gauge how (a)typical the recent move has been.

plot of chunk arimaplot

Non Farm Payrolls time again…

It is NFP time again, sweepstakes must be rife on trading floors around the world…..So it is time to use my NFP forecasting model which leverages on both an ARIMA forecast and a simple linear regression using the ADP as the independent variable to generate a mixed forecast of the NFP.

Not surprisingly the ADP and the NFP data releases are positively correlated, thoug this has been significantly time varying. Also the NFP tend to be generally twice as volatile than the ADP numbers, highlighting their challenging nature for a forecaster.

plot of chunk chartsplot of chunk charts

##       ADP                 NFP           
##  "Min.   :-881.19  " "Min.   :-823.00  "
##  "1st Qu.: -31.00  " "1st Qu.: -28.50  "
##  "Median : 143.88  " "Median : 126.00  "
##  "Mean   :  57.85  " "Mean   :  65.45  "
##  "3rd Qu.: 196.34  " "3rd Qu.: 219.50  "
##  "Max.   : 356.56  " "Max.   : 522.00  "

In the below chart I use a 24-month rolling Granger Causality test to investigate the causality at a lag of one between ADP and NFP releases. The chart shows the P-values of the test which indicate in which way the causality,if any, flows. Clearly sometime the ADP has been a leading indicator, other times not.

plot of chunk causality

In the below I use an optimising algorithm to find the best ARIMA over the entire sample so as to generate a trend forecast of the NFP. The wide confidence intervals clearly highlight that those forecasts are associated with a high degree of of uncertainty.

plot of chunk arimachart

Finally I use a mixed model to generate an estimate of what the next NFP release will be. The forecast is derived both from a linear regression model forecast with the ADP as the independent variable and also from the forecast generated by the previously fitted ARIMA model.

The LM model forecasts an NFP release of : 180,034 whilts the ARIMA calls for a release of: 232,259 . This contributes to a mixed model forecast of : 204,243