项目简介
dHydra是一个专注于量化投资的二次开发框架,主要用于多进程多数据源的实时计算。该框架以Redis作为消息队列分发,每个Worker可独立开启,同时集成了Tornado Web server,为每个Worker分配动态的url映射,方便开发者定制可视化数据界面。它提供多种数据获取的Vendor类,能获取雪球、新浪Level - 2等数据,还支持CTP期货行情与下单以及调用easytrader进行股票下单,旨在打造一个面向开发者的二次开发框架,而非生产数据。
项目的主要特性和功能
- 支持多进程运行,多个Worker进程可并行工作,且每个Worker能独立启动和关闭,满足多数据源和计算任务需求。
- 借助Redis作为消息队列,保障数据分发和处理的实时性与可靠性。
- 集成Tornado Web server,为每个Worker分配动态url映射,便于开发者构建自定义数据可视化界面。
- 开发者可根据需求定制数据展示界面,通过Tornado的Web接口实现数据实时显示与交互。
- 提供丰富的数据获取功能,涵盖雪球、新浪财经、CTP期货行情等多种数据源,并可配置数据持久化存储,如使用MongoDB。
- 框架设计模块化,易于扩展新的数据源和计算模块,方便开发者进行二次开发。
安装使用步骤
环境准备
确保已安装Python 3.4以上版本、MongoDB 3.2和Redis。
代码获取
bash
cd dHydra
pip install --editable.
启动项目
在Redis与Mongodb服务都已启动的情况下,在命令行输入:
bash
hail dHydra
启动Worker进程
使用命令行启动Worker,例如开启一个叫DemoName的Demo进程:
bash
start Demo DemoName
若要关闭进程,可使用如下命令:
bash
stop DemoName
二次开发
根据需求自定义Worker类,实现数据处理、数据展示等功能。示例代码如下: ```python from dHydra.core.Worker import Worker
class Demo(Worker): def init(self, kwargs): super().init(kwargs) self.subscribe( nickname = self.nickname )
def __data_handler__(self, msg):
print(msg)
def __producer__(self):
import time
i = 0
while True:
self.publish( i )
i += 1
time.sleep(1)
def __before_termination__(self, sig):
print("Ahhhh! I'm going to be killed. My pid:{}, signal received:{}".format(self.pid, sig ) )
```
数据可视化
利用Tornado Web server为Worker提供自定义的Web界面,实现数据实时展示。
数据获取和存储
使用提供的Vendor类获取所需数据源,并配置数据持久化存储。
调试和测试
根据开发需求进行代码调试和测试,确保数据的准确性和实时性。
由于dHydra框架仍在不断完善中,实际使用前建议查看项目的最新文档和示例代码,以获取最准确的信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】