Skip to content

Homalos系统全局配置说明

字数
2522 字
阅读时间
11 分钟

Homalos 系统全局配置文件位于系统根目录下 src\config\ 中,将名为 system.yaml.example 的模板文件名称修改为 system.yaml,即可启用配置。

1. 基础配置

本系统的基础配置,一般情况下保持默认值即可,具体参数说明如下:

yaml
system:
  name: "Homalos"                                  # 系统名称
  describe: "Homalos Quantitative Trading System"  # 系统描述信息
  version: "0.0.1"                                 # 系统版本号
  data_path: "data/"                               # 数据存储路径
  timezone: "Asia/Shanghai"                        # 系统时区
  # 测试模式配置
  test_mode: false                                 # 是否启用测试模式
  test_trading_hours: true                         # 测试模式下是否绕过交易时间检查

2. 事件总线配置

对本系统的事件总线进行精确控制,一般情况下保持默认值即可,具体参数说明如下:

yaml
event_bus:
  name: "event_bus"            # 事件总线名称
  max_async_queue_size: 10000  # 异步队列最大长度
  max_sync_queue_size: 1000    # 同步队列最大长度
  timer_interval: 1.0          # 定时器间隔时间(秒)
  enable_monitoring: true      # 是否启用监控
  enable_priority: true        # 是否启用优先级队列

3. 数据库配置

订单、成交、账户更新等数据存储到数据库的配置,默认支持 sqlite 数据存储,未来可根据情况扩展。

yaml
database:
  type: "sqlite"             # 数据库类型
  path: "data/"              # 数据库文件存储路径
  batch_size: 100            # 批量插入大小
  flush_interval: 5          # 刷新间隔时间(秒)
  connection_pool_size: 10   # 连接池大小
  enable_wal: true           # 启用WAL模式提高并发性能
  timezone: "Asia/Shanghai"  # 数据库时区

4. 行情和交易服务器节点配置

行情和交易服务器节点配置是本系统底层连接的服务器节点,系统的行情源和订单发送就是通过服务器节点最终到达交易所。修改服务器节点中对应的参数 enabled 值为 true,并填入正确的账户信息就可以启用,例如:

yaml
gateway:
  enabled_broker: "simnow"                           # 默认使用的行情和交易服务器节点配置名称
  brokers:                                           # 行情和交易服务器节点配置列表
    simnow:                                          # simnow 服务器节点前置配置(行情和实盘交易一致)
      broker_id: "9999"                              # 经纪商ID
      md_address: "tcp://182.254.243.31:30011"       # 行情服务器地址和端口
      td_address: "tcp://182.254.243.31:30001"       # 交易服务器地址和端口
      app_id: "simnow_client_test"                   # 应用ID
      auth_code: "0000000000000000"                  # 授权码
      user_id: ""                                    # 用户ID
      password: ""                                   # 密码
      product_info: ""                               # 产品信息
      md_timeout: 30                                 # 行情服务器超时时间(秒)
      td_timeout: 30                                 # 交易服务器超时时间(秒)
      reconnect_interval: 5                          # 重连间隔时间(秒)
      max_reconnect_attempts: 10                     # 最大重连次数
      ...
关于服务器节点

模板中的默认配置均为 simnow 或 tts 模拟服务器环境,它们是为了方便程序化交易者,在未接入实盘之前进行测试,simnow 和 tts 环境都提供了完整的模拟行情和交易的流程。当要接入实盘时,需要自行增加配置期货公司提供的实盘服务器节点及账户信息。了解更多服务器节点信息请加入我们的社群。

5. 风控配置

风控配置是对交易风险的控制,可自行修改为合适的参数值,具体参数说明如下:

yaml
risk:
  enabled: true                   # 启用风控
  max_position_size: 1000000      # 最大持仓金额(元)
  max_daily_loss: 50000           # 单日最大亏损(元)
  max_order_size: 100             # 单笔最大手数
  order_frequency_limit: 100      # 每秒最大订单数 (从10增加到100)
  position_concentration: 0.5     # 单品种最大仓位比例 (从0.3放宽到0.5)
  enable_self_trade_check: false  # 启用自成交检查 (测试环境关闭)
  enable_price_check: true        # 启用价格合理性检查
  price_deviation_threshold: 0.1  # 价格偏离阈值 (从5%放宽到10%)

6. 策略管理配置

策略管理的配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
# 策略管理配置
strategy:
  base_path: "src/strategies/"   # 策略代码基础路径
  auto_start: false              # 启动时自动加载策略
  max_concurrent_strategies: 10  # 最大并发策略数
  enable_hot_reload: true        # 启用热重载
  default_params:                # 默认策略参数
    initial_capital: 100000      # 初始资金(元)
    max_drawdown: 0.1            # 最大回撤比例

7. 策略增强管理配置

策略增强管理配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
strategy_management:
  # 依赖检查配置
  dependency_check:
    enabled: true               # 启用依赖检查
    cache_ttl: 300              # 缓存时间(秒)
    timeout: 30                 # 检查超时时间(秒)
    retry_attempts: 3           # 重试次数
    checks:                     # 检查项
      gateway_connection: true  # 网关连接状态
      contract_info: true       # 合约信息状态
      account_balance: true     # 账户余额状态
      market_hours: true        # 交易时间状态
      risk_limits: true         # 风控限制状态
      data_feed: true           # 数据源状态
  
  # 策略验证配置
  strategy_validation:
    enabled: true                 # 启用策略验证
    cache_ttl: 600                # 缓存时间(秒)
    timeout: 60                   # 验证超时时间(秒)
    validations:                  # 验证项
      syntax_check: true          # 语法检查
      required_methods: true      # 必需方法检查
      parameter_validation: true  # 参数验证
      risk_rules: true            # 风控规则验证
      compatibility_check: true   # 兼容性检查
    # 代码复杂度限制
    complexity_limits:
      max_cyclomatic_complexity: 10  # 最大圈复杂度
      max_method_lines: 100          # 最大方法行数
      max_class_methods: 20          # 最大类方法数
  
  # 健康监控配置
  health_monitoring:
    enabled: true             # 启用健康监控
    check_interval: 30        # 健康检查间隔(秒)
    metrics_window: 300       # 指标统计窗口(秒)
    auto_recovery: true       # 启用自动恢复
    max_recovery_attempts: 3  # 最大恢复尝试次数
    
    # 健康阈值
    thresholds:
      max_error_rate: 0.05       # 最大错误率(5%)
      max_latency_ms: 1000       # 最大延迟(毫秒)
      min_success_rate: 0.95     # 最小成功率(95%)
      max_memory_usage_mb: 500   # 最大内存使用(MB)
      max_cpu_usage_percent: 80  # 最大CPU使用率(%)
    
    # 异常检测配置
    anomaly_detection:
      enabled: true     # 启用异常检测
      sensitivity: 0.8  # 敏感度(0-1)
      min_samples: 10   # 最小样本数
  
  # 事件处理配置
  event_handling:
    enabled: true      # 启用事件处理
    persistence: true  # 启用持久化
    database_path: "data/strategy_events.db"  # 数据库路径
    
    # 事件过滤配置
    filters:
      min_priority: "INFO"  # 最小事件优先级
      max_age_hours: 168    # 事件最大保存时间(小时,7天)
    
    # 事件聚合配置
    aggregation:
      enabled: true           # 启用事件聚合
      window_size: 60         # 聚合窗口(秒)
      max_events: 1000        # 最大事件数
    
    # 定时任务配置
    scheduled_tasks:
      flush_interval: 30      # 刷新到数据库间隔(秒)
      cleanup_interval: 3600  # 清理旧事件间隔(秒)

8. 数据服务配置

数据服务配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
data:
  # 行情数据
  market:
    enable_data_center: true  # 是否启用数据中心
    buffer_size: 1000         # 行情数据缓冲区大小
    enable_persistence: true  # 启用行情数据持久化
    tick_storage_days: 30     # 行情数据保存天数
    bar_storage_days: 365     # 历史数据保存天数
    
  # 历史数据
  history:
    provider: "local"         # local, tushare, akshare
    cache_size: 1000          # 历史数据缓存大小

9. Web管理界面配置

Web管理界面配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
web:
  enabled: true        # 启用Web管理界面
  host: "127.0.0.1"    # 监听地址
  port: 8000           # 监听端口
  debug: false         # 启用调试模式
  cors_origins: ["*"]  # 允许跨域的源
  cors_methods: ["GET", "POST", "PUT", "DELETE"]  # 允许的跨域方法
  cors_headers: ["*"]         # 允许的跨域头部
  static_files: "web/static"  # 静态文件目录
  templates: "web/templates"  # 模板文件目录
  
  # WebSocket配置
  websocket:
    heartbeat_interval: 30  # 心跳间隔(秒)
    max_connections: 100    # 最大连接数
    
  # API配置
  api:
    rate_limit: 100         # 每分钟最大请求数
    enable_swagger: true    # 启用Swagger文档
    api_prefix: "/api/v1"   # API前缀

10. 性能监控配置

性能监控配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
monitoring:
  enabled: true         # 启用性能监控
  metrics_interval: 10  # 统计间隔(秒)
  enable_alerts: true   # 启用告警
  
  # 性能阈值
  thresholds:
    order_latency_ms: 100       # 订单延迟阈值(毫秒),调整为100ms适应测试环境
    tick_processing_rate: 1000  # 行情处理速率阈值(每秒),调整为1000适应测试环境
    memory_usage_mb: 32000      # 内存使用阈值(MB),调整为32GB适应开发环境
    cpu_usage_percent: 95       # CPU使用率阈值(%),调整为95%适应开发环境
    
  # 告警配置
  alerts:
    high_latency_threshold: 200  # 高延迟阈值(毫秒),调整为200ms适应测试环境
    memory_threshold: 32000      # 内存使用阈值(MB),调整为32GB适应开发环境
    error_rate_threshold: 0.1    # 错误率阈值(%),调整为10%适应测试环境

11. 交易时段配置

交易时段配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
trading_hours:
  enable_check: true        # 启用交易时段检查
  sessions:
    futures:                # 期货交易时段配置,格式为[["开始时间", "结束时间"], ...]
      - ["09:00", "10:15"]  # 早盘
      - ["10:30", "11:30"]  # 早盘
      - ["13:30", "15:00"]  # 午盘
      - ["21:00", "02:30"]  # 夜盘(某些品种)
      - ["21:00", "23:00"]  # 夜盘(大部分品种)

12. 邮箱配置(可选)

邮箱配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
email:
  enabled: false              # 启用邮件通知
  smtp_server: ""             # SMTP服务器地址
  smtp_port: 465              # SMTP端口号
  username: ""                # 邮件发送者用户名
  password: ""                # 邮件发送者密码
  sender: ""                  # 邮件发送者邮箱地址
  receivers: []               # 邮件接收者邮箱地址列表

  # 邮件触发条件
  triggers:
    system_error: true        # 系统错误
    high_loss: true           # 重大亏损
    strategy_stopped: false   # 策略停止

13. 外部数据源配置(可选)

外部数据源配置,可自行修改为合适的参数值,具体参数说明如下:

yaml
external_data:
  tushare:          # Tushare配置
    enabled: false  # 启用Tushare
    token: ""       # Tushare Token

  akshare:          # AkShare配置
    enabled: false  # 启用AkShare