Skip to content

Instantly share code, notes, and snippets.

@zaoldyeck
Last active September 6, 2019 03:35
Show Gist options
  • Save zaoldyeck/e3f69724841dbeaa190e7b68b171cabb to your computer and use it in GitHub Desktop.
Save zaoldyeck/e3f69724841dbeaa190e7b68b171cabb to your computer and use it in GitHub Desktop.
from dateutil.relativedelta import relativedelta
# def date_iter_periodicity(start_date, end_date, hold_days):
# date = start_date
# while date < end_date:
# yield (date), (date + datetime.timedelta(hold_days))
# date += datetime.timedelta(hold_days)
def date_iter_periodicity(start_date, end_date, interval):
date = start_date
while date < end_date:
yield (date), (date + relativedelta(months=+interval))
date += relativedelta(months=+interval)
# How to use - Trading on the 1st of each month
# start_date = datetime.date(2014, 5, 1)
# end_date = datetime.date(2019, 9, 1)
# interval = 1
# backtest(start_date, end_date, interval, strategy, data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment