mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 12:08:34 +08:00
ENH: make BcolzMinuteBarWriter.write take iterable
Updates the BcolzMinuteBarWriter.write api to allow users to pass their data as a stream instead of requiring that they loop over their data externally. This matches the API presented by BcolzDailyBarWriter.
This commit is contained in:
+23
-31
@@ -29,7 +29,6 @@ from testfixtures import TempDirectory
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import pytz
|
||||
from toolz import merge
|
||||
|
||||
from zipline import TradingAlgorithm
|
||||
from zipline.api import FixedSlippage
|
||||
@@ -1039,25 +1038,20 @@ class TestBeforeTradingStart(WithDataPortal,
|
||||
index=asset_minutes,
|
||||
)
|
||||
split_data.iloc[780:] = split_data.iloc[780:] / 2.0
|
||||
return merge(
|
||||
{
|
||||
sid: create_minute_df_for_asset(
|
||||
cls.env,
|
||||
cls.data_start,
|
||||
cls.sim_params.period_end,
|
||||
)
|
||||
for sid in (1, 8554)
|
||||
},
|
||||
{
|
||||
2: create_minute_df_for_asset(
|
||||
cls.env,
|
||||
cls.data_start,
|
||||
cls.sim_params.period_end,
|
||||
50,
|
||||
),
|
||||
cls.SPLIT_ASSET_SID: split_data,
|
||||
},
|
||||
for sid in (1, 8554):
|
||||
yield sid, create_minute_df_for_asset(
|
||||
cls.env,
|
||||
cls.data_start,
|
||||
cls.sim_params.period_end,
|
||||
)
|
||||
|
||||
yield 2, create_minute_df_for_asset(
|
||||
cls.env,
|
||||
cls.data_start,
|
||||
cls.sim_params.period_end,
|
||||
50,
|
||||
)
|
||||
yield cls.SPLIT_ASSET_SID, split_data
|
||||
|
||||
@classmethod
|
||||
def make_splits_data(cls):
|
||||
@@ -2552,18 +2546,16 @@ class TestOrderCancelation(WithDataPortal,
|
||||
minutes_arr = np.arange(1, 1 + minutes_count)
|
||||
|
||||
# normal test data, but volume is pinned at 1 share per minute
|
||||
return {
|
||||
1: pd.DataFrame(
|
||||
{
|
||||
'open': minutes_arr + 1,
|
||||
'high': minutes_arr + 2,
|
||||
'low': minutes_arr - 1,
|
||||
'close': minutes_arr,
|
||||
'volume': np.full(minutes_count, 1),
|
||||
},
|
||||
index=asset_minutes,
|
||||
),
|
||||
}
|
||||
yield 1, pd.DataFrame(
|
||||
{
|
||||
'open': minutes_arr + 1,
|
||||
'high': minutes_arr + 2,
|
||||
'low': minutes_arr - 1,
|
||||
'close': minutes_arr,
|
||||
'volume': np.full(minutes_count, 1),
|
||||
},
|
||||
index=asset_minutes,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def make_daily_bar_data(cls):
|
||||
|
||||
Reference in New Issue
Block a user