用于zipline的poloniex数据包,pythonic算法交易库。
zipline-poloniex的Python项目详细描述
pythonic算法交易库zipline的poloniex数据包。
说明
只需安装pip:
pip install zipline-poloniex
并创建一个调用zipline的register函数的文件$HOME/.zipline/extension.py。 create_bundle函数返回register所需的摄取函数。 使用普通美元的Pairs记录加密货币对。
示例
- 将以下内容添加到$HOME/.zipline/extension.py:
importpandasaspdfromzipline_polonieximportcreate_bundle,Pairs,register# adjust the following lines to your needsstart_session=pd.Timestamp('2016-01-01',tz='utc')end_session=pd.Timestamp('2016-12-31',tz='utc')assets=[Pairs.usdt_eth]register('poloniex',create_bundle(assets,start_session,end_session,),calendar_name='POLONIEX',minutes_per_day=24*60,start_session=start_session,end_session=end_session)
接收数据时使用:
zipline ingest -b poloniex
创建您的交易算法,例如my_algorithm.py,使用:
importloggingfromzipline.apiimportorder,record,symbolfromzipline_poloniex.utilsimportsetup_logging__author__="Florian Wilhelm"__copyright__="Florian Wilhelm"__license__="new-bsd"# setup logging and allsetup_logging(logging.INFO)_logger=logging.getLogger(__name__)_logger.info("Dummy agent loaded")definitialize(context):_logger.info("Initializing agent...")# There seems no "nice" way to set the emission rate to minutecontext.sim_params._emission_rate='minute'defhandle_data(context,data):_logger.debug("Handling data...")order(symbol('ETH'),10)record(ETH=data.current(symbol('ETH'),'price'))
使用my_algorithm.py运行算法:
zipline run -f ./my_algorithm.py -s 2016-01-01 -e 2016-12-31 -o results.pickle --data-frequency minute -b poloniex
在pandas的帮助下通过阅读results.pickle来分析性能。
注
这个项目是使用PyScaffold 2.5.7建立的。详细信息和用法 有关pyscaffold的信息,请参见http://pyscaffold.readthedocs.org/。