# dynamic portfolio optimizer **Repository Path**: simon1239/dynamic-portfolio-optimizer ## Basic Information - **Project Name**: dynamic portfolio optimizer - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-15 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 🎯 系统特色总结与使用指南 ✨ 系统特色 🔄 动态适应性:通过K-S检验和贝叶斯变化点检测实时监控市场变化,自动调整优化策略 🎯 多目标优化:同时优化收益、风险、ESG评分和交易成本四个维度 🤖 智能学习:集成SAC强化学习算法,能够从历史数据中学习最优策略 📊 可视化支持:提供丰富的可视化图表,包括3D Pareto前沿、平行坐标图等 ⚡ 高性能架构:基于FastAPI的异步API,支持并发处理和后台任务 🛡️ 风险管控:内置多种风险指标计算和约束条件检查 💻 核心技术栈 组件 技术选型 说明 🧠 核心算法 NSGA-II + SAC 进化算法 + 强化学习 🔧 机器学习 PyTorch 深度学习框架 🌐 Web框架 FastAPI 高性能异步API 📊 数据处理 Pandas + NumPy 数据分析工具 📈 可视化 Plotly 交互式图表 🐳 容器化 Docker 应用容器化 ✅ 测试框架 pytest 单元测试 🚀 快速开始 1. 环境准备 BASH # 克隆项目 git clone https://github.com/your-username/dynamic-portfolio-optimizer.git cd dynamic-portfolio-optimizer # 创建虚拟环境 python -m venv venv source venv/bin/activate # Linux/Mac # 或者 venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt 2. 配置环境变量 BASH # 创建 .env 文件 cat > .env << EOF API_HOST=0.0.0.0 API_PORT=8000 DEBUG=True LOG_LEVEL=INFO REDIS_HOST=localhost REDIS_PORT=6379 EOF 3. 启动服务 BASH # 开发模式启动 python main.py --reload # 生产模式启动 python main.py # Docker模式启动 docker-compose up -d 🎮 使用指南 📊 市场变化检测 PYTHON import requests # 检测市场变化 response = requests.post("http://localhost:8000/changes/detect", json={ "returns_matrix": [[0.01, 0.02], [0.015, 0.018], [0.02, 0.025]], "test_method": "ks" }) result = response.json() print(f"市场是否发生变化: {result['is_change']}") 💼 投资组合优化 PYTHON # 运行多目标优化 response = requests.post("http://localhost:8000/optimize/run", json={ "assets": ["AAPL", "MSFT", "GOOGL", "TSLA", "NVDA"], "objectives": { "return_weight": 0.4, "risk_weight": 0.3, "esg_weight": 0.2, "cost_weight": 0.1 }, "constraints": { "max_single_weight": 0.3, "min_cash_ratio": 0.1 }, "algorithm": "nsga2", "start_date": "2023-01-01", "end_date": "2023-12-31" }) optimization_result = response.json() pareto_solutions = optimization_result['pareto_set'] 🤖 SAC强化学习训练 PYTHON # 启动SAC训练 response = requests.post("http://localhost:8000/train/sac", json={ "assets": ["AAPL", "MSFT", "GOOGL"], "start_date": "2023-01-01", "end_date": "2023-12-31", "episodes": 1000 }) print(f"训练状态: {response.json()['status']}") 📈 结果可视化 PYTHON # 生成可视化图表 response = requests.post("http://localhost:8000/visualize/pareto", json={ "pareto_set": pareto_solutions, "user_preferences": { "return_preference": 0.5, "risk_preference": 0.3, "esg_preference": 0.2 } }) visualization_data = response.json()['visualization_data'] 📋 API接口文档 核心接口列表 接口路径 方法 功能描述 / GET 系统信息 /health GET 健康检查 /changes/detect POST 市场变化检测 /optimize/run POST 运行投资组合优化 /train/sac POST 启动SAC训练 /visualize/pareto POST Pareto前沿可视化 /alerts/slack POST 发送Slack告警 详细API文档 启动服务后访问:http://localhost:8000/docs 🧪 测试与验证 运行单元测试 BASH # 运行所有测试 python -m pytest tests/ -v # 运行特定测试模块 python -m pytest tests/test_algorithms.py -v # 生成测试覆盖率报告 python -m pytest tests/ --cov=src --cov-report=html # 📊 多数据源金融市场数据获取系统 一个强大的Python金融数据聚合系统,整合了多个主要的金融数据API,提供统一的接口获取股票、期权、基本面和新闻数据。 ## ✨ 特性 - 🔄 **多数据源支持**: 集成11个主要金融数据API - 🚀 **并行获取**: 多线程并行获取数据,提高效率 - 💾 **智能缓存**: Redis缓存机制,减少API调用 - 🛡️ **数据验证**: 自动数据质量检查和格式化 - 📈 **技术分析**: 内置常用技术指标计算 - ⚡ **实时监控**: 实时股价监控和警报系统 - 🔧 **灵活配置**: 可配置数据源优先级和参数 ## 📦 安装 ### 方法1: 使用pip安装 ```bash pip install financial-data-aggregator # 克隆项目 git clone https://gitee.com/simon1239/dynamic-portfolio-optimizer cd financial-data-aggregator # 安装依赖 pip install -r requirements.txt # 安装项目 pip install -e . # API密钥配置 1.复制环境变量模板: cp .env.example .env 2.编辑 .env 文件,添加您的API密钥: ALPHA_VANTAGE_API_KEY=your_key_here POLYGON_API_KEY=your_key_here FINNHUB_API_KEY=your_key_here # ... 其他API密钥 --- ## 🎉 总结 这个多数据源金融市场数据获取系统提供了: ### 🚀 **核心功能** 1. **多数据源整合** - 11个主要金融API统一接口 2. **并行数据获取** - 多线程提高效率 3. **智能缓存系统** - Redis缓存减少API调用 4. **数据质量保证** - 自动验证和格式化 5. **实时监控** - 股价变化实时跟踪 ### 📊 **数据类型支持** - 📈 股票历史数据 (多时间周期) - ⚡ 实时报价数据 - 🎯 期权链数据 - 🏢 公司基本面数据 - 📰 市场新闻资讯 ### 🛠️ **技术特色** - 🔧 模块化架构,易于扩展 - 🔄 自动故障转移 - 📏 数据格式标准化 - 🎯 灵活的数据源优先级配置 - 📊 内置技术分析工具 这个系统可以满足从个人投资者到机构用户的各种金融数据需求,是一个功能完整、易于使用的金融数据解决方案! 🎯✨ 有什么特定功能需要进一步完善的吗?比如添加更多技术指标、风险管理模块,或者特定的数据分析功能? 🤔💭