下面列出了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 相关的需要重点关注下

zipline目录结构的更多相关文章

  1. ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构

    和StaticFileMiddleware中间件一样,DirectoryBrowserMiddleware中间本质上还是定义了一个请求地址与某个物理目录之间的映射关系,而目标目录体现为一个FilePr ...

  2. 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之目录结构

    一个技术汪的开源梦 —— 目录 这篇文章是开源公共组件的开篇那就先说说项目的 Github 目录结构和 .Net Core 的项目结构. 1. GitHub 目录结构和相关文件 - src 源码项目目 ...

  3. python基础-软件目录结构规范

    一.定义目录结构目的 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织规则 ...

  4. Eclipse中一个Maven工程的目录结构

    在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织的这种问题,跟不要说自己 ...

  5. linux -目录结构

    摘自:http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilestruct.html 这个目录结构介绍是我目前看到介绍最全的,有时间在翻译 ...

  6. Go 项目的目录结构 及 安装技巧

    项目目录结构如何组织,一般语言都是没有规定.但 Go 语言这方面做了规定,这样可以保持一致性 1.一般的,一个 Go 项目在 GOPATH 下,会有如下三个目录: |--bin |--pkg |--s ...

  7. Android基础学习第一篇—Project目录结构

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  8. 【JBOSS】 JBOSS目录结构

    JBOSS在默认情况下可以用3种方式启动minimal,default和all.三种模式内部的模块数量依次递增   例如: 1-执行JBOSS_HOME/bin/run.bat批量处理文件启动JBos ...

  9. 每天一个linux命令(23):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

随机推荐

  1. 设置root密码,su与sudo的区别

    sudo passwd root 可以修改root密码,但首先会要求你输入当前用户的密码 sudo的意思是switch user do,默认切换到root,要求当前用户的密码,会自动调用exit返回到 ...

  2. matlab_legend_使用

    matlab legend 使用 用Matlab画图时,有时候需要对各种图标进行标注,例如,用“+”代表A的运动情况,“*”代表B的 运动情况.legend函数的基本用法是LEGEND(string1 ...

  3. Project Euler:Problem 34 Digit factorials

    145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145. Find the sum of all numbers which are ...

  4. vmware无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件

    原因: 是虚拟机服务没有开启 解决方法:(以管理员的方式运行) 点击“开始→运行”,在运行框中输入 CMD  回车打开命令提示符,然后依次执行以下命令. net start vmcinet start ...

  5. VS2013 连接 MySQL

    1.安装必须的工具: mysql-connector-net-6.8.3 mysql-installer-community-5.6.16.0.msi mysql-for-visualstudio-1 ...

  6. 【BZOJ】3172: [Tjoi2013]单词(后缀自动机)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3172 随便搞个sam就行了.(其实一开始看到数据n<=200, 单词长度不超过1e6,然后感觉 ...

  7. ES 中的 POST 和 PUT 的区别

    0.什么是Restful架构 比较难说清楚,这部分大雾状态,引ruanyf 理解RESTful架构 的几句总结吧: Fielding将他对互联网软件的架构原则,定名为REST,即Representat ...

  8. Yii2中Html的使用

    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu4&quo ...

  9. Oracle dbms_random随机数包详解

    Oracle dbms_random包主要用于获得随机数,可以为数字也可以为字母等,还可以实现混拼.常用函数如下: dbms_random.value 生成一个指定范围的38位随机小数(小数点后38位 ...

  10. matplotlib库解析

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...