# Question on programming for financial modeling.

December 19, 2003 7:35 AM Subscribe

Does anyone here do any programming for financial modeling? (more inside)

I'm looking more at capital markets, factor modeling,and macroeconomic stuff, rather than cost projections and the like. In my quest to make myself more marketable to employers, I have decided it would be beneficial to me to be able to write sophisticated models in VBA for Excel, S-plus, or a related language. While my sata and quant knowledge are pretty good, my programming skills are limited to BASIC on a Commodore 64, so I'd be starting more or less from scratch.

My questions:

What language/ software package will have the most longevity?

What language/ software package will be the easiest to learn?

What are the best resources to teach oneself this type of programming?

I'm looking more at capital markets, factor modeling,and macroeconomic stuff, rather than cost projections and the like. In my quest to make myself more marketable to employers, I have decided it would be beneficial to me to be able to write sophisticated models in VBA for Excel, S-plus, or a related language. While my sata and quant knowledge are pretty good, my programming skills are limited to BASIC on a Commodore 64, so I'd be starting more or less from scratch.

My questions:

What language/ software package will have the most longevity?

What language/ software package will be the easiest to learn?

What are the best resources to teach oneself this type of programming?

I cannot address your first two questions, but I do some fairly complex financial modeling to analyze domestic equities. I live and die by VBA for excel. I taught myself by having a project in mind that I really wanted to build. I think-- if you are teaching yourself-- it is exponentially easier to learn if you are building something that both: (a) is moderately complex and (b) will have great utility to you upon completion (as opposed to just working through a book or a class and its examples.) I taught myself over about six months using the excellent book: "Excel 2002 Power Programming With VBA" by John Walkenbach. Mr. Walkenbach also has a website listing Excel resources on the net. Once I rolled up my sleeves and started working through this book, I found the usenet group: "Microsoft.public.excel.programming" to be absolutely invaluable when I would get stuck between the book, the online help and my immediate programming goal. Good Luck to you!

posted by limitedpie at 8:53 AM on December 19, 2003

posted by limitedpie at 8:53 AM on December 19, 2003

If you are not dealing with too much data, use Excel and VBA. Since almost all applications can export in Excel, it is good to have at least some sort of application that loads and exports the data into a more convenient format.

If you are looking for something portable, use Java. However, you might have to start with the making of the bricks, i.e. simple regression subroutines.

Personally, I use Matlab. It has a link to Excel (1, 2) and one can transfer data from and to Excel on the fly. There is a free econometrics toolbox for Matlab, if that interests you. Programming is very easy and very powerful: the power of C with the language of Basic. It stores the data more efficient than VBA (no variants) and each variable is a matrix. In fact, it is faster to work with matrix manipulation than using for/next to iterate through all data. Moreover, if speed is of concern, you can compile the .M file and have an executable. Also: Financial Modeling and Analysis (1, 2) with matlab (of course each of these modules cost money, that's why I love the university :) ).

Learning Matlab is easy, just use the help manuals and work though examples. The source code of most packages is also available. (I do not work for mathworks, just I love their software)

The path it is good since it allows you to understand every detail. However, be careful, stick to the traditional models and learn them, do not spend time trying to invent a new model, at least not yet.

posted by MzB at 10:04 AM on December 19, 2003

If you are looking for something portable, use Java. However, you might have to start with the making of the bricks, i.e. simple regression subroutines.

Personally, I use Matlab. It has a link to Excel (1, 2) and one can transfer data from and to Excel on the fly. There is a free econometrics toolbox for Matlab, if that interests you. Programming is very easy and very powerful: the power of C with the language of Basic. It stores the data more efficient than VBA (no variants) and each variable is a matrix. In fact, it is faster to work with matrix manipulation than using for/next to iterate through all data. Moreover, if speed is of concern, you can compile the .M file and have an executable. Also: Financial Modeling and Analysis (1, 2) with matlab (of course each of these modules cost money, that's why I love the university :) ).

Learning Matlab is easy, just use the help manuals and work though examples. The source code of most packages is also available. (I do not work for mathworks, just I love their software)

*In my quest to make myself more marketable to employers, I have decided it would be beneficial to me to be able to write sophisticated models*The path it is good since it allows you to understand every detail. However, be careful, stick to the traditional models and learn them, do not spend time trying to invent a new model, at least not yet.

posted by MzB at 10:04 AM on December 19, 2003

andrew, nice one!

trharlan, I was thinking, if you are looking for marketable skills, maybe you should know the basics:

- VBA, since it always helpful

- SAS, SPSS, eviews, those are pretty standard - working knowledge is more than enough in your case.

java and matlab depend on the firm, you will be able to uses them only if the firm uses them.

posted by MzB at 10:35 AM on December 20, 2003

trharlan, I was thinking, if you are looking for marketable skills, maybe you should know the basics:

- VBA, since it always helpful

- SAS, SPSS, eviews, those are pretty standard - working knowledge is more than enough in your case.

java and matlab depend on the firm, you will be able to uses them only if the firm uses them.

posted by MzB at 10:35 AM on December 20, 2003

This thread is closed to new comments.

Learning VBA will not be as valuable from a general programming standpoint as learning (say) Java or Python, but it should get you going with what you say you want to do pretty quickly.

posted by crunchburger at 8:36 AM on December 19, 2003