Principles of Quantitative Development is a step by-step-guide to designing, building and modifying a trading platform. Because of the high number of participants in the markets, the high speed and frequency of trades, and the time it takes to set up third party platforms, there is a massive demand for proprietary in-house-built trading systems which can plug in quant models, handle risk management and trade processing functions, but be quickly modified to host new models, change risk parameters etc.The book begins by looking at the need for fully integrated platform designs, addressing the need for speed, business processes and current trends within banking. It then looks at the trade life cycle and its participants, from beginning to end, and then the functions within the front, middle and back office, giving the reader a full understanding and appreciation of the perspectives and needs of each function. The book then moves on to platform design, addressing all the fundamentals of platform design and build, system architectures, and programming languages and design patterns. Finally, the book will focus on some of the more technical aspects of quantitative development and look at traditional and new languages and programs used in modern platform design. The book will be accompanied by an additional CD-ROM, which features a fully working option pricing tool with source code and project building instructions, which will illustrate the design principles discussed, and enable readers to develop a mini-trading platform.
List of Figures, Tables and Big Pictures.Preface. 1 Introduction.
1.1 What is a trading platform?
1.1.1 Model archival.
1.1.2 Incremental deployability.
1.1.3 Live data feeds.
1.1.4 Trade persistence.
1.1.5 Regular processing.
1.2 Quants and quantitative developers.
1.3 Need for speed.
1.4 Implementation options.
1.4.1 Outsource to vendor.
1.4.2 Use vendor API.
1.4.3 Develop in-house.
1.4.4 Replace vended systems.
1.5 Current trends.
1.6 Technical and business aspects of platform design.
1.7 Importance of processes.
1.8 Objectives and organization.
Quiz. 2 Overview of Banking.
2.1 The offices.
2.2 Front office.
2.2.1 Economists.
2.2.2 Structurers.
2.2.3 Sales.
2.2.4 Trading desks.
2.2.5 Desk quants.
2.2.6 Platform or quantitative developers.
2.2.7 Desk risk management.
2.3 Middle office.
2.3.1 Product control.
2.3.2 Treasury control unit.
2.3.3 Market risk management.
2.3.4 Credit risk management.
2.3.5 Operational risk management.
2.3.6 Rates management.
2.3.7 Static data management.
2.3.8 Compliance and reporting.
2.3.9 Market risk management analytics.
2.3.10 Asset and liability management.
2.4 Back office.
2.5 Supporting units.
2.6 Summary.
Quiz. 3 Trade Life Cycle.
3.1 Pre-trade activities.
3.2 Inception.
3.3 Validation.
3.4 Regular processing.
3.5 Life-cycle events.
3.6 Termination and settlement.
3.7 Post-trade Activities.
3.8 Summary.
Quiz. 4 Trade Perspectives.
4.1 Trade-centric view.
4.2 Model-centric view.
4.3 Product-centric view.
4.4 Asset-class view.
4.5 Queues and status flags.
4.6 Aggregate views.
4.7 Bottom-line view.
4.8 Other perspectives.
4.9 Summary.
Quiz. 5 Programming Languages – Basics and Choices.
5.1 Language choice.
5.2 Basics of computing.
5.2.1 Development cycle.
5.2.2 Dependencies and Makefiles.
5.2.3 Lexical structure of a programming language.
5.3 Object-oriented languages.
5.3.1 Basics of object-oriented methodology.
5.3.2 Advantages and disadvantages of the object-oriented approach.
5.4 Functional programming.
5.5 Summary.
Quiz. 6 Trading Platform Design.
6.1 General design considerations.
6.1.1 Maintainability and documentation.
6.1.2 Scalability and extensibility.
6.1.3 Security and access control.
6.2 Architecture components.
6.2.1 Trade representation.
6.2.2 Market representation.
6.2.3 Static data management.
6.2.4 Quant library.
6.2.5 Trade transformations and operations.
6.2.6 Settlement triggers or pathways.
6.2.7 Batch processing and grid computing.
6.2.8 Credit replication.
6.2.9 Security and audit model.
6.2.10 Documentation and support model.
6.3 Example architecture.
6.4 Advanced architecture.
6.5 Summary.
Quiz. 7 Computing Patterns for Trading.
7.1 Facade pattern.
7.2 Visitor pattern.
7.3 Singleton pattern.
7.4 Factory patterns.
7.5 Component object model.
7.6 Summary.
Quiz. 8 Flexible Derivatives Pricing Tool.
8.1 Design scope.
8.2 Design goals and features.
8.2.1 Pricing tool features.
8.2.2 Data types support.
8.3 User interface.
8.3.1 Main control interface.
8.3.2 Create/edit product.
8.3.3 Create/edit model.
8.3.4 Generating a function template.
8.3.5 Complex parameter visualization.
8.3.6 Pricing interface.
8.3.7 Visualization interface.
8.3.8 Finite difference engine.
8.4 Summary.
Quiz. 9 Pricing Tool to Trading Platform.
9.1 Pricing tool: internals.
9.1.1 Common quant classes.
9.1.2 Main interfaces.
9.1.3 Pluggable pricing models.
9.1.4 Reusable components.
9.1.5 Source code documentation.
9.1.6 External packages.
9.2 Future enhancements.
9.2.1 Trade database.
9.2.2 Market data.
9.2.3 Life-cycle management.
9.2.4 Security and access control.
9.2.5 Batch process.
9.3 Summary.
Quiz. 10 Summing Up.
10.1 Epilogue.
10.2 Further reading.
10.2.1 Quantitative finance.
10.2.2 Computing.
10.2.3 Economics. Appendix.
A.1 CD Contents.
A.2 Historical perspective. Glossary of Terms. Index.