Datalogisk Institut, DIKU > Begivenhedsmappen > Begivenheder 2013 > Master Thesis Defence ...
Master Thesis Defence by Filip Bruman
An evaluation of parallelized financial trading strategies on commodity, shared memory multi processors by Filip Bruman
External Examiner:
Morten Frank, Nordea
Supervisor:
Marcos Vaz Salles, DIKU
Abstract:
Quantitative trading utilizes trading strategies, which are computer programs that analyzes market data based on a set rules. Whenever a pattern matching the rules the strategy enters or exits a trade. Before make use of a trading strategy, traders test its settings on historic data to evaluate its performance and thereby project the future performance of the strategy. Being able to test strategies with a short turnaround time is useful for being able to try out many different settings.
In this thesis trading strategies are implemented in a general purpose programming language, parallelized utilizing coarse and fine-grained parallelization, running on commodity hardware, with contemporary multi-core processors enabling traders, with limited knowledge or experience of programming, to reduce the time to solution for testing of trading strategies.
Strategies are parallelized utilizing coarse and fine-grained parallelization, using threads and auto-vectorization respectively, and experimentally evaluated with a set of varying sizes of synthesized data simulating stock market data, as well as a dataset containing real market data.
Strategies were coarse and fine-grained parallelized with mixed results. One strategy got a speedup close to 20x on 32 cores. While another strategy had a merely 4x speedup on the same dataset size and 32 cores. Coarse-grained parallelization was beneficial to all strategies.
Fine-grained parallelization could in some cases have a significantly inhibiting effect on a strategy, close to 25% compared to a non-parallelized version.
To parallelize trading strategies enables traders to get a quicker response on testing workflow. Using commodity hardware, multi-core processors and a shared memory model can reduce testing significantly in some cases. Care should be taken in applying especially fine-grained parallelization to control its application particularly when external libraries are used and auto-vectorization is applied to all code.


