|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 目录结构
|
|
|
|
|
```
|
|
|
|
|
.
|
|
|
|
|
├── assets
|
|
|
|
|
│ └── ddb_dump_journal.csv
|
|
|
|
|
├── dolphindb
|
|
|
|
|
│ └── project
|
|
|
|
|
│ ├── modules
|
|
|
|
|
│ └── scripts
|
|
|
|
|
├── ipynb
|
|
|
|
|
│ ├── ddb.ipynb
|
|
|
|
|
│ ├── ddb_pe.ipynb
|
|
|
|
|
│ ├── ddb_pit.ipynb
|
|
|
|
|
│ ├── dos.ipynb
|
|
|
|
|
│ └── mssql.ipynb
|
|
|
|
|
├── README.md
|
|
|
|
|
└── src
|
|
|
|
|
├── DDBBase.py
|
|
|
|
|
├── expr
|
|
|
|
|
│ └── DDBExpression.py
|
|
|
|
|
├── factor
|
|
|
|
|
│ └── DDBFactor.py
|
|
|
|
|
├── __init__.py
|
|
|
|
|
├── loader
|
|
|
|
|
│ ├── DDBBasicInfoLoader.py
|
|
|
|
|
│ ├── DDBDailyLoader.py
|
|
|
|
|
│ ├── DDBHFTLoader.py
|
|
|
|
|
│ ├── DDBLoader.py
|
|
|
|
|
│ ├── DDBPITLoader.py
|
|
|
|
|
│ ├── make_hft.py
|
|
|
|
|
│ └── ProtoBuffEntitys
|
|
|
|
|
├── ReadTickFromDB.py
|
|
|
|
|
├── run.py
|
|
|
|
|
└── script.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 目录说明
|
|
|
|
|
|
|
|
|
|
- `assets`
|
|
|
|
|
- 程序运行过程中产生、或者依赖的配置数据
|
|
|
|
|
- `ddb_dump_jounral.csv`记录海通高频数据写入DolphinDB的日志(类似log)
|
|
|
|
|
- `dolphindb`
|
|
|
|
|
- DolphinDB的客户端Workspace,主要用来放置dos文件
|
|
|
|
|
- 目录结构是DolphinDB的官方Java客户端设定的,因此略显臃肿
|
|
|
|
|
- `ipynb`
|
|
|
|
|
- jupyter notebook的存放目录
|
|
|
|
|
- 包含开发DolphinDB相关功能的草稿和SQL-Server相关功能的草稿
|
|
|
|
|
- `src`
|
|
|
|
|
- Python源代码目录,是工作的主要目录
|
|
|
|
|
- 大部分源码文件以`DDB`开头,表示与DolphinDB相关,继承和代码复用关系可以进一步优化
|
|
|
|
|
- `DDBBase.py`:
|
|
|
|
|
- `DDB*`的基类,包含了一些常用常量
|
|
|
|
|
- `run.py`:
|
|
|
|
|
- 用于执行具体操作任务的入口脚本
|
|
|
|
|
- TODO:需要支持命令行参数来选择执行功能和配套参数
|
|
|
|
|
- `loader`目录:代码专门用于向DolphinDB写入数据(似乎称为Dumper更合适),目前包括:
|
|
|
|
|
- `DDBLoader.py`:其他Loader类的基础类
|
|
|
|
|
- `DDBHFTLoader.py`:用以导入高频数据(海通高频数据)
|
|
|
|
|
- `DDBDailyLoader.py`:用以导入日频数据(市场日K线数据)
|
|
|
|
|
- `DDBPITLoader.py`:用以导入低频PIT数据,主要是财报数据
|
|
|
|
|
- `loader/ProtoBuffEntitys`目录:
|
|
|
|
|
- 用以解析海通高频数据中,protobuf字节流的Python辅助代码
|
|
|
|
|
- `factor`目录:用于生成因子
|
|
|
|
|
- `DDBFactor.py`:目前只有生成日频因子
|
|
|
|
|
- `expr`目录:用于支持基于DDB的各种表达式操作
|
|
|
|
|
- `DDBExpression.py`:提供了基本的操作表达式,目前包括:
|
|
|
|
|
- 通过Function View,读取DolphinDB的分布式存储表:
|
|
|
|
|
- 在任意时间点上,获取所有公司某张财报、指定财报期的最新可见快照
|
|
|
|
|
- 在任意时间点上,获取所有公司某张财报中某科目、指定财报期的最新可见快照
|
|
|
|
|
- 通过一般Function,对内存表进行操作:
|
|
|
|
|
- 流量表累计数值转单季值
|
|
|
|
|
- 跨年同比指标计算(分母为去年基数取绝对值,函数会同时返回当年值和去年基数,以便进一步调整)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 海通高频数据录入说明
|
|
|
|
|
|
|
|
|
|
- Python语言从数据库中读取字节流程序并解码还原示例程序在ReadTickFromDB.py中。
|
|
|
|
|
- 该函数需要pymssql、gzip、google.protobuf(可用pip install protobuf安装)三个外部依赖库需要在运行程序。
|
|
|
|
|
- 成功读取后,每个标的会读出并解析成一个结构体数组的数据结构,可以对于该数据进行进一步操作。
|
|
|
|
|
|