littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Python的量化投资二次开发框架

项目简介

dHydra是一个专注于量化投资的二次开发框架,主要用于多进程多数据源的实时计算。该框架以Redis作为消息队列分发,每个Worker可独立开启,同时集成了Tornado Web server,为每个Worker分配动态的url映射,方便开发者定制可视化数据界面。它提供多种数据获取的Vendor类,能获取雪球、新浪Level - 2等数据,还支持CTP期货行情与下单以及调用easytrader进行股票下单,旨在打造一个面向开发者的二次开发框架,而非生产数据。

项目的主要特性和功能

  1. 支持多进程运行,多个Worker进程可并行工作,且每个Worker能独立启动和关闭,满足多数据源和计算任务需求。
  2. 借助Redis作为消息队列,保障数据分发和处理的实时性与可靠性。
  3. 集成Tornado Web server,为每个Worker分配动态url映射,便于开发者构建自定义数据可视化界面。
  4. 开发者可根据需求定制数据展示界面,通过Tornado的Web接口实现数据实时显示与交互。
  5. 提供丰富的数据获取功能,涵盖雪球、新浪财经、CTP期货行情等多种数据源,并可配置数据持久化存储,如使用MongoDB。
  6. 框架设计模块化,易于扩展新的数据源和计算模块,方便开发者进行二次开发。

安装使用步骤

环境准备

确保已安装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】