A long time user of AmiBroker wrote this in a private email, I'm quoting:
What he explains further in the email is that AmiBroker has some optimizations that look forward through the historical testing data to generate arrays in advance. The all upper case claim above means that this optimization makes it faster than calculating the bars "on the fly" as you go like TickZOOM.
At first that sounds exciting. However, it causes several other problems, I will explain below. First however, let's have the speed showdown!
TickZOOM already posted a video with the performance of TickZOOM using only 2 Pentium Processors (Not Xeon)
It processed 10,000,000 ticks (quotes) for one currency pair or 5 years of data in 40 seconds.
Here are the rules of the contest:
1. AmiBroker must process 10,000,000 ticks (quotes) of data that cover at least 4 years of data.
2. It must show that it only uses at most 2 pentium processors and not Xeon.
3. If must use the same very simple strategy as the TickZOOM demo of buy at the breakout of 1 hour bar and sell at breakout below 1 hour bar.
4. It must also generate performance results (any number of reasonable results like win ratio, profit per trade, Sharpe, Sortino, etc. just like TickZoom.
5. Both systems must process every tick. That means that it must calculate "intra bar" breakouts and not simply if the close is higher.
Now, what are the problems with forward looking arrays?
First of all, it means that the AFL "engine" processes trading rule models drastically differently in historical testing than in automated trading. Of course, the intention is to produce the same result. However, that theoretically presents a risk that a tested strategy may work differently in real time trading.
Second, doesn't that make the values of those arrays fixed?
More specifically, people contacted me about AmiBroker, Ninja and the rest making it very difficult to have variable time frame bars. That means a bar which starts at 5 minutes interval but may be modified by the trading rules to be longer, 6 minutes, or short 4 minutes during testing or trading.
TickZOOM handles any type of dynamic or variable bars like that and range bars, volume bars, multiple bar intervals within the same trading model all due to building all the bars "on the fly" tick by tick.
Additionally, it means that TickZOOM runs the exact same code without modification when historical testing and real time trading on a chart or in black box mode.
Still. This is a very valid challenge.
Is forward looking array based optimization faster than TickZOOM can do it tick by tick?
Can anybody run this demo, please, on AmiBroker and post a video?
Feel free to discuss the rules and results.
Sincerely,
Wayne
AMIBROKER IS VERY FAST - PROBABLY AN ORDER OF MAGNITUDE FASTER THAN A BAR BY BAR PROCESS CAN BE.
What he explains further in the email is that AmiBroker has some optimizations that look forward through the historical testing data to generate arrays in advance. The all upper case claim above means that this optimization makes it faster than calculating the bars "on the fly" as you go like TickZOOM.
At first that sounds exciting. However, it causes several other problems, I will explain below. First however, let's have the speed showdown!
TickZOOM already posted a video with the performance of TickZOOM using only 2 Pentium Processors (Not Xeon)
It processed 10,000,000 ticks (quotes) for one currency pair or 5 years of data in 40 seconds.
Here are the rules of the contest:
1. AmiBroker must process 10,000,000 ticks (quotes) of data that cover at least 4 years of data.
2. It must show that it only uses at most 2 pentium processors and not Xeon.
3. If must use the same very simple strategy as the TickZOOM demo of buy at the breakout of 1 hour bar and sell at breakout below 1 hour bar.
4. It must also generate performance results (any number of reasonable results like win ratio, profit per trade, Sharpe, Sortino, etc. just like TickZoom.
5. Both systems must process every tick. That means that it must calculate "intra bar" breakouts and not simply if the close is higher.
Now, what are the problems with forward looking arrays?
First of all, it means that the AFL "engine" processes trading rule models drastically differently in historical testing than in automated trading. Of course, the intention is to produce the same result. However, that theoretically presents a risk that a tested strategy may work differently in real time trading.
Second, doesn't that make the values of those arrays fixed?
More specifically, people contacted me about AmiBroker, Ninja and the rest making it very difficult to have variable time frame bars. That means a bar which starts at 5 minutes interval but may be modified by the trading rules to be longer, 6 minutes, or short 4 minutes during testing or trading.
TickZOOM handles any type of dynamic or variable bars like that and range bars, volume bars, multiple bar intervals within the same trading model all due to building all the bars "on the fly" tick by tick.
Additionally, it means that TickZOOM runs the exact same code without modification when historical testing and real time trading on a chart or in black box mode.
Still. This is a very valid challenge.
Is forward looking array based optimization faster than TickZOOM can do it tick by tick?
Can anybody run this demo, please, on AmiBroker and post a video?
Feel free to discuss the rules and results.
Sincerely,
Wayne