Jean Bredeche
c7250d3207
BUG: Python3 compatibility.
2017-04-26 10:47:27 -04:00
Jean Bredeche
b55d4bd423
BUG: Add backwards compatibility for position lookup by int.
2017-04-26 09:55:05 -04:00
Jean Bredeche
bed00a1b77
BUG: use isinstance
2017-04-24 17:06:26 -04:00
Jean Bredeche
15d8dc93a3
MAINT: PR feedback.
2017-04-24 15:41:23 -04:00
Jean Bredeche
8c5e4b7bbc
BUG: Blotter should process as many splits as it can
2017-04-24 15:41:23 -04:00
Jean Bredeche
64746b186b
BUG: get_splits should return empty list, not empty dict
2017-04-24 15:41:23 -04:00
Jean Bredeche
5305fbe471
REF: Remove assetfinder from PerformancePeriod
2017-04-24 15:41:22 -04:00
Jean Bredeche
9a0d9d868c
REF: Remove asset_finder and multipliers from PositionTracker
2017-04-24 15:41:22 -04:00
Jean Bredeche
e429664fa6
REF: Blotter no longer needs AssetFinder
2017-04-24 15:41:21 -04:00
Jean Bredeche
59a96bf782
REF: Make dataportal emit splits that hold Assets, not sids
2017-04-24 15:41:21 -04:00
Jean Bredeche
1f8e194e09
BUG: Position cost basis was calculated incorrectly for Futures
...
For futures, we need to divide the position’s commission by the
contract size to get a per-unit commission in order to properly update
the position’s cost basis.
2017-04-24 15:41:20 -04:00
Jean Bredeche
b1248cb6d6
REF: Explicitly use Assets in Position, Order, Transaction
...
(Instead of `sid`, which were already usually assets)
Perf packets are unchanged and still emit `sid`: int
2017-04-24 15:41:13 -04:00
Jean Bredeche
ec6492c84e
TST: New fixture for constant futures data
2017-04-24 14:15:26 -04:00
Jean Bredeche
ea1fb05676
ENH: teach BarData about current session's minutes
2017-03-15 13:40:33 -04:00
Jean Bredeche
f11b6467ac
Rename _attrs_to_check to asdict
2017-02-23 11:32:04 -05:00
Jean Bredeche
0b8fee49d1
ENH: Solidify equality comparisons for SlippageModel classes
2017-01-24 11:28:32 -05:00
Jean Bredeche
7c72a4fc56
BUG: fix a py3 invalid char
2017-01-19 20:43:48 -05:00
Jean Bredeche
b5438ac94e
ENH: add current_session property to BarData
2017-01-19 16:53:49 -05:00
Jean Bredeche
a9c0ce1dde
ENH: Small refactoring of fill price check.
2017-01-18 09:22:05 -05:00
Jean Bredeche
87eb87525f
PERF: Be smarter about counting the number of minutes across a contiguous bunch of sessions.
2016-09-19 13:25:03 -04:00
Jean Bredeche
1d2e1015c7
PERF: Save up to 75% of the calls to minute_to_session_label
...
One year NYSE test that buys a lot triggers 492,963 calls to
minute_to_session_label. Only 98924 ~(390 * 252) make it past the
cache and trigger the heavier computation.
2016-09-16 15:18:50 -04:00
Jean Bredeche
eb7e1fa580
ENH: Switching from cachetools.LRUCache to lru-dict's LRU cache.
...
lru-dict is written in C and seems much more performant.
2016-09-16 11:03:13 -04:00
Jean Bredeche
ae0d41af6f
ENH: Make reader.get_value raise NoDataOnDate if the date is not in the calendar.
...
DataPortal now catches the NoDataOnDate exception and returns nan for
OHLC and 0 for V.
Price is still forward filled, unchanged.
2016-09-14 22:21:43 -04:00
Jean Bredeche
a5693d0589
MAINT: Add BarReader base class for both minute and session readers
2016-09-14 13:47:12 -04:00
Jean Bredeche and GitHub
959baf7fe0
Merge pull request #1408 from quantopian/really-can-i-trade-how-about-now
...
ENH: Update can_trade to check exchange time
2016-08-31 22:04:06 -04:00
Jean Bredeche
fbd3774278
ENH: Update can_trade to check exchange time
...
BarData now takes the trading calendar as a parameter.
can_trade now checks if the asset’s exchange is open at the current or
next market minute (defined by the given trading calendar).
2016-08-31 21:22:06 -04:00
Jean Bredeche
38ff7e5aa7
ENH: Simplified implementation of FutureChain object (not user-facing API).
...
No longer auto-updates its internal as-of date, instead requires an explicit
as-of date from the consumer.
Take a static list of contracts (instead of needing an assetfinder).
Instead of the as_of method, the user-facing API now lets you pass in an
offset, which is defined as an integral number of sessions.
2016-08-31 14:44:02 -04:00
Jean Bredeche
f570ab0518
ENH: Put a cache in front of future chain lookups
...
Cache the last 100 rootsymbol/session pairs, since future chains never
change inside a session.
2016-08-31 10:40:11 -04:00
Jean Bredeche
972f05b8f2
ENH: Avoid unnecessary work with missing data.
2016-08-30 17:16:08 -04:00
Jean Bredeche
749c2eea33
ENH: Let event offsets be up to 12 hours.
2016-08-29 09:33:40 -04:00
Jean Bredeche
47dba5b6c9
TST: Some futures-related fixtures cleanup.
2016-08-28 21:33:54 -04:00
Jean Bredeche
7b83cbe820
ENH: Add new parameter to schedule_function that accepts a trading
...
calendar.
2016-08-28 21:33:42 -04:00
Jean Bredeche
9a2ad260e5
BUG: Temporarily commenting out new can_trade functionality until we sort out downstream dependencies.
2016-08-13 21:46:00 -04:00
Jean Bredeche
7803ec6e46
ENH: Add public API to register calendars by type
2016-08-11 11:27:48 -04:00
Jean Bredeche
ec441c55ea
BUG: Fix HolidayCalendar init
2016-08-09 09:10:43 -04:00
Jean Bredeche
2a41331da3
BUG: Need to set simulation_dt in before_trading_start
...
so that log lines in b_t_s have the proper dt.
2016-08-04 11:59:48 -04:00
Jean Bredeche
d1077a36c2
TST: Fix broken tests, updated example data
2016-08-04 09:38:18 -04:00
Jean Bredeche
7d4b19a7f0
ENH: Use bundle name as exchange value
2016-08-02 23:21:39 -04:00
Jean Bredeche
e6af4e4f1b
ENH: made exchange a required parameter to Asset and its subclasses
...
This required updating a lot of tests.
2016-08-02 23:21:39 -04:00
Jean Bredeche
17e390a379
ENH: Read asset's exchange directly
2016-08-02 23:12:08 -04:00
Jean Bredeche
9ae725b940
ENH: update register_calendar API to take a specific name
2016-08-02 23:12:07 -04:00
Jean Bredeche
97ccb54326
MAINT: PR cleanup
2016-08-02 23:12:07 -04:00
Jean Bredeche
6020752a1d
TST: Filter out pandas performance warnings in tests (for now)
2016-08-02 23:12:07 -04:00
Jean Bredeche
fd03004d9f
TST: Add tests to verify that we check the correct exchange calendar for can_trade
...
Also added temporary code to skip trying to get the last price of a
Future until we have finished the Futures data layer.
2016-08-02 23:12:07 -04:00
Jean Bredeche
2854c77d55
ENH: Clock now fires a BEFORE_TRADING_START_BAR event.
...
`AlgorithmSimulator` listens to that event to call the algorithm's
`before_trading_start` method.
2016-08-02 23:12:07 -04:00
Jean Bredeche
d8af3fb92e
ENH: Augment data.can_trade to check whether the asset's exchange is currently
...
open.
2016-08-02 23:11:10 -04:00
Jean Bredeche
c54ede896c
rebuilt in py3/pandas16
2016-08-02 10:43:04 -04:00
Jean Bredeche
33bef2165c
rebuilt data in py3
2016-08-02 10:17:19 -04:00
Jean Bredeche
a40d205afa
ENH: Adding exchange_full to equity asset column
2016-08-02 09:35:08 -04:00
Jean Bredeche
3305933089
DEV: Change daily mode to use last minute of session instead of session itself.
2016-07-27 09:20:24 -04:00
Jean Bredeche
2462929368
Revert "Merge pull request #1340 from quantopian/by-daily-i-mean-minutely"
...
This reverts commit f4456719b0 , reversing
changes made to 4be07e4628 .
2016-07-26 16:20:14 -04:00
Jean Bredeche
bcb547d5a8
DEV: Change daily mode to use last minute of session instead of session itself.
2016-07-26 12:49:49 -04:00
Jean Bredeche
7418e893a9
BUG: Implement sessions property for PanelDailyBarReader
...
Also, renamed it from `_sessions_ to `sessions` and defined an
abstractproperty in `DailyBarReader`.
2016-07-24 21:08:11 -04:00
Jean Bredeche
63ef840363
ENH: Verify params passed to get_datetime
2016-07-21 20:42:28 -04:00
Jean Bredeche
adea192f02
BLD: Fix some imports.
2016-07-20 09:10:32 -04:00
Jean Bredeche
21aca754ba
ENH: Reorganized internal calendar implementation.
...
Added tests for CME calendar.
Added ICE calendar (and tests).
Added CFE calendar (and tests).
2016-07-19 22:27:34 -04:00
Jean Bredeche
5a0f840917
Clean up daily bar reader/writer to take advantage of new trading calendar. The reader
...
is backwards-compatible with the previous format.
In USEquityLoader, use dailyreader's trading_calendar.
This is backwards compatible and will fall back to the NYSE calendar if
the reader doesn’t have a calendar specified.
2016-07-15 15:13:57 -04:00
Jean Bredeche
295cfa3846
Fix some mistakes from a previous merge.
...
No tests failed, which was worrisome. Will file issues to take a look
later.
2016-07-14 15:40:36 -04:00
Jean Bredeche
3d6fdc0755
Make sure we are passing ints to nth.
2016-07-13 20:40:57 -04:00
Jean Bredeche
4af61d2c39
unused
2016-07-13 09:13:39 -04:00
Jean Bredeche
6fb4923cc7
Re-implemented the Calendar API.
...
Instead of having separate ExchangeCalendar and TradingSchedule objects, we
now just have TradingCalendar. The TradingCalendar keeps track of each
session (defined as a contiguous set of minutes between an open and a close).
It's also responsible for handling the grouping logic of any given minute
to its containing session, or the next/previous session if it's not a market
minute for the given calendar.
2016-07-12 13:13:50 -04:00
Jean Bredeche
97d27cf407
Revert "Merge pull request #1226 from quantopian/schedule_function_resilience"
...
This reverts commit 6079604483 , reversing
changes made to c9b5979f45 .
2016-06-09 17:19:46 -04:00
Jean Bredeche
1505c62daf
REV: Restore old tradingcalendar.py
2016-06-09 13:56:40 -04:00
Jean Bredeche
4b09715052
ENH: better comments
2016-06-09 13:28:43 -04:00
Jean Bredeche
b5633aa87c
DEV: Fix merge issues.
2016-06-08 14:16:17 -04:00
Jean Bredeche
92600d7695
BLD: get travis to run on PRs into exchange-calendars-v2
2016-06-08 13:34:23 -04:00
Jean Bredeche
b1428aaad1
DEV: Cleaned up trading_minute_window
...
Removed it from ExchangeCalendar.
Fixed TradingSchedule’s implementation to be much faster. Removed the
`step` parameter.
2016-06-08 13:34:23 -04:00
Jean Bredeche
e1e12534c5
ENH: speed up calculation of all trading minutes.
2016-06-08 13:34:23 -04:00
Jean Bredeche
1208aaf1d9
Fix from bad rebase.
2016-06-08 13:34:23 -04:00
Jean Bredeche
39bf1dbd7b
DEV: Re-implement commission models to return correct results in the case of multiple fills.
2016-05-23 21:19:06 -04:00
Jean Bredeche and Joe Jevnik
6b1cdb6929
DOC: Updated whatsnew with Q2 information.
2016-05-13 16:48:57 -04:00
Jean Bredeche
83d70f4a70
DEV: pull remove-open-orders logic into its own method
...
And test it.
2016-05-10 20:14:44 -04:00
Jean Bredeche
fe5a2a888a
PERF: takes ~14% off the time it takes to initialize a MinuteSimulationClock
...
on my machine, ~350ms -> ~300ms
also, clarifies the public API for MinuteSimulationClock (now, only
__iter__ is exposed)
2016-05-09 10:18:41 -04:00
Jean Bredeche
9c291cfa28
DEV: extract fetcher method for easier downstream use
2016-05-05 13:06:14 -04:00
Jean Bredeche
3f1b0f79f2
DEV: Ensure there are no duplicates in the data passed into TradingAlgorithm.run
2016-05-05 11:54:39 -04:00
Jean Bredeche
c404c60d68
BUG: don't allow ordering in before_trading_start
2016-04-26 10:56:36 -04:00
Jean Bredeche
d9d0c2f9fc
run flake8 first, before tests
2016-04-25 09:56:44 -04:00
Jean Bredeche
02ded435f6
DEV: Don't log an error if we can't find a matching asset/field/day triple in fetcher data
2016-04-25 09:47:18 -04:00
Jean Bredeche
2a981dc725
BUG: Restoring 'broker_order_id' to Order's dict
...
More long-term fix is coming later, this restores existing downstream
behavior.
2016-04-21 15:18:42 -04:00
Jean Bredeche
9d1e15ddde
BUG: Fetcher wasn't working properly in before_trading_start.
...
We were trying to use the previous day in before_trading_start because
we were looking for the previous market minute, then normalizing it. That's
no longer the case, as we want to use today's date for fetcher lookups
in before_trading_start.
Also refactored a bit how dataportal determines if a query should be
routed to the fetcher data structures.
2016-04-21 15:09:14 -04:00
Jean Bredeche
c323506f40
BUG: we were improperly checking iterable kwargs in BarData
2016-04-21 11:06:46 -04:00
Jean Bredeche
898942a940
BUG: need broker_order_id for downstream code
2016-04-21 08:22:21 -04:00
Jean Bredeche
a1f19dca54
Use __slots__ to save memory
2016-04-20 16:59:55 -04:00
Jean Bredeche
5d3dcc3df4
PERF: do work later, when needed.
2016-04-16 21:39:55 -04:00
Jean Bredeche
63bd7589b7
BUG: support passing an empty list to data methods.
...
Our type checking code was a bit too aggressive.
2016-04-14 11:11:08 -04:00
Jean Bredeche
bd36e92556
DEV: minor perf boosts
...
likely doesn’t move the needle that much
2016-04-13 16:34:04 -04:00
Jean Bredeche
d94b7bb9e4
DEV: Don't need to pass method name in.
2016-04-13 16:09:18 -04:00
Jean Bredeche
d597a3caaa
DEV: combined the decorators
...
This way the type decorator could have access to the argument
decorator’s keyword list.
2016-04-13 16:01:00 -04:00
Jean Bredeche
bd5e2b183d
BUG: Properly log partially filled sell orders.
2016-04-12 13:57:50 -04:00
Jean Bredeche
f6902f0368
BUG: bar_data.history too limiting on iterable types
...
In before_trading_start, history needs to call
DataPortal.get_adjustments, and that method wasn’t correctly checking
for iterables.
2016-04-11 14:02:27 -04:00
Jean Bredeche
4203c54417
ENH: make handle_data optional
2016-04-07 09:50:09 -04:00
Jean Bredeche
dc01c45dc4
DEV: Apply adjustments for portfolio and account in BTS
...
completely copied from https://github.com/quantopian/zipline/pull/1104/
All credit goes to Andrew Liang (@lianga888)
2016-04-05 11:37:34 -04:00
Jean Bredeche
f48f88861d
BUG: chunk sqlite queries into groups of 999.
2015-11-20 13:39:46 -05:00
Jean Bredeche
b0b159e12d
ENH: vectorize mean algorithm returns calculation
...
In a sample backtest on my machine, this takes the final risk
calculations down from ~10 seconds to ~0.8 seconds.
2015-10-24 13:18:52 -04:00
Jean Bredeche
2bb87cbd23
DOC: typo fixes
2015-10-06 09:06:05 -04:00
Jean Bredeche
ff87fd32e3
BUG: Let logbook figure out how to bind the context manager.
2015-08-06 13:52:58 -04:00
Jean Bredeche
8f1d599fc6
fixing some bugs with splits (ratios and empty positions)
2013-07-24 15:26:15 -07:00
Jean Bredeche and Eddie Hebert
6fc077a573
ENH: Add support for splits in zipline.
...
When a split is encountered, open positions and open orders
are updated accordingly.
2013-07-23 16:22:58 -04:00