# AssetManager Backend (个人资产策略管理系统) 基于 **.NET 8** + **MySQL** + **SqlSugar** 构建的高性能资产管理系统后端。采用 **Database First (数据库优先)** 模式开发,专注于量化策略管理与资产分析。 ## 🛠 技术栈 (Tech Stack) | 模块 | 技术选型 | 说明 | | :--- | :--- | :--- | | **核心框架** | .NET 8 Web API | 最新长期支持版,高性能 | | **数据库** | MySQL 8.0+ | 稳定、开源的关系型数据库 | | **ORM** | **SqlSugar** |哪怕是 .NET 老手也爱用的国产轻量级 ORM | | **架构模式** | Repository Pattern | 仓储模式,解耦业务与数据访问 | | **接口文档** | Swagger / Knife4j | 在线接口调试 | ## 📂 项目结构 (Project Structure) ```text AssetManager ├── src │ ├── AssetManager.API # [入口层] Controllers, DTOs, 全局Filter, IOC配置 │ ├── AssetManager.Services # [业务层] 核心逻辑 (计算盈亏, 策略信号, 校验) │ ├── AssetManager.Repository # [数据层] SqlSugar 仓储实现, UnitOfWork │ ├── AssetManager.Models # [实体层] POCO实体 (由数据库自动生成) │ └── AssetManager.Infrastructure # [基础层] 常用工具类, 外部API调用 └── AssetManager.sln ``` ## 📊 策略引擎 (Strategy Engine) ### 功能介绍 策略引擎是系统的核心组件,负责根据配置的策略参数计算交易信号。支持以下三种策略类型: 1. **双均线策略 (ma_trend)** - 经典的趋势跟踪策略,通过短期均线和长期均线的交叉产生买卖信号 2. **吊灯止损策略 (chandelier_exit)** - 趋势跟踪止损策略,通过计算最高价/最低价和 ATR(平均真实波幅)来设置止损止盈位 3. **风险平价策略 (risk_parity)** - 资产配置策略,通过调整各资产权重使每个资产对组合的风险贡献相等 ### 策略配置示例 #### 1. 双均线策略 (ma_trend) ```json { "maType": "SMA", // 均线类型:SMA(简单移动平均) / EMA(指数移动平均) "shortPeriod": 20, // 短期均线周期 "longPeriod": 60 // 长期均线周期 } ``` #### 2. 吊灯止损策略 (chandelier_exit) ```json { "period": 22, // 周期(通常为 22) "multiplier": 3.0, // ATR 倍数(通常为 3.0) "useClose": false // 是否使用收盘价计算(false 表示用最高价/最低价) } ``` #### 3. 风险平价策略 (risk_parity) ```json { "lookbackPeriod": 60, // 历史数据回看周期 "rebalanceThreshold": 0.05, // 再平衡阈值(偏离度超过 5% 触发再平衡) "assets": [ // 目标资产列表(可选,不指定则使用当前持仓) { "symbol": "AAPL", "targetWeight": 0.6 }, { "symbol": "BTC/USD", "targetWeight": 0.4 } ] } ``` ## 📡 API 示例 ### 创建策略 API **请求 URL**: `POST /api/v1/strategies` **请求体示例**: #### 1. 创建双均线策略 ```json { "name": "双均线策略", "type": "ma_trend", "description": "经典趋势跟踪策略", "riskLevel": "medium", "tags": ["趋势", "均线"], "parameters": { "maType": "SMA", "shortPeriod": 20, "longPeriod": 60 } } ``` #### 2. 创建风险平价策略 ```json { "name": "风险平价策略", "type": "risk_parity", "description": "资产配置策略", "riskLevel": "low", "tags": ["资产配置", "风险控制"], "parameters": { "lookbackPeriod": 60, "rebalanceThreshold": 0.05, "assets": [ { "symbol": "AAPL", "targetWeight": 0.6 }, { "symbol": "BTC/USD", "targetWeight": 0.4 } ] } } ``` #### 3. 创建吊灯止损策略 ```json { "name": "吊灯止损策略", "type": "chandelier_exit", "description": "趋势跟踪止损策略", "riskLevel": "high", "tags": ["止损", "趋势"], "parameters": { "period": 22, "multiplier": 3.0, "useClose": false } } ``` **响应示例**: ```json { "Id": "12345678-1234-1234-1234-1234567890ab", "Title": "双均线策略", "Status": "created" } ```