Hopefully this is useful for students and candidates coming from outside the industry who are looking to understand what it’s like working for a trading firm. Job titles like “researcher” or “developer” don’t give a clear picture of the day-to-day roles and responsibilities at a trading firm. This guide focuses on research and core development roles.
Primary job requirements:
• Strategy research (‘research’):Programming, statistics, trading intuition and the ability to understand market data.
• Core development (‘dev’): Low-level software engineering, networking and system architecture.
The software components of a trading system are built by one of these two teams. The majority of the components are built in-house at most major trading firms, so below is a list of the programs you could expect to build or maintain if you were on the research or dev teams. Each of these programs can be a separate process, although we’ll discuss some variants later.
Programs for live production trading:
• Market data parser: Dev. Normalizes each exchange’s protocol (including different versions over time) into the same internal format.
• Trading strategy: Research/Dev. Receives normalized data, decides whether to buy or sell.
• Order gateway: Dev. Converts from internal order format to each exchange’s order entry protocol (different than the market data protocol).
Programs to support live production trading:
• Monitoring GUI: Dev. GUIs used to be important for click traders but are now mainly used to monitor that the trading system is performing appropriately. They are still occasionally used to manually adjust a few parameters, such as overall risk tolerance.
• Drop copy: Dev. Secondary order confirmation to make sure you have the trading positions you think you do.
• Market data capture: Dev. Record the market data in parallel to what’s going into the strategy to verify later that the strategy behaved as intended and to run statistical tests on historical data (live capture is more reliable than purchasing from a vendor so most major firms avoid buying data from a vendor).
• Startup scripts: Dev/Operations. Launch all these different software programs in the right order and at the right time of day each time they need to be restarted (typically daily or weekly), and alert or recover from startup problems.
Programs to optimize and analyze the trading strategy:
• Parameter optimization: Research Regressions or other metrics to help people compare one trading strategy parameter setting to another to find the best.
• Production reconciliation: Metrics to confirm that the state in the trading strategy’s internal algorithm matched calculations using captured market data.
• Back testing simulator: Shows estimated trading strategy profit or loss on historical data.
• Graphing: Display profit or loss, volume, price and other statistics over time.
Hopefully now it’s obvious that the system has so many components that those two jobs are just a few parts of a much wider set of roles and responsibilities. The most important skills for success are actually very close attention to detail, hard work and trading intuition. On top of that it should be clear that having strong programming skills is essential.