From a777654b629adac05c29e69234f4cda889f8bdc1 Mon Sep 17 00:00:00 2001 From: ttt733 Date: Wed, 15 May 2019 11:14:03 -0500 Subject: [PATCH 1/3] Handle empty bardata and update pipeline-live version --- dockerfiles/Pipfile | 4 ++-- pylivetrader/_version.py | 2 +- pylivetrader/backend/alpaca.py | 11 ++++++----- pylivetrader/data/bardata.py | 3 +++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dockerfiles/Pipfile b/dockerfiles/Pipfile index d336d2c..84e210c 100644 --- a/dockerfiles/Pipfile +++ b/dockerfiles/Pipfile @@ -6,8 +6,8 @@ name = "pypi" [packages] numpy = ">1.16" alpaca-trade-api = "==0.28" -pylivetrader = "==0.0.29" -pipeline-live = "==0.1.4" +pylivetrader = "==0.0.30" +pipeline-live = "==0.1.5" ta-lib = "==0.4.17" [dev-packages] diff --git a/pylivetrader/_version.py b/pylivetrader/_version.py index 5a5d512..b591fba 100644 --- a/pylivetrader/_version.py +++ b/pylivetrader/_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -VERSION = '0.0.29' +VERSION = '0.0.30' diff --git a/pylivetrader/backend/alpaca.py b/pylivetrader/backend/alpaca.py index e8e46f4..7d01883 100644 --- a/pylivetrader/backend/alpaca.py +++ b/pylivetrader/backend/alpaca.py @@ -600,11 +600,12 @@ def fetch(symbol): if size == 'minute': df.index += pd.Timedelta('1min') - # mask out bars outside market hours - mask = self._cal.minutes_in_range( - df.index[0], df.index[-1], - ).tz_convert(NY) - df = df.reindex(mask) + if not df.empty: + # mask out bars outside market hours + mask = self._cal.minutes_in_range( + df.index[0], df.index[-1], + ).tz_convert(NY) + df = df.reindex(mask) if limit is not None: df = df.iloc[-limit:] diff --git a/pylivetrader/data/bardata.py b/pylivetrader/data/bardata.py index 7e2fd84..dbe6e47 100644 --- a/pylivetrader/data/bardata.py +++ b/pylivetrader/data/bardata.py @@ -123,6 +123,9 @@ def fetch(asset, field): def history(self, assets, fields, bar_count, frequency): + if not assets and fields: + return None + if isinstance(fields, str): single_asset = isinstance(assets, Asset) From e9f79c67038974ed450d3ba3711efbf2c776c7ae Mon Sep 17 00:00:00 2001 From: ttt733 Date: Wed, 15 May 2019 11:16:57 -0500 Subject: [PATCH 2/3] Remove pylivetrader version changes --- dockerfiles/Pipfile | 2 +- pylivetrader/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dockerfiles/Pipfile b/dockerfiles/Pipfile index 84e210c..35e4ae2 100644 --- a/dockerfiles/Pipfile +++ b/dockerfiles/Pipfile @@ -6,7 +6,7 @@ name = "pypi" [packages] numpy = ">1.16" alpaca-trade-api = "==0.28" -pylivetrader = "==0.0.30" +pylivetrader = "==0.0.29" pipeline-live = "==0.1.5" ta-lib = "==0.4.17" diff --git a/pylivetrader/_version.py b/pylivetrader/_version.py index b591fba..5a5d512 100644 --- a/pylivetrader/_version.py +++ b/pylivetrader/_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -VERSION = '0.0.30' +VERSION = '0.0.29' From ce4361301d883c24f4021fa5cd59ca668f127946 Mon Sep 17 00:00:00 2001 From: ttt733 Date: Wed, 15 May 2019 11:31:41 -0500 Subject: [PATCH 3/3] Make history parameter check more explicit --- pylivetrader/data/bardata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pylivetrader/data/bardata.py b/pylivetrader/data/bardata.py index dbe6e47..abf5369 100644 --- a/pylivetrader/data/bardata.py +++ b/pylivetrader/data/bardata.py @@ -123,7 +123,7 @@ def fetch(asset, field): def history(self, assets, fields, bar_count, frequency): - if not assets and fields: + if not (assets and fields): return None if isinstance(fields, str):