Commit Graph

41 Commits

Author SHA1 Message Date
OpenClaw Agent
da12f6d163 fix: 修复编译错误和警告
- PortfolioFacade: 使用同步方法 GetStrategyById
- OkxMarketService: 响应模型属性改为可空类型
2026-03-15 13:18:24 +00:00
OpenClaw Agent
4ce29a1036 refactor: 架构优化 P0-P3
P0 - 安全修复:
- 移除硬编码 API Key,启动时校验必填环境变量

P1 - 高优先级:
- Entity 拆分:Position.cs, Transaction.cs 独立文件
- Controller Facade 封装:IPortfolioFacade 减少依赖注入

P2 - 中优先级:
- Repository 抽象:IPortfolioRepository, IMarketDataRepository
- MarketDataService 拆分:组合模式整合 Tencent/Tiingo/OKX

P3 - 低优先级:
- DTO 命名规范:统一 PascalCase
- 单元测试框架:xUnit + Moq + FluentAssertions
2026-03-15 12:54:05 +00:00
OpenClaw Agent
abcdc7110b refactor: 后端架构优化 P0-P1
P0: 移除硬编码 API Key
- MarketDataService Tiingo Key 改为强制环境变量

P1: 拆分 Entity 文件
- 从 Portfolio.cs 提取 Position.cs
- 从 Portfolio.cs 提取 Transaction.cs
- 每个实体独立文件,符合单一职责原则
2026-03-15 11:44:06 +00:00
OpenClaw Agent
267b0bd6ba feat: 添加腾讯财经历史K线数据接口
- 新增 GetStockHistoricalFromTencentAsync 方法
- 腾讯财经历史数据免费无限制,解决 Tiingo 429 限流问题
- 获取历史数据时优先使用腾讯财经,失败后降级 Tiingo
- 支持日/周/月K线数据
- 数据格式: [日期, 开盘, 收盘, 最高, 最低, 成交量]
2026-03-15 10:06:14 +00:00
OpenClaw Agent
da86aa43e6 fix: 行情获取失败时不写入错误数据,添加 429 限流重试机制
1. GetHistoricalPriceAsync 返回 decimal? 而非 decimal
   - 价格获取失败时返回 null 而非 0
2. BackfillNavHistoryInternalAsync 检查价格有效性
   - 任何持仓价格获取失败时跳过该日期
   - 不写入 totalValue=0 的错误数据
3. MarketDataService 添加 GetWithRetryAsync 方法
   - 处理 429 Too Many Requests 限流
   - 最多重试 3 次,指数退避
2026-03-15 10:02:52 +00:00
OpenClaw Agent
1977dd609d fix: 请求收益曲线时自动回填历史数据
- GetNavHistoryAsync现在会自动检查是否有历史数据
- 无历史数据时自动调用BackfillNavHistoryInternalAsync
- 拆分内部回填方法,避免重复验证权限
2026-03-13 16:21:31 +00:00
niannian zheng
f5d693ac66 fix 2026-03-12 14:45:04 +08:00
447eb9ef4f 移除无用的价格Clamp检测,仅保留8位小数截断 2026-03-12 06:26:57 +00:00
a62d892b4b 添加价格范围限制,确保不超过decimal(20,8)最大范围 2026-03-12 06:11:55 +00:00
f9d24203c6 修复行情缓存字段溢出问题:价格保留8位小数,字段长度扩展为20位 2026-03-12 06:08:57 +00:00
4ce5e1b7f9 修复腾讯财经接口GBK编码报错问题:注册编码提供程序,手动解析GBK响应 2026-03-12 05:53:42 +00:00
57e9c69a87 回滚到腾讯财经行情接口 2026-03-12 05:18:46 +00:00
534ba7c343 替换股票行情接口为东方财富:返回实际交易价格,与券商显示一致,无复权偏差 2026-03-12 05:11:50 +00:00
049050d88e 简化行情缓存策略:股票固定缓存5分钟,不再区分交易时段 2026-03-12 04:43:36 +00:00
f7626b1113 添加腾讯财经接口价格日志,方便排查当日盈亏为0问题 2026-03-12 04:38:39 +00:00
ff102f70da 修复腾讯财经接口代码大小写问题:改为大写 2026-03-12 04:33:08 +00:00
ece055fc10 替换股票行情接口为腾讯财经:免费无限制,支持盘前盘后实时价格,自动降级Tiingo 2026-03-12 04:24:56 +00:00
7685782bb4 优化行情缓存策略:美股交易时段缓存15分钟,非交易时段缓存24小时,节省API配额 2026-03-12 03:33:03 +00:00
949fa8e85b 实现行情缓存系统:实时价格+历史K线双层缓存,减少API调用提升响应速度 2026-03-10 13:21:54 +00:00
1b8c98b7d6 fix: 更换汇率API为开放免费接口,解决403错误 2026-03-10 07:32:47 +00:00
658cfe90e1 fix: 移除所有IConfiguration依赖,完全从环境变量读取配置,解决编译错误 2026-03-09 09:39:02 +00:00
f2d4351145 refactor: 所有配置优先从环境变量读取,完全支持Docker环境变量注入 2026-03-09 08:56:26 +00:00
739a37f24d refactor: 所有配置改为从appsettings.json/环境变量读取,移除硬编码 2026-03-09 08:49:31 +00:00
niannian zheng
4ac8a5f063 feat(市场数据服务): 添加获取价格和历史数据的模拟方法
新增 GetPriceAsync 和 GetHistoricalDataAsync 方法到 MockMarketDataService 类中,用于模拟市场数据服务。同时添加 Microsoft.Extensions.Caching.Abstractions 包依赖以支持后续缓存功能。
2026-03-09 15:11:05 +08:00
虾球
53b4f4501e feat: 完成三个优先级任务:1. 汇率服务替换为真实数据源(带缓存和降级);2. MarketDataService增加统一入口自动路由多数据源;3. 简化PortfolioService调用逻辑 2026-03-09 06:50:22 +00:00
虾球
20ab0c5173 feat: 接入 OKX 加密货币数据源(实时价格+历史K线) 2026-03-07 03:08:46 +00:00
niannian zheng
95a29cf86a 删除股票字典表时间字段 2026-03-06 17:33:39 +08:00
虾球
5f0c0e9636 feat: 加密货币接口留空,待接入 OKX API 2026-03-06 08:50:07 +00:00
虾球
0cee3afe2f fix: 移除 GetTiingoResampleFreq 残留调用 2026-03-06 08:47:03 +00:00
虾球
647fde9219 fix: 历史数据接口和示例保持一致(移除 resampleFreq) 2026-03-06 08:36:09 +00:00
虾球
d9a8ea84c7 fix: 更新 Tiingo API Key & 统一使用 /tiingo/daily 端点 2026-03-06 08:33:55 +00:00
虾球
14b51e636a feat: 替换市场数据源为 Tiingo(移除 Alpaca) 2026-03-06 08:31:55 +00:00
niannian zheng
b5499ef7fe refactor: 将模型属性改为可为空类型以增强健壮性
- 修改ApiResponse、RiskParityConfig等DTO类的属性为可空类型
- 在策略计算器中添加空值检查逻辑
- 更新服务层代码处理可能的空值情况
- 添加发布配置文件FolderProfile.pubxml
2026-03-06 15:51:59 +08:00
虾球
567504119c feat: 完成 P1 任务 - 今日盈亏、风险平价补全、Mock 数据 PreviousClose 2026-03-06 06:00:38 +00:00
fanfpy
4816980d62 feat: 完成 P0-1 实时价格/盈亏计算和 P0-2 汇率服务接口预留 2026-03-05 11:28:49 +00:00
fanfpy
f442f0cd1b feat(策略引擎): 实现技术指标库、Mock市场数据、吊灯止损/双均线策略、策略信号API 2026-03-05 09:46:33 +00:00
niannian zheng
2d1fbd37d8 feat: 添加策略引擎实现及相关组件
实现策略引擎核心功能,包括三种策略计算器和相关DTO定义:
1. 添加双均线策略(ma_trend)计算器
2. 添加吊灯止损策略(chandelier_exit)计算器
3. 添加风险平价策略(risk_parity)计算器
4. 定义策略类型常量类和策略配置DTO
5. 实现策略引擎服务接口和扩展方法
6. 更新项目引用和README文档
2026-03-02 14:15:34 +08:00
niannian zheng
8e75b894ad feat(市场数据): 添加Alpaca市场数据服务实现
添加IMarketDataService接口及实现,支持获取股票和加密货币的实时价格及历史数据
添加MarketDTO定义市场价格和历史数据结构
添加Alpaca.Markets和Microsoft.Extensions.Logging.Abstractions依赖包
在Program.cs中注册MarketDataService服务
2026-02-28 18:49:05 +08:00
niannian zheng
2fe0b0c134 Remove bin and obj directories from Git tracking 2026-02-24 19:25:28 +08:00
niannian zheng
a1cec21ea1 chore: 更新项目构建缓存文件和.gitignore配置
更新各项目的构建缓存文件,包括assets.cache和AssemblyInfo相关文件
添加.gitignore文件以忽略常见的构建输出和开发环境文件
2026-02-24 17:10:48 +08:00
cd5c3aedbe feat: 初始化项目结构并添加基础功能
- 创建解决方案及各项目层
- 添加API基础控制器和DTO定义
- 实现JWT认证服务和微信登录服务
- 添加Swagger文档支持
- 配置项目依赖和构建文件
2026-02-18 20:36:09 +08:00