Hi-
Could someone share their long term backtest results vs what they get in real life, plus ways to make the two match closer?
For example:
A) backtested over 20 years: CAGR = 550%; DD = 20%; avg p/l = 2%; profit factor= 2.0; exposure = 55%. Skewed as Internet bubble and bust years would see few thousand percent returns per year. Worst year return = 40%; 2nd worst year return = 130%.
B) traded real life for 6 months: CAGR = 20%; DD = 12% as not yet hit crazy times, did not trade this system live end of 2008 bear market; avg p/l = 0.5% and profit factor= 1.4 as avg losers are bigger and win rate is lower than in backtests; exposure = 45% as relatively there was less volatility which translated to less trades.
About my system:
I have an end of day trading system, where all orders are placed in the evening, outside of market hours. I place many limit orders to enter positions, and only a small percentage of them fill. I trade mean reversion both long and short, staying in positions at least one day and at most several days. It's all rules based, non-discretionary.
Here are some of the things I look at in order to make real life closer to backtest results:
1) Ranking: my end of day swing trading system backtests will differ, as fills in real life are done based on time, while I don't know which of my limit orders would fill. My backtests take the highest ranked trades for the day. Does anyone have a similar trading system to mine and used intraday quotes to test?
2) Slippage: Almost all of my entries and exit are done with limit orders. But I also have code to add slippage in case prices gap and open is a better price than my limit order.
3) Liquidity: I take out a tiny percentage of daily money flow. Partial fills are not common at all.
4) Commissions: I plug in the exact commission from my broker.
5) Manually excluding signals (due to news) while backtests take all trades no matter what. Most of the time I'd have different fills in place of the excluded as my exposure to the market is pretty high.
6) Survivorship bias: I backtest using the whole universe of stocks including delisted.
7) Significant sample size: My backtests go back 20 years, and average 800 trades a year.
8) Not getting best price of the day: If my limit order is to buy at $9.50, low of the day needs to be $9.49 or lower for the backtest to take the trade.
9) No shares available to short: I'm investigating having multiple brokerage accounts to have a higher chance of getting borrowable shares.
10) Following my rules: it's rare, but if I did something that's not in my rules, I track differences to see if I added or subtracted value -- over few months it's a wash. I also compare live trading and backtesting results at the end of each week as I go, and overall results are pretty close over the last 6 months, even if sometimes different trades are taken.
11) Quality of data: I paid for my end of day quote database, and it's used by many other system traders, with good reviews. I have seen data spikes in free data which was not real or tradeable.
12) More limit orders than available buying power: I have a workaround where I can place a larger number of limit orders even if they exceed my buying power. Once orders are filled and buying power goes to $0, then outstanding limit orders would get rejected.
Thank you,
Mark
Could someone share their long term backtest results vs what they get in real life, plus ways to make the two match closer?
For example:
A) backtested over 20 years: CAGR = 550%; DD = 20%; avg p/l = 2%; profit factor= 2.0; exposure = 55%. Skewed as Internet bubble and bust years would see few thousand percent returns per year. Worst year return = 40%; 2nd worst year return = 130%.
B) traded real life for 6 months: CAGR = 20%; DD = 12% as not yet hit crazy times, did not trade this system live end of 2008 bear market; avg p/l = 0.5% and profit factor= 1.4 as avg losers are bigger and win rate is lower than in backtests; exposure = 45% as relatively there was less volatility which translated to less trades.
About my system:
I have an end of day trading system, where all orders are placed in the evening, outside of market hours. I place many limit orders to enter positions, and only a small percentage of them fill. I trade mean reversion both long and short, staying in positions at least one day and at most several days. It's all rules based, non-discretionary.
Here are some of the things I look at in order to make real life closer to backtest results:
1) Ranking: my end of day swing trading system backtests will differ, as fills in real life are done based on time, while I don't know which of my limit orders would fill. My backtests take the highest ranked trades for the day. Does anyone have a similar trading system to mine and used intraday quotes to test?
2) Slippage: Almost all of my entries and exit are done with limit orders. But I also have code to add slippage in case prices gap and open is a better price than my limit order.
3) Liquidity: I take out a tiny percentage of daily money flow. Partial fills are not common at all.
4) Commissions: I plug in the exact commission from my broker.
5) Manually excluding signals (due to news) while backtests take all trades no matter what. Most of the time I'd have different fills in place of the excluded as my exposure to the market is pretty high.
6) Survivorship bias: I backtest using the whole universe of stocks including delisted.
7) Significant sample size: My backtests go back 20 years, and average 800 trades a year.
8) Not getting best price of the day: If my limit order is to buy at $9.50, low of the day needs to be $9.49 or lower for the backtest to take the trade.
9) No shares available to short: I'm investigating having multiple brokerage accounts to have a higher chance of getting borrowable shares.
10) Following my rules: it's rare, but if I did something that's not in my rules, I track differences to see if I added or subtracted value -- over few months it's a wash. I also compare live trading and backtesting results at the end of each week as I go, and overall results are pretty close over the last 6 months, even if sometimes different trades are taken.
11) Quality of data: I paid for my end of day quote database, and it's used by many other system traders, with good reviews. I have seen data spikes in free data which was not real or tradeable.
12) More limit orders than available buying power: I have a workaround where I can place a larger number of limit orders even if they exceed my buying power. Once orders are filled and buying power goes to $0, then outstanding limit orders would get rejected.
Thank you,
Mark
I don't have that "problem" yet, and can afford to trade some small caps. Currently, my backtest have a static minimum liquidity requirement.