I already know about MultiTimeframe support functions and I have visited that page several times when I am actually implementing strategies which need 1 minute timeframe data like intraday breakouts.
However, my strategy works on daily open prices and when you put two stop orders, it is not possible to know which executes first using EOD data without bar replay.
Using TimeFrame functions does not complicate, it simplifies! Otherwise, how else you would capture data of higher timeframes (Daily) from a lower intraday timeframe (in which you are backtesting).
It does complicate. Atleast for me, who I consider to have decent enough background in coding.
I have a code like this:
LLV(C < Ref(C, -1), 5) == 0
which checks if daily price has not been falling 5 days in a row.
I believe this internally translates to:
IF(C[0] < C[-1]) && IF(C[-1] < C[-2]) && ...... && IF(C[-4] < C[-5])
where index 0 is currently processed value and -n is n bar behind.
With timeframe compression, I would first get an array of prevDayClose but I can't just write:
LLV(prevDayClose < Ref(prevDayClose, -1), 5) == 0
because on all intraday bars....prevDayClose[-1 to -n] will refer to just that, the previous day close. Same value in all the intraday bars.
So to convert the above construct(checking daily closes for 5 days in a row), I have to create my own version of LLV which instead of just referencing previous array value, refers to the boundary conditions when the date changes. I have to similarly write custom code for all the several different conditions like this.
This definitely increases the complexity which could have been 100 times simpler if Bar Replay was allowed in backtesting. We all know that everything is possible given enough effort and time, but that is the reason we use AFL instead of C++ because we know that it makes things simpler.
Bar replay based backtesting is available in some different frameworks like backtrader(python-based). It was also my hope that its available in Amibroker since Bar replay is already there for Charting.