Hi All, I am exploring backtesting which is pretty new to me. I contacted Matlab for trail version. Please let me know Which MATLAB products is needed for backtesting?
I am just trying trail version, please suggest the required tool in Matlab. Also will Ninja Trader offers trail version??
You must be going through the EP Chan stuff. If your just doing backtesting, then you shouldn't need anything else. You can use a data table from a spreadsheet and view it inside MATLAB as is. You have a the primary task of producing good backtesting logic and return visualizations without jumping the gun. The Trading Toolbox is only used for very specific vendor setups. http://www.mathworks.com/products/trading/ Even without it, one could implement MATLAB with commonly known Java based third party products. http://undocumentedmatlab.com/
MatLab is a very expensive option. The problem with it is that on top of the core product you will be required to purchase add-ons if you will want to access relational databases, run computations in parallel, integrate with Excel etc... Unless you are ready to shell out between 5K-10K for something that you can also have for free - I would look into alternatives , such as R (probably most developed and mature), or Octave, which uses the same syntax and function/library names as MatLab, but is free & open source. NinjaTrader is not a statistical/math analysis environment, but is a pretty useful backtester. It is not as flexible though, and requires knowledge of C#
Mathworks is now offering "home" edition which is MATLAB $149 and Add-On Products $45 hence price is not really a factor deciding MATLAB vs open source options. To start backtesting you will only need the MATLAB and none of the add-ons, called toolboxes. Once you get a hand of it you may wanna add Statistics toolbox or Econometrics toolbox, it's all depending on what you are doing with your trading strategies. Note, that the basic MATLAB already includes some statistics functionality so, again, to get you started the core MATLAB would be enough. Forget about Octave, it's not up to par. R is good and free and companies use it, but it's for statistical analysis only, and you have to be aware as some of the add-ons are of not of a good quality and contain errors. Forget about using NinjaTrader or any other retail-grade packages for backtesting as they have limitations. Python is a great alternative for backtesting.
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.