Why my backtest result is different from my dry/live result?

There are several possible reasons why the difference occurs. Some of them are

Lookahead and/or recursive loop issue

They are both two separate issues but with one common cause, which is because you get the whole data in backtest. While having loads of data itself is harmless, how you use it is another story. But the end result would be similar, you will most likely get different trade entries and exits compared to dry/live run. Usually, what would happen is you have good performance on backtest, but you have bad performance once you put it on dry/live run.

You are using volume pairlist on dry/live run

Read the linked article for more explanation. The fix for this issue is quite simple. Create a good static list and use in-strat filters instead of using pairlist filters. Different pairlists will give different results, so your aim to make sure the bot use similar pairlists for both backtest and dry/live run.

Different exit timings due to reliance on current_profit

Read trailing stop trap, custom exit trap and roi trap articles for more explanation. Different exit timings can affect future entries, especially if the re-entry is just few candles away from the last exit.

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *