I built a realistic backtester using an OHLC data feed and Barra data to build trading strategies using parameters like trade delays, take profits levels, stop loss levels, etc. while my algorithm buys and sells.
My backtester performs portfolio optimization using performance attribution to identify the major drivers of my portfolio's profit-and-loss (PnL).