So now that I have decided that I need to learn how to use Amibroker to program and backtest my trading strategies, the next step will be actually learning how to use Amibroker. Of course, that is easier said than done.
It’s easy to make big, sweeping statements like “I need to learn Amibroker.” Actually doing so is going to be a long, involved process. The best way for me to actually accomplish this goal will be to break the project down into hundreds of small tasks that I can easily accomplish.
Should I Pay For Data?
There are many different data options that you can choose to use with Amibroker. From what I can see, Yahoo! Finance offers the most popular free version. However, as with anything in life, you get what you pay for. I am not sure about the quality of the data. It could be filled with errors and almost certainly does not include delisted stocks, which will expose my work to survivorship bias.
From everything I have read on the subject, it is going to be important for me to acquire data that is both accurate and free of any biases. Norgate Investor Services seems to be the big name in data service, and they offer plenty of different packages at many different price points. It also appears that hooking up Amibroker to a Norgate data feed is not overly complicated.
While I fully understand that I will need to purchase premium data when I am ready for my test results to matter, let’s be honest, at this point I don’t even know how to draw a moving average line in Amibroker. With my knowledge being so limited, I am going to work with the (probably flawed) free historic data from Yahoo! Finance until I reach the point where I need to ensure more accurate data.
Creating a New Database
The first thing I did after opening AmiBroker was create a new database. This way, I am starting from scratch and won’t have any of the default data that comes with the program built into my database. I know that the NASDAQ 100 is already built into AmiQuote, so that is the list of stocks I chose to start with.
To create a new database, I simply clicked File > New > Database, and the following screen popped up:
The menu box here didn’t seem very complicated. I just named the new database “NASDAQ100″ and clicked “create.”
That produced the following empty database:
Now that I have my very own Amibroker database ready to go, I just need to load it up with some data. To do that, I used the AmiQuote program, which is available from the Amibroker site. It is a free, fully-functional shareware program that asks you to donate by purchasing it for $69.
One of the keys to using AmiQuote is to make sure that you load the correct database in AmiBroker first. I have already screwed this up multiple times and imported the right data into the wrong database.
Upon opening AmiQuote, I need to load up a list of the stock symbols that I want to download data for. I can do this by entering them manually, or by opening a .tls file, which is a text file of ticket quotes that can be created using Notepad. For this example, I am just going to open the already existing Nasdaq100.tls file that is in the AmiQuote folder.
Opening this file populates a list of the stocks in the NASDAQ 100. The next step is to choose the date range that we would like to generate. To keep things simple, I just turned the start date back to 1995, which will give me 20 years of data.
Once the dates are set the way you want them, make sure the “Automatic import” box is checked and then click the green arrow to begin downloading and importing data. There is also a dropdown menu that provides a handful of data sources, I went with “Yahoo Historical” because that was the default option.
As you can see, I generated quite a few errors while this data was downloading. That is an issue we will explore later on.
For now, we are able to go back into AmiBroker and display historic data for a number of the stocks that we have downloaded. Here is a look back at AAPL’s chart from 1996:
So now we have some actual historic data loaded into AmiBroker. What’s next? I have no idea.