Estimating behaviour of CTAs using a proprietary model
The goal of this white paper is to find the aggregate flow of Commodity Traded Advisor (CTA) funds so that their overall asset allocation as well as positioning in a given set of securities can be estimated. Because these funds are known to use one kind of specific strategy - a trend-following, theoretically, their trading behaviour can be mimicked and apply it to a set of multiple time series with prices of securities and create a general CTA portfolio (to which I will refer as Enterprai CTA)that simulates the positioning of the majority of the CTA funds. In order to validate our results, we can compare the performance of our portfolio to the performance of the Societe Generale (SG) Trend Index which is based on the published returns of 10 CTA funds selected by SG.
In this work, we created a portfolio of more than 50 different securities from 4different asset classes in order to imitate a portfolio shown in Moskowitz’s paper from 2012. The asset classes included fixed income, equity, commodities, and currencies. These securities were either 3-month futures, or 3-month exchange forward for currencies.
The strategy consisted of calculating two moving averages: short and long. The role of the former was to smooth the current signal to reduce the issues caused by everyday volatility. The role of the latter was to be used as the main descriptor of the trend, e.g. if the market reacts slowly this parameter should be much greater than if the market reacted rapidly to a given change in the value of a specific asset. This can be also assumed as the convexity of the trend signal.
In our method, for each moving average, we took either a fully long or fully short position in each security. However, to accommodate different trends and strengths of these trends, we decided to use 33 different moving averages simultaneously. There were 11 different uniformly weighted (simple) long moving averages spanning between 5 and 250 business days and 3 different exponentially weighted short moving averages between 1 and 5 business days. The diversification along the long moving averages helped to mitigate the effect of betting on one trend and being “unlucky”. The role of the shorter moving average was to buy some time before we open a full position for each long trend so that the position was increased to full long (short) only when the price has been significantly lower (higher) than the long trend for at least ∼5 consecutive days.
Inspired by Moskowitz’s work again, we also implemented volatility targeting on a simple momentum strategy that allowed a portfolio to adjust the exposure to fluctuating risk in each security. The overall risk of each security remained constant in the entire portfolio by leveraging each security based on its ex-ante volatility based on the last two months. This resulted in scaling down (up)the position in securities with recent volatility above (below) the target. This ex-ante volatility was subjected to change every day and was independent of the volatility of other assets in the portfolio.
Even though each of our moving average strategies was binary, i.e. they were either fully long or short in each security, the overall position in our portfolio was an average of -1s and 1s among these 33 strategies. This signaled how much of our designated capital for each asset we wanted to invest. Due to the volatility targeting step, this value could, however, be scaled up or down depending on the risk of each security, i.e. if our portfolio is 80% short in US 2 Year BondFuture and its ex-ante volatility is 5%1 but our target is 15%, this position will be scaled threefold to 240% which means we will leverage our position.
However, if a trend is weak (the price of a security is flat), moving averages will oscillate around a neutral position but will never be 0%. Flat prices will also make the volatility targeting leverage our bets. Such a move should be discouraged from our strategy. Therefore, an additional constraint was introduced which allows leveraging the position only if the absolute position from our moving averages is greater than 5%.
Results & Discussion
In order to verify and validate our results, we decided to compare our portfolio performance with SG Trend Index. For the returns between 2000 and 2021, we plotted a rolling Sharpe ratio based on the previous year of returns. This way, we could minimise the effect of leverage of the whole portfolio on our comparison as overall leverage does not change Sharpe. It is, however, possible to affect the portfolio if different leverages were allowed used for different groups of asset classes.
As seen in Figure 1, the performance of our in-house CTA portfolio closely matches the performance of the index. Our portfolio seems to be in agreement during both the most extreme shifts, i.e. 2005, 2010, and 2015, as well as closely follow shorter-term fluctuations in Sharpe. In other words, it recapitulates its general level as well as shorter term changes both in their direction and in magnitudes.
Two major differences between these values are the extreme values of Sharpe in our CTA and systematic (constant) difference for some time periods, i.e. our CTA follows the direction of SG Trend Index change but is underperforming (overperforming) the index. The former can be explained by the simplistic approach in our method where we have not introduced any emergency strategy in a case of low performance. In reality, the CTA fund managers might have amore qualitative approach to damage control. The second difference between the index and our CTA is heavily dependent on the risk allocation for different asset classes and for simplicity it was assumed the target of 20% of annual volatility was used across all asset classes for the whole time period of 2000-2021.
If we assume that the goal of our CTA was to predict future SG Trend Index, we can use some familiar metrics used to assess the performance of our method to the benchmark2. This results in the following Table 1 with the metrics assessing how well our CTA tracks SG Trend Index.
The results in Table 1 show a good agreement of our model with the index. During 80% of the days, the performance of our model increased (decreased)together with the index. A high edge of 0.61 signifies that when our model was not in agreement with the index, the difference was not substantial.
The close match of our CTA can be also visualised by plotting each datapoint (business day) for the annual Sharpe ratio with two axes being Enterprai CTA and SG Trend Index as in Figure 2. The closer the points are to the y = x line the better the prediction is. As our data point cloud is spread along the x = y axis, we can say that these two time series are highly correlated. The distribution of these daily differences was also plotted in Figure 3.
It is important to note that multiple additions and complexities were considered in the model such as creating a single moving average strategy that incorporates momentum strength based on the gradient of the price. Instead, using multiple moving averages brings higher returns and agility for finding the strength of the trend. Another part of the research involved optimising multiple moving average parameters for each asset and for different time scales using their returns, Sharpe ratio, or minimal losses as benchmarks. Each one of these failed the backtesting validation. The possible reason was that it is difficult to separate the random effects of sudden unpredictable market crashes that tend to favour some “lucky” over “unlucky” parameters whose performance is over-rated (underrated) due to a sudden change. These over-optimised parameters did not perform well after such event.
Conclusions & Future Work
We created a CTA model that closely matches the benchmark index in both the longer and shorter term changes, and was able to capture not only the direction of the changes, but also their magnitudes. It was achieved by using a complex set of simple trend-following strategies that used two moving averages to determine if we should open a long or short position on a given asset. Their range allowed our portfolio to adjust its position based on the trend’s strength or the lack of thereof. These strategies were deployed on a wide set of more than50 securities across 4 different asset classes. Our CTA model was created using the bottom-up approach and we did not feed any data from the CTA funds to our model apart from the validation stage. Instead, it was based only on the prices of the securities that the CTA funds are known to trade.
Volatility targeting also played a crucial role in Enterprai CTA. Our research showed how important this tool was not only to match the performance of the major CTA index but also to gain any profits at all. It had a substantial effect on the positioning of the CTA model within each asset and could change even if the trends have not changed at all. This also showed that any prediction based only on the trend following signal of a single asset is meaningless.
In future work, we will try to incorporate the risk load factors adjusted for asset class type as well as time period and match SG Trend Index even more closely. We would like to also find a more precise list of the securities that are traded by the CTA funds which could lead to more improvements including the accuracy of our model as well as usefulness of our resulting metrics.
Definitions of the metrics used for the CTA model:
- Accuracy - percentage of days when both SG Trend Index and Enterprai CTA portfolio performance increased (decreased).
- Edge - average score of multiplying the sign of the predicted value by the true value. There is a chance a model is highly accurate, but on a rare occasion when it is not, it is substantially more incorrect than it is correct about the directional change. This metric shows not how often but how much the model is wrong or correct.
- Average Absolute Difference - mean of absolute difference values for each between Enterprai CTA and SG Trend Index
- Standard deviation of absolute difference - standard deviation of absolute difference values for each between Enterprai CTA and SG Trend Index
- R2 score - coefficient of determination; regression score function. Best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R2 score of 0.0
- Mean square error - mean squared error regression loss.