Sorry Sci for taking so long to get back to you but the “2 positions per day” requirement is something I hadn’t considered previously. So I did a google search and sure enough someone had solved the problem and posted a solution on the AFL Forum. They used a “SetCustomeBacktestProc” procedure, something I am just learning about. Anyway my reply to your post follows:
So Sci I hope this isn’t some sort of system challenge, i.e. VV vs Amibroker. Although that wouldn’t bother me that much. Using the system you are familiar with and in which you can accurately model the execution of real trades, and knowing that your simulations/backtests are accurate is more important than the time it takes to set up a test.
In Amibroker you can set up a backtest simply by using the Backtester Options User Screens, or you can do it all in code using “SetOption” functions which is my preferred way of doing things.
Now back to your question. The basic system, i.e. the rules that specify the Buy and Sell signals and incorporates the XJO market timing rules wouldn’t take that long. I don’t have access to FA data like “dividend yield” hence I’d need a different ranking criteria/function. I had a quick look at the Amibroker Help manual and they provide code for a long/short MA crossover system but it includes optimization functions that determine the optimum position quantity, i.e. it tests for the maximum number of stocks in the portfolio from 1 to 20 in increments of 1. So it would be a little bit more work than a copy and paste in order to simplify the test code.
In the system parameters requirements I know that Amibroker can handle all except for the following:
- The 2 positions per day requirement. Although it could be handled in code.
- Don’t buy the same stock for 20 days. Once again could be handled in code.
- Limit 3 stocks per industry. FA info that Amibroker can use but I don’t have.
With the test period, my data goes back to 2007 but it isn’t “Historically” accurate. I forget the official term for this, is it survivorship bias, but basically if a stock has been delisted in the time period from the start of my data then it is no longer in the database.
I just viewed your most recent posts. Yes VV is pretty good at this type of backtest. I’m impressed that you can now include MA crossover signals in the tests. That’s something that wasn’t available to me when I had a VV subscription. What other TA Indicators do they support these days? Can you develop and code your own indicators in VV now? An email that you can contact me on is [email protected].
Cheers
Wilf