Senior Developer, Trading
An incubation-stage wealth management firm is seeking a qualified candidate to assist in monetizing 2 "shovel ready" projects. The first project is a portfolio replication program, designed for self-service retail brokerage firms as well as smaller institutional clients. The deliverable for the first program will be a Minimally Viable Product that will be used to show case the concept to potential (future) money investors. The MVP will need to perform relatively simple data handling, regression analysis, and reporting functions (for which existing code is available for generating ideas). Additionally, a rudimentary Graphical User Interface will need to be married to the program to, again, aid in attracting more capital and showcase the potential functionality. This program will only need to operate in a historical setting, although the ability to perform tasks on real-time data would be seen as a plus.
Once the first project is completed, the second project will entail the creation of an equity Pairs Trading Strategy. This project has extensive documentation associated with it, mainly in the form of a "program recipe" that will serve as the basis for writing the code (although client stands ready for advice and compromise in the development of the program). While the code is fairly complex, each step is broken down into bite-sized pieces and re-used multiple times throughout the program. While no GUI is necessary for the second program, the primary challenges will be interfacing the program to a data provider and brokerage firm (likely to be the same) as well as the ability to perform both (historical) backtested and real-time paper trading analyses.
Primary duties for this position include (in order of importance):
● Converting written coding instructions into an operational programming language (Java) suitable for high-frequency trade signal generation.
● Aiding in backtesting and validating the code using historical data and, if economical, real world data. Backtesting would include risk and return analysis, equity curve creation, and Type I and II probability analysis.
● Ability to interface programmed product among a Cloud-based computational solution (current preference: Microsoft Azure) and brokerage account (current preference: Interactive Brokers; also serves as current data provider).
● Aiding in iterative algorithm optimization based on backtesting/validation analyses.
● Ability to create rudimentary Graphical User Interfaces for various programs to aid in "selling"
● Ad hoc regression and descriptive statistical analysis when needed both on raw datasets and on the signals created by the trading model(s).
● Advising, where possible and appropriate, on observational improvements in the IT, code, etc.
Note: some of the trading algorithms will require the use of statistical and (Ordinary Least Squares) regression routines. Also, this position would require the following technical skills:
● Strong knowledge and experience in a programming language(s) common in the algorithmic trading industry; mainly Java (preferred) and with a preference towards writing code for use in Cloud-based computing.
● Strong knowledge and experience in handling very large datasets, particularly high-frequency market data.
● Ability to write trading algorithms that are optimizable according to various profit-determining variables (e.g. length of time a trade is allowed to sit unexecuted, etc.). Self-optimizing algorithms based on numerical optimization (e.g. based on a rolling historical dataset, find the decision parameter X that would have maximized profit; change variable X in code going forward) are preferred.
● Knowledge in basic statistical- and regression- related routines with some experience in basic statistical inference & reporting.
● Ability to fault-test and backtest/validate trading algorithms with historical data and, preferred, live market data.
● Ability to articulate the project's progress, challenges, and recommended improvements.
● Knowledge of various data and brokerage services preferred.