Skip to content

FQBase 框架文档

FQBase 是 FQuant 系统的基础框架,提供金融量化系统所需的核心基础设施组件。

文档索引

综合文档

类型文档链接
快速开始快速开始quick-start
架构系统架构architecture
设计设计原则design
开发开发指南development
最佳实践最佳实践best-practices
API 规范API 规范api-spec
应用示例应用示例application-examples
系统集成系统集成system-integration

核心模块

FQBase 采用分层架构,核心模块包括:

模块说明文档
Foundation底层基础组件(熔断器、重试、生命周期等)API
Core核心服务(事件总线、日志、通知)API
Config配置管理(环境变量、缓存配置等)API
Cache缓存层(LocalCache、Redis、MongoDB)API
DataStore数据存储(MongoDB 操作)API
Date日期工具(交易日判断等)API
Crawler爬虫功能(BrowserPool)API
Util工具函数(并行处理、数据转换等)API

架构分层

┌─────────────────────────────────────────────┐
│                 Util                        │  <- 工具层
├─────────────────────────────────────────────┤
│  Foundation  |  Core  |  Cache  |  Config │  <- 基础设施层
├─────────────────────────────────────────────┤
│         DataStore  |  Date  |  Crawler     │  <- 数据层
├─────────────────────────────────────────────┤
│               FQuant Server                 │  <- 应用层
└─────────────────────────────────────────────┘

层次说明:

  • 工具层 (Util) - 提供通用工具函数,不依赖其他 FQBase 模块
  • 基础设施层 - Foundation 提供底层模式,Core 提供核心服务,Cache 提供缓存,Config 提供配置
  • 数据层 - DataStore 数据持久化,Date 日期处理,Crawler 网页爬取

设计原则

  1. 依赖倒置 - 核心接口与实现分离
  2. 单一职责 - 每个模块专注于一件事
  3. 开闭原则 - 对扩展开放,对修改关闭
  4. 接口隔离 - 使用协议定义接口

快速开始

安装

bash
pip install FQBase

缓存使用

python
from FQBase.Cache import LocalCache

cache = LocalCache(name='my_cache', ttl=3600)
cache.set('key', 'value')
value = cache.get('key')

事件总线

python
from FQBase.Core import Event, get_event_bus

bus = get_event_bus()

@bus.subscribe('order.created')
def on_order_created(event):
    print(f"Order created: {event.data}")

bus.publish(Event('order.created', data={'order_id': 1}))

熔断器

python
from FQBase.Foundation import circuit_breaker

@circuit_breaker(failure_threshold=5, recovery_timeout=60)
def call_remote_service():
    # 可能失败的服务调用
    return remote_call()

配置管理

python
from FQBase.Config.core import get_env, get_cache_config

# 获取环境变量
debug = get_env('DEBUG', 'false')

# 获取缓存配置
cache_config = get_cache_config()

API 索引

Cache 模块

Core 模块

Foundation 模块

Config 模块

DataStore 模块

Util 模块

Date 模块

Crawler 模块

系统集成

FQBase 与 FQData、FQFactor 等项目集成:

  • FQData - FQData 使用 FQBase 的缓存和配置管理
  • FQFactor - FQFactor 使用 FQBase 的容器和熔断器

文档导航

FQBase/
├── README.md                  # 本文档(索引)
├── quick-start.md           # 快速开始
├── architecture.md          # 架构说明
├── design.md               # 设计原则
├── development.md          # 开发指南
├── best-practices.md      # 最佳实践
├── api-spec.md           # API 规范
├── application-examples.md # 应用示例
├── system-integration.md  # 系统集成
├── foundation/            # Foundation 模块文档
├── core/                 # Core 模块文档
├── config/               # Config 模块文档
├── cache/                # Cache 模块文档
├── datastore/             # DataStore 模块文档
├── date/                 # Date 模块文档
├── crawler/              # Crawler 模块文档
└── util/                 # Util 模块文档