zipline的bundle中主要的四个方法:
asset_db_writer
minute_bar_writer
daily_bar_writer
adjustment_writer
因暂时以日为交易频率,暂先不讨论
minute_bar_writer 待后续补上
一、asset_db_writer
1、数据源格式
('start_date', 'datetime64[ns]'),
('end_date', 'datetime64[ns]'),
('auto_close_date', 'datetime64[ns]'),
('symbol', 'object'),
例如
start_date end_date auto_close_date symbol
0 1970-01-01 1970-01-01 1970-01-01 600000
1 1970-01-01 1970-01-01 1970-01-01 600000
2 1970-01-01 1970-01-01 1970-01-01 600000
2、数据存储为splite表
股票相关:
asset_router
equities
equity_supplementary_mappings
equity_symbol_mappings
期货相关:
futures_contracts
futures_exchanges
futures_root_symbols
version_info
二、daily_bar_writer
1、数据来源
(sid, stock_ohlcv_dataframe)
sid:股票存储id
stock_ohlcv_dataframe:以为date open close high low volume adj close列的dataframe
例如:
(0, date open close high low volume adj close
2017-02-27 16.69 16.59 16.72 16.53 13732273 NaN
2017-02-28 16.58 16.59 16.67 16.53 12097943 NaN)
2、数据存储为Bcloz列格式的数据
Bcloz是基于列的数据库,所以open,high,low,close,volume分别存储
Bcloz的meta信息保存了索引,结合TradingCalender可以把数据读出
Bcolz Data的meta信息内容
{
"first_trading_day":1292889600,
"end_session_ns":1477872000000000000,
"calendar_name":"SHSZ",
"start_session_ns":1292889600000000000,
"first_row":{},
"calendar_offset":{},
"last_row":{}
}
三、adjustment_writer
1、split数据格式
('effective_date', 'datetime64[ns]'),
('ratio', 'float64'),
('sid', 'int64'),
2、dividends数据格式
('ex_date', 'datetime64[ns]'),
('amount', 'float64'),
('sid', 'int64'),
('record_date', 'datetime64[ns]'),
('declared_date', 'datetime64[ns]'),
('pay_date', 'datetime64[ns]'),
3、数据存储在splite表中
dividend_payouts
mergers
stock_dividend_payouts
dividends
splits
zipline的bundle相关数据结构
最新推荐文章于 2023-04-23 11:54:02 发布