zipline的bundle相关数据结构

来源:互联网 发布:悉尼类似淘宝的app 编辑:程序博客网 时间:2024/05/24 04:53

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    

0 0