• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Blog: Articles on C++11 and Computational Finance (by Daniel J. Duffy)

Daniel Duffy

C++ author, trainer
Joined
10/4/07
Messages
10,091
Points
648
On this blog I would like to share some of my work.
Feedback relating to these topics very welcome.
 
Last edited:
This would've been perfect for the project I just turned in for this course :)
The difference is I needed 20 years to get my design up and running while you got it working in a few weeks :)

BTW what were the similarities and differences between the two approaches?

I get the impression you enjoyed the parallel programming aspects in this part?
 
Last edited:
An interesting follow-on remark is that these design principles are reusable, standardized and can be applied to any application domain. They grew from exposure to CAD, process control, holography and computational finance.
My forthcoming 2nd edition on C++ instrument pricing formalizes these domain architectures in computational finance.

@dstefan
 
Last edited:
The difference is I needed 20 years to get my design up and running while you got it working in a few weeks :)

BTW what were the similarities and differences between the two approaches?

I get the impression you enjoyed the parallel programming aspects in this part?
Very much so. Mine focused solely on improving the nested loop a.k.a the monte carlo simulation. Based on the feedback from @APalley the better approach would've been similar to what you did at the client level. Also I solely relied on subtype polymorphism to implement SDE, RNG and FDM instances but as I stated in my systems design document my improvement to this would be something quite similar to your approach. I did use boost signals for the pre and post process functions which meant I could price multiple options with one call to the start function. But overall I would say it's something I'll continue to revisit to see where I can make improvements.
 
this book is really good. I like it a lot. I used it around 8-9 years ago and it's still relevant.

The book uses OpenMP 2.0 and MPI code snippets which is of course good. Maybe a 2nd edition would be nice.
Nowadays parallel design patterns are ready-to-run in libraries such as C++ Concurrency, PPL, TBB, TPL, actor systems (and many other languages of course).

An important modelling construct is the usefulness of creating a task dependency graph up front.
 
Last edited:
Sample Chapter from "Financial Instrument Pricing using C++" by Daniel J. Duffy, 2nd edition, John Wiley publishers. (August 2018).

More info www.datasim.nl
 

Attachments

  • DuffySampleChapterC++11.pdf
    164 KB · Views: 145
Last edited:
Two slide shows on PDE/FDM from a recent talk in Amsterdam.
 

Attachments

  • Binder1.pdf
    1.6 MB · Views: 86
  • Binder2.pdf
    1.5 MB · Views: 68
This was probably the first object-oriented software program + Design Patterns

  1. Create and clone instances/objects Creational
  2. Build the structure of objects Structural
  3. Manipulate objects Behavioural

 
Last edited:
Back
Top