Conceptually, you can use the back of an envelope to develop your trading-system ideas. However, most traders want some way of confirming that their newly designed systems can perform profitably before they commit real trading capital. That means you need a way to test your system, by simulating trades using historical data.

System-development hardware options

Doing the math that’s required when testing your system can really slow down your computer, and it can generate a lot of data. Almost any computer will do the job when you’re getting started, but if you end up testing many system ideas, you definitely need a large amount of disk storage and a fast computer.

The computer equipment required to run a proprietary trading platform, including products such as TradeStation or MetaStock, is usually enough for system development and testing.

System-development software options

Many trading system–development and testing products are on the market. Some proprietary trading platforms, such as TradeStation or MetaStock, include system-testing capabilities. Spreadsheet software, like Microsoft Excel, also is useful for analyzing simple trading systems and for analyzing the results generated by specialized-development and testing software.

Trading system–development and testing software

You need to consider several of the following criteria when evaluating your system-development and testing software:

  • All trading system–development and testing programs use some type of computer language to describe and test your system. Some are terse and difficult to use; others are more intuitive. Traders with strong computer or programming skills have little problem mastering any of these languages, but others struggle. Pay careful attention to this development language before selecting a system. Be certain that you’re able to use your chosen system.

  • You need to integrate your trading system with your stock charts. Some system-development software requires you to actually write computer code that enables you to display your trading system and stock charts simultaneously. Avoid these systems if you’re uncomfortable writing computer code.

  • The manner and effectiveness by which your system-development and testing software reports on how your trading system is performing is critical. Some systems provide extremely detailed statistics about the performance of your trading systems. Others, however, list little more than the buy or sell signals. In general, more information is better.

  • Make sure your system-development and testing programs are capable of exporting the data they generate, historical price data included, into a spreadsheet program for further analysis.

TradeStation is the gold-plated system-development platform. It has many built-in tools that make your development and testing job relatively easy. For those of you on tight budgets, one of the less-expensive alternatives you may want to consider is a charting and system-development program like AmiBroker.

Although flexible and powerful, AmiBroker isn’t as feature-rich or polished as TradeStation, and it requires significantly more effort on your part. For example, AmiBroker includes well-known technical-analysis indicators like moving averages and MACD, but the number of indicators included is a tiny subset compared with what TradeStation offers. Similarly, you have to use AmiBroker’s formula language to create and enter any other indicators that you may be using.

Spreadsheet software

Although a spreadsheet program can’t do everything that a specialized system-development and testing program can do, it can add quite a bit of analysis horsepower to your system-development tool kit. You can code and test simple trading systems directly into the spreadsheet. You can also evaluate the results of your trading-system tests using the spreadsheet’s built-in statistical and analysis functions.

You can, for example, copy the price data for a stock into your spreadsheet, calculate moving averages and other indicators, and then configure buy, sell, or sell-short signals. You can also export trading signals from your system-development program and import the results into your spreadsheet for further analysis.

A spreadsheet project you can try is calculating the maximum favorable and unfavorable moves after your system has triggered a buy or sell signal. Simple to do, it helps you understand the strengths and weaknesses of your trading system in great detail. You can see whether problems with your trading system might be solved by using different exit procedures or tighter (or looser) stop-loss points.

For example, although your entry signals may show promise, your exit signals may be causing you to leave a lot of money on the table. These situations are hard to see when you’re working only with charts, but may jump out when you’re working with raw data during your spreadsheet analysis.

Some system-development programs provide a great deal of statistical analysis, so choosing between spreadsheet tools and system-development tools is a trade-off between thoroughness and expediency. After you’ve been through the testing exercises a few times, you get a feel for the strength of each approach.

How to find historical data for system testing

Testing your system means evaluating how it performs when simulating trading using historical price data. Ten to twenty years of historical end-of-day data for the indexes and stocks in which you plan to trade is usually more than enough to properly simulate trades for testing your system.

You can download historical data from the Internet, and some online data is available free of charge. Some proprietary trading platforms likewise include access to historical data. You may want to get data from more than one source to confirm its accuracy.

Yahoo Finance provides free historical data and permits you to download the data into a spreadsheet. To access the Yahoo data feed, get a quote for the stock and select “Historical Prices” under the Quotes menu item. Then click “Download to Spreadsheet.”

Here are a few places offering various forms of historical data: