• zipline目录结构


    下面列出了zipline主要的目录和文件结构和它的说明

    ├── ci    -  持续集成相关
    ├── conda - 生成conda 包相关
    ├── docs - 文档
    │   ├── notebooks - notebook代码
    │   └── source  - 教程和what’s new
    ├── etc - 依赖配置和一些 hook shell 脚本
    ├── tests - 测试代码
    ├── zipline - 代码主目录
    │   ├── __init__.py - 集中引入包内容
    │   ├── __main__.py - 主程序入口
    │   ├── _protocol.pyx - current, history, can_trade 之类的一些数据操作接口的实现
    │   ├── _version.py - 版本管理相关的
    │   ├── algorithm.py - 策略算法的主逻辑抽象,算法最后会被实例化为TradingAlgorithm的实例或者继承它, 并且里面进行了主要的api的定义,zipine的 cli会调用它的run方法启动回测
    │   ├── api.py 常用api
    │   ├── api.pyi 常用api说明
    │   ├── assets - 资产类抽象 里面封装了常用的资产如股票Equity,期货Funtrue, 作为Asset的子类,并且封装了其数据库操作(这里是sqlite)
    │   ├── data - 数据相关,所有的数据操作封装为dataportal 
    │   │   ├── __init__.py
    │   │   ├── _adjustments.pyx - 除权除息等信息的读取
    │   │   ├── _equities.pyx - 从bcolz里面获取行情的索引的抽象
    │   │   ├── _minute_bar_internal.pyx - 分钟bar相关的索引
    │   │   ├── bar_reader.py - BarReader接口定义
    │   │   ├── benchmarks.py - 从雅虎获取基准数据
    │   │   ├── bundles - 官方的提供的data bundle 
    │   │   ├── continuous_future_reader.py 
    │   │   ├── data_portal.py DataPortal定义,整合了所有的reader,writer,等,是biplane获取数据的入口,提供reader,writer数据的简单高层封装
    │   │   ├── dispatch_bar_reader.py - 结合trading calendar 读取asset的bar信息
    │   │   ├── history_loader.py  - asset 历史信息的获取, 包括附加复权信息
    │   │   ├── loader.py - loader 封装了基准信息和国债收益率曲线
    │   │   ├── minute_bars.py - 分钟线reader/writer相关的抽象
    │   │   ├── resample.py - 把分钟线数据resample为日线数据
    │   │   ├── session_bars.py -  SessionBarReader
    │   │   ├── treasuries.py - 国债收益率曲线
    │   │   ├── treasuries_can.py - 加拿大国债收益率曲线
    │   │   └── us_equity_pricing.py - 主要是针对Equity的日线读取,adjustment数据读取,
    │   ├── dispatch.py - 分发逻辑
    │   ├── errors.py - 异常的抽象
    │   ├── examples - 一些例子
    │   ├── finance - 主要抽象了交易和财务相关的逻辑,这些接口大多会出现在zipline或者quantopian的代码策略代码里,可以进行import 
    │   │   ├── __init__.py 
    │   │   ├── asset_restrictions.py - 资产交易限制
    │   │   ├── blotter.py - 账号?
    │   │   ├── cancel_policy.py - 取消策略
    │   │   ├── commission.py - 佣金
    │   │   ├── constants.py - 一些常亮定义
    │   │   ├── controls.py - 分控相关
    │   │   ├── execution.py - 订单类型
    │   │   ├── order.py - 订单逻辑
    │   │   ├── performance - 收益
    │   │   ├── risk - 风险相关
    │   │   ├── slippage.py - 滑点
    │   │   ├── trading.py - TradingEnvironment, SimulationParameters的抽象,如果使用自己的loader, TradingCalendar 则需要自己初始化这个对象 
    │   │   └── transaction.py - Transaction - 交易的抽象
    │   ├── gens - 应该是集合了大部分的generator , 主要是回测过程的generator
    │   │   └── tradesimulation.py - 回测主要过程的generator
    │   ├── lib - 一些主要用的的数据结构和算法
    │   ├── pipeline - pipeline相关的逻辑
    │   ├── protocol.py - Order Account, Portfolio, Position等的抽象
    │   ├── resources - etc相关的一些资源
    │   ├── sources - 基准数据源等
    │   ├── test_algorithms.py - 测试策略...
    │   ├── testing - 测试
    │   ├── utils - 一些工具类, 其中 run_algo.py, tradingcalendar.py 相关的需要重点关注下
  • 相关阅读:
    微信公众平台开发(6) 微信退款接口
    shiro 认证和授权原理
    Shiro架构
    微信公众平台开发(5) 微信客服消息接口
    微信公众平台开发(4) 微信模板消息接口
    微信公众平台开发(3) 企业付款
    微信公众平台开发(1) 通用的工具类CommonUtil
    spring 源码构建
    springMvc配置拦截器无效
    IIdea使用CXF开发WebService
  • 原文地址:https://www.cnblogs.com/bitquant/p/8432854.html
Copyright © 2020-2023  润新知