NOTE: There is a limit in backtesting to 2000 orders, so please be aware of this when setting your date ranges. If you set your range too high, you may be exceeding this limit on some periods and not on others, so this would yield incorrect comparison of returns per period. If you see in your backtesting results that you are nearing this limit for one of your periods you are testing, then reduce the date range to a smaller number of days.
(Thanks to @Gesundheit "Adeel" for pointing me in the right direction on this!)
- Using input statements for MA lengths.
- Using date range condition within execution.
- BONUS example of creating a function for date range.
Also added simple error checking to input statements for month and day.
For preventing the error on exceeding 2000 orders you must take steps to reduce the number of trades. Various means to do this include changing the range you are backtesting, changing the period, changing the frequency of how often your strategy trades, etc.
LTC (preferred): LTDaAe7nPzbpBhZVT9o5f9f8M3aZSPa46Y