## 目录结构 ``` . ├── 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安装)三个外部依赖库需要在运行程序。 - 成功读取后,每个标的会读出并解析成一个结构体数组的数据结构,可以对于该数据进行进一步操作。