IMO, I agree that buying at low of the bar and selling at high of the bar is practically very hard. But the price displayed in the charts will not be used for backtesting by default. These are two different things
1) Price used for backtesting
AFL will only tell which bar to buy/sell. In Amibroker, "Backtester Settings" => "Trades" tab => You can choose one among the following for backtesting (Close/Open/High/Low/Average). Many will choose close as that is something practically achievable or you can choose average depending on your taste.
2) Price displayed in the chart (Buy/Sell price, Target, SL)
AFL's chart displays the price with buy at Low of the bar and Sell at high of the bar. It also decides the SL/Target based on this buy / sell price.
Ideally one would want (1) and (2) to use the same buy/sell price choosing logic. We know how to manipulate buy/sell price in Backtester. You can easily edit this AFL also. In this AFL, look for the below lines...
Change the 'L' to 'C', to display Buying at closing price.
"PlotText( "\nBuy:" + L[ i ] + "\nT= " + (L*1.005) + "\nSL= " + (L*0.9975), i, L[ i ]-dist, colorGreen, colorWhite );"
Below line, change 'H' to 'C' to display Selling at closing price.
"PlotText( "Sell:" + H[ i ] + "\nT= " + (H*0.995) + "\nSL= " + (H*1.0025), i, H[ i ]+dist1, colorRed, colorWhite );"
Bingo.. now you can backtest with buying/selling at close price and also visually see buy / sell / SL / target with close price (or whichever you have chosen)!