Speaking from personal experience, I do not thing MATLAB is the right tool for you.
1. If you don't know what toolboxes you need, I promise you you're going to overpay. Even if you get home or student editions.
2. I attend what some regard as a pretty good stats/operations research school. We only use MATLAB in one or two classes where professors are stubborn. The vast majority use R.
3. As someone who has read his fair share of job listings in this industry, I can tell you that demand for MATLAB in trading is not too high.
4. If you insist on MATLAB, realize the Trading Toolbox is half broken in my experience. I ran the IQFeed connector in the Trading Toolbox for about two days. Serious limitations I found:
- not fast enough to handle realtime data feeds (what does that say about backtesting?). So slow that it actually would miss ticks. You'd think that MathWorks, who recruit really hard and from what I've seen really well, would be smart enough to implement a queue or buffer of some kind in their TCP/IP layer that interacts directly with the datafeed. Not the case in my experience.
- IQFeed at least would only pull in 10000 or 1000 ticks at a time of i recall and they were only second timestamps (timestamps resolution lost). This means that tick by tick "event driven" backtesting just wasn't viable.
Instead of just destroying your hopes and dreams (the default modus operandi of participants on this forum), I'll offer what I think is a preferrable suggestion:
Your data analysis workflow in trading is dependent on how you want to trade. If you trade on discrete bars, you may get away with backtesting with a vectorized language like R or MATLAB. The problem with that will become evident for you soon. Suppose you backtest a strategy using the close price of each period. If you look at the closes only, you miss the entire activity that took place within the bar. Don't care? Well suppose you're testing on 1 hour bars and a major spike occurred during that hour--you'd be stopped out, but your backtest wouldn't see any of that because you're only considering the discrete data points at the end of periods.
Discrete data is good for exploration. Creating models, calculating volatility, etc. If you try to backtest just with discrete data, you're gonna miss part of the story. In my experience, you can do your data analysis in R or MATLAB if you like, but they are no good for "event driven" or tick by tick backtesting. The reason is they suck for loops due to their JIT compilers. The best backtesting platform you can get is not R or MATLAB, but Visual Studio and C# or Python. Do what you like though.