Link to home
Start Free TrialLog in
Avatar of f19l
f19l

asked on

Suitable C++ course that have a foucs on quantitative finance

Hello,

I currently work in finance and do a fair amount of programming in Visual Basic. I would like to expand my skills set by learning C++ but with a focus on quantitative finance so that I can apply it to my day-to-day work. Does anyone know of any suitable courses, ideally studied on the web, that I could attend?

Thanks,

f19l
Avatar of f19l
f19l

ASKER

I have seen one website called Datsim Financial run by Daniel Duffy. Is he well known in the field? Would this be the kind of site that I should look at?
Avatar of phoffric
4 out of 10 people say DD is awful in his book. The other 6 think DD is great. When I read the negative comments, I wouldn't go for it.
    http://www.amazon.com/Financial-Instrument-Pricing-Finance-Series/product-reviews/0470855096/ref=dp_db_cm_cr_acr_txt?ie=UTF8&showViewpoints=1

If you have no OO experience, then I would learn the OO paradigm first by getting a good C++ book or watching a free course to see if you like it. Here is one course that gives a gentle start into C++ and includes several algorithms along with some containers.
   http://academicearth.org/courses/programming-abstractions/

Once you learn the language, you probabaly should study multi-threading which is now built into C++11.
After you learn C++ and can write programs (or maybe midway to that goal), you should get one of Scott Meyers books that is essential to write very maintainable correct code.

http://www.amazon.com/Effective-Digital-Collection-Programming-ebook/dp/B008E30L9A/ref=sr_1_2?s=books&ie=UTF8&qid=1381542697&sr=1-2&keywords=c%2B%2B+meyers

Well, I would get an eBook only if you have a good large screen. So, you may want to get one of his other books.
Avatar of f19l

ASKER

Thanks. Another author that has been recommended is Mark Joshi. His book, C++ Design Patterns and Derivatives Pricing, is supposed to be quite good as a foundation for a university-run course that I am interested in. Would this be a good book to read?
Avatar of f19l

ASKER

Better than the Daniel Duffy books?
Both Daniel Duffy and Mark Joshi have good credentials. Daniel Duffy is a co-author of The Boost C++ Libraries, Parts I and II, books which I have started to read. When looking at all the specific reviews of Financial Instrument Pricing Using C++ and seeing that 40% gave the book one star with good explanations, I said that I would not purchase it. When you read the positive reviews, maybe there is enough there to suit your needs. Usually, in specialized areas, one book is not enough. So, getting multiple books in this field may cover more bases that you require.

re: C++ Design Patterns and Derivatives Pricing
Again, I always recommend reading the reviews, as many as possible, to save you from time not well spent. This book is highly recommended, but here's a review note that may pertain to you:
Joshi does not intend to teach financial mathematics in this text. To learn about this topic, you can read his other book "The Concepts and Practice of Mathematical Finance". Joshi also doesn't try to provide an introduction to C++ programming -- there are plenty of good books on this topic.

Instead, the author does an excellent job of demonstrating how common C++ design patterns (templates, wrappers, decorators, bridges, factories, and so on) can be applied to price financial derivative instruments. ...
The book is updated to 2008 which may help when using more recent compilers. (Note the complaint regarding Duffy's book.)

Joshi's book is very terse. A prerequisite is for you to be well versed in STL and template writing, in general, as well as already understanding the shop-talk and usage of OO design patterns, preferably from a C++ viewpoint. Here are all the Amazon Reviews. You should read every one of them to determine the appropriateness of this book for you. The 2-star reviews appear to be balanced in their pros and cons. Be sure to read them as well.

My advice is to learn C++, OO principles, and the above listed Design Patterns before attempting to read this book. If you do get this book without first learning C++, please post your experience here and in the Amazon review blogs.

Here's a review about how this book is helpful for potential quant job interviews
Avatar of f19l

ASKER

Actually, Daniel Duffy runs an online course that I am very interested in, the link for which is http://www.datasimfinancial.com/course_detail.php?courseId=17.

I am trying to determine whether this distance-learning course would make sense to undertake. I have read a number of books and attended courses on C++ programming (introduction level), so I am not a complete beginner. I agree with your points about the books themselves but do you think going on this course would allow a better understanding for the material since I would be dealing with the author himself? My firm is paying for the course so I need to be able to justify it.

There are two class-based courses at London City University  that I am also looking at (http://www.city.ac.uk/courses/short-courses/financial-engineering-c-computational-finance-using-advanced-c-design-techniques and http://www.city.ac.uk/courses/short-courses/advanced-financial-engineering-interest-rate-derivatives-in-c). It is these courses that have recommended a number of books to read, one of which is the Joshi book. My only concern with these courses would be whether I would have sufficient knowledge as I would not want to fall behind as the class progressed.
Half of the reviewers of the first book in the Duffy course give poor reviews:
http://www.amazon.com/Introduction-Financial-Engineers-Object-Oriented-Approach/dp/0470015381

The distance learning link you provided gives you up to 18 months to complete the course so that is in your favor. That's almost 800 hours @ Duffy's recommended 10 hours/week.

How far did  you get in C++ OOAD, templates, STL, and design patterns? Did you learn OOAD&P using C++ or some other language? Same question for Design Patterns. Some of these topics can require more than 10 hours/week.

As far as the other books in the course, even worse reviews:
http://www.amazon.com/Daniel-J.-Duffy/e/B001IQZ9JC/ref=ntt_athr_dp_pel_1
For example, read what reviewers say on the Monte Carlo book.

Here are good testimonials from his site:
http://www.datasimfinancial.com/Testimonials.php
But, naturally, this has to be biased. Also, keep in mind that the first reviewer had 20 years of C++ experience.

Clearly, Duffy is not the best writer, and if you are expected to learn primarily from his books, then you may be disappointed. His Boost books have two good reviews, but it is not clear how much he contributed and whether the other author helped him write better. The question remaining is how good an instructor is he. I tried to find out that answer and stopped here:
Datasim Education Limited was set up on Fri the 17th of Jan 1997 in Co. Louth. Their current status is Dissolved with the company closing on Fri the 1st of Mar 2013.
http://www.solocheck.ie/Irish-Company/Datasim-Education-Limited-259688

When you do distance learning you are often without much of a support system. You could write to Mr. Duffy to see whether the courses are still available, and if they are, how many other students are currently enrolled and whether the group form a support system to help each other. (Also find out if the company was dissolved, and if so, ask why.)
Avatar of f19l

ASKER

Thanks. Looking at what you have posted and reading the reviews it certainly appears that Daniel Duffy's material is quite weak and not helpful. Since his online course is likely to be based on his books then this is likely to be the case as well. It appears that the negatives outweigh the positives, which is that even though I will be able to take the course at my own pace there may not be the necessary support in place to help me.

Regarding my own experience, I have attended a couple of courses at City University two years ago, which I have listed below, that are meant to be the foundation for the advanced classes mentioned above.

C/C++ - Introduction to Programming Using C Part 1
This hands-on introductory course is the first part of a study of the C/C++ family of languages, used to build most of the world's computing systems. Starting with programming basics, then focusing on applying programming practise into the C/C++
www.city.ac.uk/courses/short-courses/introduction-to-programming-with-c 

C/C++ - Object-Oriented Programming Using C++ | Part 2
For those who can already program in a procedural language such as C (using control structures such as if, for, while, etc.), this course covers the fundamentals of the C++ programming language and shows how to program using object-oriented
www.city.ac.uk/courses/short-courses/object-oriented-programming-using-c.html 

I have also started an online course about learning OO programming using C++ as I felt that I needed to refresh my memory and skills.

Considering all of this would you think that it would be better to attend the advanced classes at City University next October? The downsides would be my concern that I do not have the necessary level of knowledge but I could mitigate that by reading all the recommended books and I would be working at a pace set by someone else.
>> Considering all of this would you think that it would be better to attend the advanced classes at City University next October?
One begins in April, 2014.

Since the advance courses both recommend "Joshi M. (2004) C++ Design Patterns and Derivatives Pricing, Cambridge University Press", I would get that book now and use it as a guide to determine the areas that you need to study or review in C++. If you don't understand enough by April 2014, then defer it until you do. So take the OO course, and other preparations as needed to understand the Joshi book. (I assume that you have a good handle on the mathematic principles.)

In addition to your OO C++ course that you are taking, I would recommend that you become expert at this level free online course:
http://academicearth.org/courses/programming-abstractions/
   
Going through this algorithms course may also help if you haven't been exposed much to algorithms.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/

I will be studying the Duffy boost books with attention to multi-threading next year. You should learn about multi-threading as well.
Avatar of f19l

ASKER

In order to take the April class I have to attend the October class first. Hence I will have to wait nearly a year. The plus side is that this will give me plenty of time to read up on all the course material and follow your highlighted suggestions.

So your recommendation as far as the Duffy material is concerned is just to focus on the boost books but not to attend his online course as that would be far to expensive and lengthy to take a chance on?
ASKER CERTIFIED SOLUTION
Avatar of phoffric
phoffric

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of f19l

ASKER

Thanks for all your advice.
You're welcome. Good luck getting to your end-goal.
Here is a free finance algorithms course that you may find interesting.
http://www.algorithm.cs.sunysb.edu/computationalfinance/