By now, you are all probably all well aware of the recent SEC proposal proposing to require that most ABS issuers file a python computer program that gives effect to the flow of funds, or “waterfall,” provisions of the transaction. Perhaps wondering why Python? What drove the SEC to chose Python, over other dynamic languages (PERL,Ruby, or purpose-specific language like Haskell or why not Java, C++? Perhaps it's because Python is already extensively used is quantitative finance applications; there is already a good body of work in Financial Modeling that leverages Python and a good supply of python-saavy quants primed and ready to do the modeling.
A good book to get you started understanding how Python is applied to the financial modeling is Financial Modeling in Python by Shayne Fletcher, Christopher GardnerFletcher and Gardner have created a comprehensive resource that will be of interest not only to those working in the field of finance, but also to those using numerical methods in other fields such as engineering, physics, and actuarial mathematics. By showing how to combine the high-level elegance, accessibility, and flexibility of Python, with the low-level computational efficiency of C++, in the context of interesting financial modeling problems, they have provided an implementation template which will be useful to others seeking to jointly optimize the use of computational and human resources. They document all the necessary technical details required in order to make external numerical libraries available from within Python, and they contribute a useful library of their own, which will significantly reduce the start-up costs involved in building financial models. This book is a must read for all those with a need to apply numerical methods in the valuation of financial claims.”
And then for a deeper dive, Learning Python by Mark Lutz, 4th Edition is a fantastic book and will help you get familiar with the language. His other book, "Programming Python" is more application specific.
For a reliable, stable distribution of Python, I'd recommend ActiveState's ActivePython Business Edition and taking a look at the ActiveState repository of recipes. The key will be learning the SciPy and NumPy libraries. Try downloading IPython, it's an interactive Python shell - extremely useful for all sorts of reasons.
And one more thing, think about applying some decent style guide when you do start coding like Google's StyleGuide for Python - because readable code helps everyone!




