team-055
Inspiration
Exploring the world of trading algorithms
What it does
Hedging | Part 1
The trader regularly hedges the trades. If there are too many positions (> 500), it automatically reverses the trades as the prices for both ETFs converge or intersect (hedging, but the other way). For a lower number of positions, it tries to secure hedges and realize winnings by symmetrically reducing the positions. This on its own works exceptionally well, as it has an inbuilt feature to reduce the delta if some trades do not get fully fulfilled. Also, by only trading half the amount of the possible gap, it reduces the number of interferences with other traders that might lead to asymmetric order fulfillment.
How we built it
Looking at the problem statement, there were three major tasks we should focus on:
First, identifying price discrepancies between SEMIS_ETF_EU and SEMIS_ETF_US, executing simultaneous buy/sell trades to capture profits while hedging to minimize risk. Trades were restricted to periods when both markets were active.
Then, the strategy will be extended to arbitrage between the ETF basket and its constituent stocks, estimating prices for closed markets to enable trading during downtime while carefully managing risk from delayed hedging.
Lastly, becoming market-makers by continuously quoting buy/sell prices for SEMIS_ETF_EU, using limit orders to provide liquidity and hedging trades via SEMIS_ETF_US or the basket stocks, despite challenges like tight competition and adverse selection.
For our trading algorithm, we started to tackle the different tasks from top to bottom, programming a solution within Python and the Optibook, a trading simulation.
Challenges we ran into
Financial algorithms are quite complex, so there were a lot of challenges that we had during our long journey. While hedging ETFs against each other works fine for our algorithm, hedging different instruments was much harder, and we did not fully succeed in making it profitable.
Another notable issue was estimating prices during market closures. Our current solution—relying on the last traded price for a share—is far from optimal. This approach often fails to maximize potential profits, leaving room for considerable improvement.
Due to time constraints, we concentrated solely on addressing the mentioned challenges and did not attempt to act as market makers. This places us at a significant disadvantage compared to algorithms that can set prices, ensure liquidity, and operate with greater flexibility. Consequently, our strategic options remain more limited.
Accomplishments that we're proud of
Although the algorithm may not achieve the highest possible PnL, it is overly resilient. In the long run, it always made a profit, most of the times with an hourly sharpe of > 0.10. The trader is able to run without any supervision, restarts automatically and compensate any irregularities.
What we learned
We dived deep into the world of financial algorithms, exploring different hedging strategies and deepening our knowledge of risk management and market concepts.
What's next for Hatchify
Our financial algorithms' challenges highlight several areas ripe for improvement. Firstly, while hedging ETFs against each other works well, hedging across different instruments has been less successful. In the future, advanced risk management frameworks or alternative hedging techniques could improve profitability by better-capturing relationships between instruments.
Another issue is price estimation during market closures. Relying on the last traded price is suboptimal and misses opportunities. Future advancements could include predictive models leveraging machine learning, correlated market data, or alternative data sources to forecast prices and improve decision-making during closures.
A significant limitation is the absence of market-making capabilities, which restricts flexibility and leaves potential profits untapped. Automated order book management, inventory control algorithms, and latent liquidity models could enable your algorithm to set prices, provide liquidity, and capitalize on bid-ask spreads.
Lastly, risk management can be strengthened through stress testing, dynamic risk constraints, and modeling adverse scenarios to ensure resilience against market shocks. By addressing these challenges incrementally, your algorithm can unlock greater profitability, adaptability, and robustness in the evolving financial landscape.
Built With
- hedging
- optibook
- python
- trading
Log in or sign up for Devpost to join the conversation.