Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

Has anybody else out there made this switch? I'm considering it right now. What were the negatives and positives of the switch?

share|improve this question
3  
1/ why do you want to do this switch? 2/Have you tried R ? –  RockScience Mar 7 '11 at 2:09
7  
If you disliked the R gui on Windows, consider the free, brand-new, cross-platform RStudio GUI. –  Dirk Eddelbuettel Mar 7 '11 at 2:54
1  
or R with Eclipse using the Statet plugin. –  RockScience Mar 7 '11 at 3:47
3  
Strange, I've never heard/read of anyone switching from Matlab to Python and hating it. People usually have glowing things to say about py. I will have to give it a try. Thanks for your input. –  Rich C Mar 8 '11 at 18:49
1  
And let's not forget hooking up Python with R via rpy2 is quite straightforward if you need to access R libraries. –  Pydroid Mar 8 '11 at 22:30

7 Answers 7

I made the switch years ago, and it has been great. I even switched the class I teach from Matlab to Python. Here are some things to consider

  • Others can run your Python code when you share it with them. Matlab has compilers and the like, but they are an extra step you must take since most people do not have Matlab on their desk.
  • Python and its extensions are open source and so allow you to see under the hood
  • Python ctypes is slightly nicer than Matlab C integration
  • Python syntax is excellent (e.g list comprehensions), and NumPy syntax for arrays is also cleaner than Matlab's
  • Python is easier to integrate with external data sources and files

On the other hand

  • Matlab integrates nicely with Java
  • Matlab optimization routines are really excellent
  • Matlab 3D plotting is better
share|improve this answer
    
Don't forget that the integrated 'solvers' for nonlinear problems is an important aspect as well. This could have serious consequences for complex optimizations. For instance, GAUSS already outperforms Matlab in the sense that you will find less local minima. –  JohnAndrews Apr 13 '12 at 0:56
    
I would just add few points on the matlab side: (1) if you buy the compiling toolkit, then you can redistribute your code everywhere without paying more license fees. (2) matlab statistical tools are very good and properly coded. –  lehalle Aug 30 '12 at 13:13
    
Let's not forget the most important point .. python can be used in an object oriented fashion. –  user2763361 Oct 2 '13 at 13:56
    
I believe your 3rd point in favor of Matlab is no longer valid, as there is an amazing Mayavi package for Python which is very easy to use and quite impressive. –  sashkello Jan 13 at 4:01
    
@lehalle 1. If you are collaborating with others, that doesn't help. Also you need to buy it. It is certainly not a point in favor of Matlab. 2. The fact that those tools are not free doesn't make them more "properly coded" than python's. Python also has very good and properly coded statistical tools, and while Matlab has things which Python doesn't, so Python does have things which Matlab doesn't have. –  sashkello Jan 13 at 4:07

Rich, you might find this cheatsheet useful on your journey.

I was advocating Python over Matlab to a co-worker just minutes ago. I should start by saying that Matlab is a fine piece of software - its documentation is amazing, as are the pdfs that accompany the various toolboxes (as I'm sure you know).

However, regarding Python, Brian B brings up many good points. Two big advantages I would like to emphasize:

  • I know that I will be able to develop Python anywhere I might work in the future (including at home over the weekends). In other words, learning the language is time well spent. Learn once, and benefit for years. It's the same reason why I love working on the command line in *nix environments, instead of GUIs (MS Office ribbons come to mind).

  • I acknowledge that a very large portion of quant research is simple, unglamorous data manipulations - Python serves as a strong glue language (like Perl, but with much stronger numerical libraries). I can set cron jobs for Python scripts that load data, send me emails, etc. I'm sure there are those who do this in Matlab (just like there are those that do all sorts of crazy stuff in VBA), but Python is a far better tool for these jobs.

Having said all of that, all legit quant shops can afford Matlab (and all of the costly toolboxes required for database access, xls read/write, compilation - which really should be free IMO). If you are purely research, then you can probably get by with only Matlab, but I find it somewhat restrictive and, perhaps, somewhat risky in terms of availability.

share|improve this answer
    
How java compares with py? Any experience? Actually why py and not java? –  user40 Mar 8 '11 at 12:59
    
Py - interpreted, flexible, simple. Java - compiled, strict, bloated. Java's a nice language for building a big complicated system with many developers working on it, but crummy for rapid prototyping of an idea. I also think SciPy is better than any Java numerical lib I've used. –  evanrsparks Mar 8 '11 at 13:04
    
Java for numerical analysis / quantitative research is pretty much a horrorshow. You'll find yourself writing 10x as many lines. The bugs may not quite scale with that but it's safe to say you will see maybe 2x the bugs. –  Brian B Mar 8 '11 at 13:44
    
Fair enough! That's exactly my problem with java... I need to look at py soon.... –  user40 Mar 8 '11 at 14:55

There is a Python library for this that you may want to take a look at: http://gbeced.github.com/pyalgotrade/

share|improve this answer

I've only found MatLab to be useful for modeling and testing algorithms, with the implementation in any other language.

share|improve this answer

I'm a big fan of python over the competitors as well. I use the pysci & matplotlib libraries heavily which are all open source albeit not specifically designed for optimizations but solid for visualizations & fast analysis.

Another part of making a transition for me, was the ease of use on the Mac. It's native although I do use macports (very easy install) for several other projects & it augments my development environment nicely. Macports provides a huge catalogue of modules easily installed with 1 command & dependency resolution (no *nix package mgmt. hell) & of course all of the IDE's work nicely (I use VIM). Git is native, debugging is very mature, & if you can get over strict indentation (macros or IDE's help) then it's typically quite readable code.

Never posted before but have lurked for months so hopefully this contribution helps.

share|improve this answer

Everything has pros & cons. So it has to do with personal preferences but more importantly to me it has to do with what your shop uses. Most use a mix of interpreted/compiled language.

share|improve this answer

MATLAB has a trading and backtesting toolbox which offers similar functionality to other retail trading packages. http://www.tadeveloper.com

share|improve this answer
3  
You should point out that you are affiliated with TA Developer. Additionally, The Mathworks appears to have no affiliation with you; this is a software package that happens to be written in MATLAB. –  chrisaycock Dec 29 '12 at 20:52
    
@chrisaycock Yes, you are right. Reading my post again it sounds like the toolbox is offered by the Mathworks. This is not the case. –  Joern Dec 29 '12 at 22:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.