The Algorithmic Trading Case is designed to challenge participants’ programming skills by developing algorithms using the RIT API to automate trading strategies and react to changing market conditions. Throughout the case, these algorithms will submit orders to profit from arbitrage opportunities and private tender offers. Due to the high-frequency nature of the case, participants are encouraged to develop algorithms that can adapt to rapid changes in market dynamics using their selected programming languages.
KEY OBJECTIVES
Create an algo model using the provided template to identify the profitability of private tender offers and execute trades accordingly while managing liquidity risk and market risk. Consider utilizing ETF-Creation and ETF-Redemption Converters as an alternative approach to mitigate liquidity risk when working on a private tender offer.
Develop a trading algorithm designed to detect arbitrage opportunities between underlying stocks and ETF. Consider trading CAD and USD to hedge the currency exchange rate exposure.
DESCRIPTION
Only one team member shall trade , while the others collaborate in developing the code. Each heat will be 5 minutes long and represent one month of trading.
Trading time per heat: 300 seconds (5 minutes)
Calendar time per heat: one month of trading
Order submission using the RIT API will be enabled. Data retrieval via Real-time Data (RTD) Links and the RIT API will also be enabled. All trades must be executed by a trading algorithm. Participants will not be allowed to trade manually through the RIT Client once the heat begins (but they will be allowed to manually use the RIT Client to use Converters – see “Market Dynamics” section below). Participants are allowed to modify their algorithms in response to prevailing market conditions and competition from the algorithms of other teams. They will have 2 minutes between each heat to re-load their algorithms. A base template algorithm will be provided [1] to participants and can be directly modified to obtain higher profits. However, participants are strongly encouraged to create their own algorithms.
[1] The “Base Algorithm” will be released on the RITC webpage as outlined in the “Important Information” section above.
MARKET DYNAMICS
Ticker
CAD
USD
BULL
BEAR
RITC
Security type
Currency
Currency
Stock
Stock
ETF
Currency
CAD
CAD
CAD
CAD
USD
Starting Price
n/a
n/a
10
15
25
Fee/share (Market Orders)
n/a
n/a
0.02
0.02
0.02
Rebate/share (Limit orders)
n/a
n/a
0.03
0.03
0.03
Max order size
2500000
2500000
10000
10000
10000
The base currency in this case will be CAD. Therefore, USD will be quoted in a direct exchange rate as the number of CAD required to buy 1 USD.
Participants will be able to trade two stocks denominated in CAD and one ETF denominated in USD with varying levels of volatility and liquidity. This dynamic exposes participants to the basics of market microstructure in the context of algorithmic trading. In equilibrium, the ETF pricing will reflect the following sum of the two stocks traded, subject to periodic shocks to its price. In other words, in equilibrium, the CAD-converted price of the RITC ETF will be the sum of prices of both BULL and BEAR stocks since the ETF is equally weighted.
PRIT,USD * USD = PBULL,CAD + PBEAR,CAD
Participants will also receive private tender offers for the ETF. Since the decision time to accept or reject a tender offer is very short, participants should build an algorithm to evaluate the profitability of a tender offer to make a decision to accept it or not. Once a tender offer is accepted, a participant’s algorithm should also unwind the positions at a profit while managing the market price impact of trades.
In addition, there will be two Converters [2] available to facilitate a conversion between the underlying stocks and the ETF. Participants should consider using these Converters as an alternative approach to manage the liquidity risk associated with submitting orders directly to the market. Please note that these Converters can only be used by human traders: you will be able to use them from the RIT Client manually using the “Assets” tab, but your algorithm will not be able to use them automatically through the API.
Converters
Description
Convert From
Convert To
Cost
ETF-Creation
ETF creation from underlying stocks
10,000 BULL stocks and 10,000 BEAR stocks
10,000 units of RIT_C
$1,500 USD/use
ETF-Redemption
ETF redemption to underlying stocks
10,000 units of RIT_C
10,000 BULL stocks and 10,000 BEAR stocks
$1,500 USD/use
[2] The two Converters are available from the “Assets” tab on the RIT Client.
TRADING/POSITION LIMITS AND TRANSACTION COSTS
Each trader will be subject to gross and net trading/position limits during trading in each heat. The gross limit reflects the sum of the absolute values of the long and short positions across all securities, and the net limit reflects the sum of long and short positions such that short positions negate any long positions. Trading/position limits will be strictly enforced and participants will not be able to exceed them. Each position in the stocks will be counted towards trading/position limits with a multiplier of one, while each position in the ETF will be counted with a multiplier of two. For example, if you long 100 shares of any stocks, your gross and the net limits will increase by 100. If you buy 100 shares of RITC, your gross and net limits will increase by 200 (100 shares * multiplier of two).
The maximum trade size will be 10,000 shares per
order for both stocks and the ETF. Transaction fees will be set at $0.02 per
share for each stock and the ETF on all market orders filled. A rebate of $0.01
per share for each stock and the ETF will be provided for all submitted limit
orders that are filled.
POSITION CLOSE-OUT
Any non-zero position of stocks will be closed out at the end of trading based on the last traded price while the ETFs will be closed out at the fair value which is the sum of the component stock prices converted to CAD.