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