Skip to main content

Principles of Quantitative Development

Principles of Quantitative Development

Manoj Thulasidas

ISBN: 978-0-470-97152-9

Mar 2012

256 pages



Principles of Quantitative Development is a practical guide to designing, building and deploying a trading platform. It is also a lucid and succinct exposé on the trade life cycle and the business groups involved in managing it, bringing together the big picture of how a trade flows through the systems, and the role of a quantitative professional in the organization.

The book begins by looking at the need and demand for in-house trading platforms, addressing the current trends in the industry. 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, system architecture, programming languages and choices. Finally, the book focuses on some of the more technical aspects of platform design and looks at traditional and new languages and approaches used in modern quantitative development.

The book is accompanied by a CD-ROM, featuring a fully working option pricing tool with source code and project building instructions, illustrating the design principles discussed, and enabling the reader to develop a mini-trading platform.

The book is also accompanied by a website that contains updates and companion materials.

List of Figures, Tables and Big Pictures.


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.


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.


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.


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.


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.


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.


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.


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.


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.


10 Summing Up.

10.1 Epilogue.

10.2 Further reading.

10.2.1 Quantitative finance.

10.2.2 Computing.

10.2.3 Economics.


A.1 CD Contents.

A.2 Historical perspective.

Glossary of Terms.