def test_event_window_with_timedelta(self): # Keep all events within a 5 minute window. window = NoopEventWindow( market_aware=False, delta=timedelta(minutes=5), days=None ) now = utcnow() # 15 dates, increasing in 1 minute increments. dates = [now + i * timedelta(minutes=1) for i in xrange(15)] # Turn the dates into the format required by EventWindow. dt_messages = [to_dt(date) for date in dates] # Run all messages through the window and assert that we're adding # and removing messages appropriately. We start the enumeration at 1 # for convenience. for num, message in enumerate(dt_messages, 1): window.update(message) # Assert that we've added the correct number of events. assert len(window.added) == num # Assert that we removed only events that fall outside (or # on the boundary of) the delta. for dropped in window.removed: assert message.dt - dropped.dt >= timedelta(minutes=5)
def test_event_window_with_timedelta(self): # Keep all events within a 5 minute window. window = NoopEventWindow(market_aware=False, delta=timedelta(minutes=5), days=None) now = utcnow() # 15 dates, increasing in 1 minute increments. dates = [now + i * timedelta(minutes=1) for i in xrange(15)] # Turn the dates into the format required by EventWindow. dt_messages = [to_dt(date) for date in dates] # Run all messages through the window and assert that we're adding # and removing messages appropriately. We start the enumeration at 1 # for convenience. for num, message in enumerate(dt_messages, 1): window.update(message) # Assert that we've added the correct number of events. assert len(window.added) == num # Assert that we removed only events that fall outside (or # on the boundary of) the delta. for dropped in window.removed: assert message.dt - dropped.dt >= timedelta(minutes=5)
# Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import pandas as pd import pytz from datetime import datetime from dateutil import rrule from zipline.utils.date_utils import utcnow start = datetime(1990, 1, 1, tzinfo=pytz.utc) end = utcnow() def get_non_trading_days(start, end): non_trading_rules = [] weekends = rrule.rrule( rrule.YEARLY, byweekday=(rrule.SA, rrule.SU), cache=True, dtstart=start, until=end ) non_trading_rules.append(weekends) new_years = rrule.rrule(
# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import pytz from datetime import datetime from dateutil import rrule from zipline.utils.date_utils import utcnow start = datetime(2002, 1, 1, tzinfo=pytz.utc) end = utcnow() non_trading_rules = [] weekends = rrule.rrule(rrule.YEARLY, byweekday=(rrule.SA, rrule.SU), cache=True, dtstart=start, until=end) non_trading_rules.append(weekends) new_years = rrule.rrule(rrule.MONTHLY, byyearday=1, cache=True, dtstart=start, until=end)