A "carry trade" is defined as the investment strategy that borrows in a low interest rate currency and lends in a high interest rate currency to take advantage of interest rate spreads. Technically, to implement a "carry trade" strategy, FX portfolio managers use FX futures and go long the high interest rate currency / short the low interest rate currency. The forward price of a high interest rate currency is indeed below its spot price, the forward/spot discount representing the interest rate spread between the two currencies over the term period. The underlying assumption is that on average, the interest rate spread will more than compensate for the potential drop of the high interest rate currency against the low interest rate one.

There is a fair amount of risk to the carry trading strategy. The currency pairs that have the best conditions for using the carry trading method tend to be more volatile. For this reason, carry trading must be conducted with caution. Nervous markets can have a fast and heavy impact on currency pairs that are considered to be good carry candidates. Risk management must be performed wisely to limit the drawdown of the FX portfolio.

A UBS mentor will be assigned to each team to support and guide the members of the team from the start of the research until the presentation day.

About the sponsor

UBS is a Swiss multinational investment bank and financial services company founded and based in Switzerland. Co-headquartered in the cities of Zürich and Basel, it maintains a presence in all major financial centres as the largest Swiss banking institution in the world.



Act as if you were a FX portfolio manager willing to build a diversified currency trading strategy. The strategy will aim at capturing "carry", i.e. taking advantage of interest rates spreads between currencies, while controlling the volatility of the FX portfolio.

Investment universe

The Investment Universe is composed of 22 (properly rolled) FX futures. The universe can be called using the function getTickersFXCarryStrategy.

> getTickersFXCarryStrategy() ticker description baseCurrency quoteCurrency 1 AD Curncy Australian Dollar AUD USD 2 AD-CD Curncy Australian Dollar / Canadian Dollar AUD CAD 3 AD-JY Curncy Australian Dollar / Japanese Yen AUD JPY 4 AD-NV Curncy Australian Dollar / New Zealand Dollar AUD NZD 5 BP Curncy British Pound GBP USD 6 BP-JY Curncy British Pound / Japanese Yen GBP JPY 7 BP-SF Curncy British Pound / Swiss Franc GBP CHF 8 BR Curncy Brazilian Real BRL USD 9 BR-JY Curncy Brazilian Real / Japanese Yen BRL JPY 10 BR-PE Curncy Brazilian Real / Mexican Peso BRL MXN 11 CD Curncy Canadian Dollar CAD USD 12 CD-NV Curncy Canadian Dollar / New Zealand Dollar CAD NZD 13 EC Curncy Euro Dollar EUR USD 14 EC-AD Curncy Euro / Australian Dollar EUR AUD 15 EC-JY Curncy Euro / Japanese Yen EUR JPY 16 JY Curncy Japanese Yen JPY USD 17 NV Curncy New Zealand Dollar NZD USD 18 NV-JY Curncy New Zealand Dollar / Japanese Yen NZD JPY 19 PE Curncy Mexican Peso MXN USD 20 RF Curncy Euro / Swiss Franc EUR CHF 21 SE Curncy Swedish Krona SEK USD 22 SF Curncy Swiss Franc CHF USD

To be long Australian dollar and short US Dollar: buy the ticker AD.

To be short Canadian Dollar and long US Dollar: sell the ticker CD.


No benchmark.

Strategy definitions

A Strategy is a portfolio of Investable FX Indices. Its weights are managed dynamically on the basis of an algorithm which generates transaction signals.

The strategy must comply with the following constraints:

  • Each weight must be in a range of [-100%; +100%]
  • The portfolio's annualised volatility must lie between 8% and 12% for the entire 2007::2016 period.
  • First weights have to be generated before/on 2008-01-02 (1 year calibration/training. Rolling/expanding windows are allowed)
  • Payout has to be replicable and contain no lookahead bias
  • All time series data has to be called via the DataFeatures object - no data calls in your payout.
  • Whole notebook has to be ran under 15 mins (excluding the testFXCarrySubmission function). Training of models/processing of data inclusive.

For the avoidance of doubt, the number of Investable FX Indices that shall be used within the Strategy is subject to the team's discretion. The right balance between leverage and volatility is key here.

Strategy transactions

Transaction costs: No transaction costs.

Transaction frequency: The maximum transaction frequency is daily (no intraday trades). All trades are executed at market close prices.

Transaction signals: Transaction signals must be based on data available at close-of-business on the day prior to the execution.

Backtest period

The in-sample Backtest Period runs from January 2007 to December 2016.


Teams will be ranked based on the weighted arithmetic mean of their various rankings, i.e.:

  • Out of sample Sharpe ratio (weighted at 40%).
  • Presentation evaluation (weighted at 30%).
  • Out-of-sample Calmar ratio (weighted at 20%).
  • First round ranking (weighted at 10%).


Team A is ranked according to the different metrics as follow

  • Out of sample Sharpe ratio : 2nd
  • Presentation evaluation : 10th
  • Out-of-sample Calmar ratio: 4th
  • First round ranking: 3rd.

Its average ranking will be (0.4 x 2) + (0.3 x 10) + (0.2 x 4) + (0.1 x 3) = 4.9 to be compared with other teams for the final ranking.
Note: If 2 teams have the same average ranking, the team with the better ranking in the first round will be ranked higher than the other team.


This competition is part of the final round of the UBS Quant hackathon 2020. Please refer to the main page for award details.


The only investable assets for this competition are the FX tickers listed in the Investment Universe section above. The ONLY available fields for these contracts are bb_live (adjusted close price) and carry12 (annualised carry over a 12-month maturity).

The following formula is used to compute the annualised carry:

 C_t = \left( \dfrac{S_t}{F_t}  - 1 \right) \dfrac{360}{30*m}
  •  C_t denotes the annualized carry evaluated at date t
  •  S_t stands for the spot rate at date t
  •  F_t stands for the (m-months) forward rate at date t
  •  m denotes the maturity in months

Use the tutorial notebook to see how to retrieve the dataset for this competition.

Python Notebook

R Notebook


Support tools

  • After you have joined the competition, click the "get started" button. You will be redirected to your dashboard. In "Public Notebooks", filter notebooks by competition tag using the "UBS FX Carry" tag.
  • Read about how to avoid look ahead bias to maximise your chances to win.
  • Use the forum to find help from the community or from Alphien support team.

Tips and advice

  • Use AlphienLab to conduct your research.
  • Once you have fine-tuned your model, document it in a notebook and submit the notebook for our review.
  • We highly recommend you use the forum as much as you can to find help.


Full competition rules can be found here.


Please refer to Alphien Terms of Use.