 WrBugandCursor
|
9fef4bea59
|
feat: 健康检查加币安 API/WS,订单簿 bids 空防护,自动价差历史取 20 根
- ApiHealthCheckService: 新增币安 API(ping)、币安 WebSocket(5m/15m 连接状态)
- BinanceKlineService: 连接状态追踪 getConnectionStatuses 供健康检查
- CryptoTailOrderbookWsService: book 事件 bids 为空时不再取 [0],避免 Index 0 out of bounds
- BinanceKlineAutoSpreadService + 文档 + i18n: 历史 K 线由 30 根改为 20 根
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 15:27:22 +08:00 |
|
 WrBugandCursor
|
b50e43c239
|
feat(crypto-tail): 策略最小价差(无/固定/自动) + 前端默认与文案
- 后端: 最小价差 DB/Entity/DTO、Binance K线 REST+WS、自动价差 IQR 预计算与执行时校验
- 前端: 最小价差(自动-固定-无),默认自动,label 旁 info 说明,选择自动不展示建议约
- i18n: minSpreadModeTip 说明不写死标的
- 文档: crypto-tail-strategy-min-spread-flow.md
- scripts: Binance K线拉取与 WS 示例
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 15:16:44 +08:00 |
|
 WrBugandCursor
|
f200ba7f7c
|
feat(crypto-tail): 触发记录与结算优化、前端收益与价格展示
后端:
- 结算轮询仅处理下单成功订单(status=success 且 orderId 非空)
- 实体通过 copy() 更新,不再直接改字段;结算时用订单 fill 回写 triggerPrice、amountUsdc
- Trigger 实体结算相关字段改为 val,统一 copy+save 更新
前端:
- 触发记录: 去掉市场列,保留触发价格(轮询后为实际成交价);每条收益列、涨跌色
- 策略列表: 总收益与胜率、涨跌色;价格区间格式 0.5 ~ 1
- 类型与 i18n: totalRealizedPnl/winRate/realizedPnl 等
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 05:44:19 +08:00 |
|
 WrBugandCursor
|
2238370088
|
feat(crypto-tail): 尾盘策略完整实现与优化
- 尾盘策略 CRUD、订单簿 WS 订阅、周期内触发下单
- 订单簿订阅日志增加市场 slug,便于排查
- 移除轮询,完全依赖 WebSocket(删除 CryptoTailStrategyScheduler)
- FIXED 模式数量改为小数、向上取整,与签名服务一致
- 前端策略列表页、多语言与 API 对接
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 05:01:10 +08:00 |
|
 WrBugandCursor
|
72de65d670
|
feat(frontend): 优化导入账户弹窗与文案
- 导入弹窗:增加步骤条、导入方式改为按钮、代理选项卡片紧凑展示
- 代理选项:标题改为「请选择账户类型」,地址完整显示,有资产标绿,小白说明放入卡片内
- 私钥/助记词:输入框默认两行、禁止换行(换行自动转空格/去除)
- 多语言:新增 proxyAddressHelp,更新 selectProxyOption 文案
- Modal 宽度与内边距微调;PositionList 移除未使用 useRef
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 01:23:29 +08:00 |
|
 WrBugandCursor
|
3405a1cda3
|
feat: 钱包类型枚举与前端账号类型展示
后端:
- 新增 WalletType 枚举(MAGIC/SAFE),移除 safe/magic 字符串硬编码
- RelayClientService/BlockchainService/AccountService/OrderSigningService 使用枚举
- Builder Relayer API 类型使用常量 RELAYER_TYPE_PROXY/SAFE
前端:
- 账户列表、详情、导入 Modal 显示账号类型(Magic/Safe Tag)
- 导入账户 Modal 移除安全提示 Alert,移除 showAlert 与相关 i18n
- 移除无用 i18n key:securityTip、securityTipDesc、walletTypeMagic、walletTypeSafe、magicNotSupported
- 钱包类型 Tag 简化为仅显示 Magic 或 Safe
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 01:14:04 +08:00 |
|
 WrBugandCursor
|
cf2c8a611c
|
feat: 赎回批量执行与仓位页体验优化
- 赎回:同一账户多市场合并为一笔交易,减少 Relayer 调用次数
- 仓位页:可赎回统计静默刷新,赎回按钮不再常驻 loading
- 账户导入表单、API、多语言等相关改动
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-14 00:20:41 +08:00 |
|
 WrBugandCursor
|
bd323fca35
|
feat: 支持 Magic(邮箱/社交登录)账户导入和赎回
- 前端:启用 Magic 账户导入选项(移除 disabled 和"暂不支持"提示)
- 订单签名:根据钱包类型自动设置 signatureType(Magic=1, Safe=2)
- Builder Relayer API:添加 relay-payload 接口和 PROXY 请求类型支持
- RelayClientService:实现 Magic PROXY 赎回流程(Gasless,需 Builder API Key)
- 获取 relay payload(relay 地址和 nonce)
- 编码 ProxyFactory.proxy(calls) 调用数据
- 创建并签名 PROXY 结构哈希
- 提交 PROXY 类型交易到 Builder Relayer
- BlockchainService:redeemPositions 支持 walletType 参数
- AccountService:移除 Magic 账户赎回限制,传递 walletType 参数
Magic 账户赎回要求配置 Builder API Key(Gasless),Safe 账户保持原有逻辑不变。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-13 22:51:18 +08:00 |
|
 WrBugandCursor
|
a067a20a02
|
feat: 回测任务支持价格区间过滤
- 后端:
- BacktestTask 实体类添加 minPrice 和 maxPrice 字段
- BacktestDto 添加价格区间参数和配置字段
- BacktestService 支持创建和查询价格区间配置
- BacktestExecutionService 在 taskToCopyTrading 中设置价格区间
- 添加数据库迁移脚本 V32__add_backtest_price_range_filter.sql
- 前端:
- BacktestList 添加价格区间输入表单(最低价、最高价)
- 详情页面显示价格区间配置
- 一键创建跟单配置时包含价格区间
- 添加中英繁三语言翻译
- 修复价格输入框精度显示问题(0.4 不再显示为 0.40000000)
功能说明:
- 价格区间过滤与跟单配置保持一致,确保回测结果能准确反映实际跟单效果
- 支持只设置最低价、只设置最高价、或同时设置两者
- 留空表示不限制价格
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-11 23:54:49 +08:00 |
|
 WrBugandCursor
|
20df471683
|
feat: 回测任务添加最大仓位参数支持
参考跟单配置的实现,为回测任务添加最大仓位金额限制功能。
后端改动:
- 添加数据库迁移文件 V31__add_backtest_max_position_value.sql
- BacktestTask 实体添加 maxPositionValue 字段(BigDecimal?,NULL表示不启用)
- BacktestCreateRequest 添加 maxPositionValue 字段
- BacktestConfigDto 添加 maxPositionValue 字段
- BacktestService 处理 maxPositionValue 的创建、详情和复制
- BacktestExecutionService.taskToCopyTrading 映射 maxPositionValue 参数
- BacktestExecutionService.executeBacktest 在买入逻辑中添加仓位检查
* 检查条件:当前仓位 + 买入金额 <= 最大仓位
* 仓位价值计算:quantity * avgPrice
* 超过限制时跳过该笔买入并记录详细日志
* 按市场+方向(marketId + outcomeIndex)分别检查
前端改动:
- BacktestList 表单添加最大仓位金额输入框(可选字段)
- 创建回测任务时包含 maxPositionValue
- 回测任务详情中显示 maxPositionValue(仅在配置了时显示)
- 默认最大每日订单数从 50 改为 100
- 多语言翻译新增:
* backtest.maxPositionValue: 最大仓位金额 / 最大倉位金額 / Max Position Value
* maxPositionValuePlaceholder: 留空表示不启用最大仓位限制
功能特点:
- 可选参数:留空或为 null 时表示不启用该限制,保持向后兼容
- 单市场单方向限制:按 marketId 和 outcomeIndex 分别计算和限制
- 精确计算:使用 BigDecimal 进行数值比较
- 详细日志:超过限制时记录当前仓位、买入金额、总计等详细信息
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-09 02:25:24 +08:00 |
|
 WrBugandCursor
|
5487c7c862
|
feat(leader): Leader 管理展示跟单/回测数量并支持跳转筛选
- 后端:LeaderDto 增加 backtestCount,LeaderService 统计回测数并返回
- Leader 列表:展示跟单数、回测数,点击跳转跟单配置/回测页并带 leaderId 筛选
- 跟单配置页:从 URL 读取 leaderId 并应用筛选,Leader 下拉改用 LeaderSelect
- 回测页:支持 Leader 筛选,页面加载时请求 Leader 列表,筛选与详情统一显示规则
- LeaderSelect:支持 style,回测/跟单筛选统一使用
- 多语言:补充 leaderList 相关 key
- 移动端:Leader 管理卡片内按钮增加内边距 padding 8px 16px
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-09 02:03:17 +08:00 |
|
 WrBugandCursor
|
b1ad6f02d2
|
feat(backtest): 回测结算持久化、按配置重新测试、执行时以当前时间为窗口基准
- 持久化: BUY/SELL 与 SETTLEMENT(WIN/LOSE/UNKNOWN/CLOSED) 均写入 backtest_trade
- 重新测试: 已完成任务支持「按当前配置重新测试」,新任务名称可编辑,后端 POST /tasks/rerun + 前端按钮与确认弹窗
- 回测窗口: 首次执行以当前时间为终点、startTime = endTime - backtestDays(局部变量,不修改实体)
- 新增错误码 BACKTEST_TASK_NOT_COMPLETED、SERVER_BACKTEST_RERUN_FAILED 及多语言
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-09 01:08:40 +08:00 |
|
 WrBugandCursor
|
b616e10ceb
|
feat(skills): 添加 check-i18n-keys 技能并补全多语言 key
- 按 Cursor Agent Skills 规范:技能目录含 SKILL.md 与 scripts/
- 多语言检查脚本:扫描 t() 引用,对比 zh-CN/zh-TW/en common.json
- 补全缺失 key:common.create/copy/copySuccess/copyFailed、
leaderList.openDetailFailed、leaderDetail.market、
filteredOrdersList.orderDetails、filteredOrdersList.filterTypes.keywordFilter
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-08 23:17:27 +08:00 |
|
WrBug
|
5c0808c2cb
|
feat: 添加从回测任务创建跟单配置功能
- 在回测任务列表页和详情页添加'创建跟单'按钮
- 实现从回测任务配置自动填充到跟单配置表单
- 复用 AddModal 组件,支持 preFilledConfig 参数预填充
- 修复配置字段从 BacktestConfigDto 获取的问题
- 列表页点击按钮时先获取任务详情以获取配置信息
- 添加调试日志便于问题排查
- 更新多语言文案:'一键创建跟单配置' -> '创建跟单'
|
2026-01-31 22:23:44 +08:00 |
|
WrBug
|
96fbc3f720
|
feat: 回测系统优化 - 清理字段、移动端适配、缓存优化
## 主要改动
### 1. 回测字段清理
- 删除 BacktestCreate.tsx(未使用,创建使用 modal)
- 移除不适用于回测的字段:
- priceTolerance, delaySeconds(回测使用历史数据)
- minOrderDepth, maxSpread(无历史订单簿数据)
- minPrice, maxPrice, maxPositionValue(回测中无实际意义)
- maxMarketEndDate(意义不大)
- 更新相关 Entity、DTO、Service
- 添加数据库 migration(V29)
### 2. 移动端响应式适配
- BacktestList:筛选器、表格、Modal、表单响应式布局
- BacktestDetail:详情卡片、统计信息、按钮响应式
- 使用 useMediaQuery hook,断点 768px
- 支持手机、平板、桌面多种设备
### 3. 已结算市场缓存优化
- MarketPriceService 添加 Caffeine 缓存
- 缓存已结算市场价格,避免重复 RPC 调用
- 预计 RPC 请求减少 ~78.6%,性能提升显著
- 添加缓存统计和管理方法
### 4. UI 修复
- 修复 BacktestDetail 停止按钮文本
- 更新多语言翻译(supportSell → 跟单卖出)
## 性能收益
- 回测场景 RPC 调用减少 78.6%
- 回测执行时间预计减少 11秒(14秒 → 3秒)
- 移动端用户体验显著提升
|
2026-01-31 20:45:40 +08:00 |
|
WrBug
|
fd25821e39
|
fix: 优化回测功能UI和修复问题
## 主要修改
### UI 优化
- 将回测功能移到跟单交易菜单下作为子菜单
- 创建回测改为使用 Modal 方式(移除独立页面)
- 优化导航路径,使用 useNavigate 替代 window.location.href
### 功能修复
- 修复 API 路径问题:移除重复的 /api 前缀(/api/backtest -> /backtest)
- 修复 copyRatio 输入框单位:改为百分比输入(100 表示 100%),与跟单配置保持一致
- 修复回测列表中 leader 列显示为空的问题:优先显示 leaderName,为空时显示 leaderAddress
### 多语言完善
- 补充缺失的多语言 key:
- common.ascending / common.descending / common.day
- backtest.sortBy / backtest.sortOrder / backtest.createdAt
- backtest.copyRatioTooltip / backtest.copyRatioPlaceholder
- 以及其他表单验证相关的 key
- 为中文简体、中文繁体、英文三种语言都添加了完整的翻译
## 修改的文件
- frontend/src/App.tsx - 移除 BacktestCreate 路由
- frontend/src/components/Layout.tsx - 调整菜单结构
- frontend/src/pages/BacktestList.tsx - Modal 创建、修复 leader 显示
- frontend/src/pages/BacktestDetail.tsx - 优化导航
- frontend/src/pages/BacktestCreate.tsx - 同步 copyRatio 修改
- frontend/src/services/api.ts - 修复 API 路径
- frontend/src/locales/* - 补充多语言配置
|
2026-01-31 07:46:16 +08:00 |
|
WrBug
|
cdd02e9f3d
|
feat: 实现回测功能
## 功能概述
实现完整的回测功能,支持基于历史数据模拟跟单策略的执行效果。
## 后端实现
- 数据库:新增 backtest_task 和 backtest_trade 表(V27迁移脚本)
- 实体类:BacktestTask、BacktestTrade
- Repository:BacktestTaskRepository、BacktestTradeRepository
- Service:
- BacktestService:回测任务管理(CRUD)
- BacktestDataService:从 Polymarket Data API 获取历史交易数据
- BacktestExecutionService:回测算法核心实现
- BacktestPollingService:定时轮询执行回测任务
- Controller:BacktestController(6个API接口)
- DTO:BacktestDto、TradeData
- 错误码:新增回测相关错误码和国际化消息
## 前端实现
- 页面组件:
- BacktestList:回测任务列表
- BacktestCreate:创建回测任务
- BacktestDetail:回测详情(含图表)
- BacktestChart:资金曲线图表(使用 ECharts)
- 类型定义:backtest.ts
- API 服务:集成所有回测接口
- 国际化:支持中英文
## 核心特性
- 回测天数限制:1-15 天
- 数据获取:直接从 Polymarket Data API 获取历史交易(不使用缓存表)
- 任务执行:同一时刻只执行一个任务,按创建时间顺序执行最早创建的任务
- 回测算法:完整实现市场结算、卖出匹配、价格容忍度、每日订单限制等规则
- 实时进度:支持任务进度更新和实时轮询
## 文档更新
- BACKTEST_PRD.md:产品需求文档
- BACKTEST_TECHNICAL_DESIGN.md:技术设计文档
- BACKTEST_REVIEW_CHECKLIST.md:设计评审检查清单
## 其他修改
- 移除 max_position_count 配置(V26迁移脚本)
- 移除 BacktestSyncService(不再需要实时同步)
- 修复前后端编译错误
|
2026-01-31 07:27:36 +08:00 |
|
WrBug
|
e8fd1b503b
|
移除跟单最大仓位数量(maxPositionCount)配置
- 数据库:创建迁移文件 V26 删除 max_position_count 字段
- 后端:移除实体类、DTO、服务中的 maxPositionCount 相关代码
- 后端:移除 FilterResult 中的 FAILED_MAX_POSITION_COUNT 状态
- 后端:移除 CopyTradingFilterService 中的最大仓位数量检查逻辑
- 前端:移除类型定义、表单字段和国际化翻译
- 前端:移除过滤订单列表中的 MAX_POSITION_COUNT 类型
- 前端:修复编译错误(Spin 导入、Table fixed 类型、size 类型)
|
2026-01-31 00:24:25 +08:00 |
|
WrBug
|
390b3ee876
|
feat: 在创建跟单配置时显示Leader资产信息
- 选择Leader后自动获取并显示资产信息(总资产、可用余额、仓位资产)
- 在AddModal和EditModal中都实现该功能
- 使用Card和Statistic组件美观展示
- 添加中英文多语言支持
- 使用formatUSDC格式化显示金额
|
2026-01-30 23:58:18 +08:00 |
|
WrBug
|
3350039f05
|
feat: Leader列表显示仓位资产
- 列表新增仓位资产列
- 移动端卡片新增仓位资产Tag
- 文案'仓位余额'改为'仓位资产'
- 仓位资产使用紫色Tag显示
|
2026-01-30 22:24:59 +08:00 |
|
WrBug
|
0bdc0c74d1
|
feat: Leader列表优化
- 后端过滤价值为0的仓位
- 持仓列表显示市场名称而非ID
- 列表移除分类和创建时间列
- 文案'跟单关系数'改为'跟单数'
- 持仓DTO添加title字段
|
2026-01-30 22:03:50 +08:00 |
|
WrBug
|
2efc04a3c3
|
fix: 补充缺失的多语言key
修复内容:
1. copyTradingOrders 部分:添加 allFullyMatched 和 partiallyMatched(zh-CN、zh-TW)
2. filteredOrdersList 部分:添加 noFilteredOrders(所有语言文件)
影响范围:
- frontend/src/locales/en/common.json
- frontend/src/locales/zh-CN/common.json
- frontend/src/locales/zh-TW/common.json
|
2026-01-28 15:11:19 +08:00 |
|
WrBug
|
9926533049
|
fix: 修复多语言配置中的键值重复和缺失问题
- 修复 copyTradingOrders 对象中重复的键值
- 统一键名规范:allFullyMatched -> allFullySold, partiallyMatched -> partiallySold
- 添加缺失的 filterMarketTitle 键值
- 确保中英文和繁体中文的键值配置一致
- 修复所有语言文件的 JSON 格式(添加换行符)
|
2026-01-20 22:57:17 +08:00 |
|
WrBug
|
45734c051e
|
fix: 优化买入订单分组的卖出状态文案显示
- 当完全成交数为0时,显示'未卖出'而不是'部分成交 (0/X)'
- 统一状态文案:'部分成交'改为'部分卖出','全部成交'改为'全部卖出'
- 更新中英文和繁体中文的多语言配置
- 优化筛选选项中的状态文案,与分组显示保持一致
|
2026-01-20 11:44:33 +08:00 |
|
WrBug
|
9c303e0a82
|
feat: 添加推送已过滤订单功能并修复相关问题
- 新增推送已过滤订单功能(pushFilteredOrders),默认关闭
- 数据库迁移:添加 pushFilteredOrders 字段到模板表和跟单配置表
- 后端:在实体、DTO、Service 中添加 pushFilteredOrders 字段支持
- 前端:在模板新增、编辑、推送页面和跟单配置新增、编辑页面添加开关
- 多语言:添加中文、繁体中文、英文翻译
- 通知逻辑:发送过滤订单通知时检查 pushFilteredOrders 字段
- 修复新建跟单配置时 pushFilteredOrders 字段未生效的问题
- 修复手动输入模式下 pushFilteredOrders 被硬编码为 false 的问题
- 修复从模板填充表单时未加载 pushFilteredOrders 的问题
- 添加 CopyTradingTemplate 接口的 pushFilteredOrders 字段定义
- 修复新建和编辑页面的截止时间输入框交互问题
- 修复删除后失去焦点自动填充1的问题
- 优化 onChange 和 onBlur 处理逻辑,支持清空操作
|
2026-01-12 14:29:12 +08:00 |
|
WrBug
|
279806da2b
|
feat: 优化订单列表筛选功能,支持按市场标题搜索并改进分组体验
- 后端:MarketGroupedOrdersRequest 添加 marketId 和 marketTitle 字段
- 后端:买入/卖出订单分组接口支持市场 ID 模糊匹配和市场标题关键字筛选
- 前端:BuyOrdersTab 添加市场标题筛选,移除方向筛选,记录用户分组偏好
- 前端:SellOrdersTab 添加市场标题筛选,将方向筛选改为状态筛选,移除方向列
- 前端:MatchedOrdersTab 添加市场标题筛选和市场列显示
- 前端:所有搜索输入框添加 0.5 秒防抖优化
- 前端:分组偏好保存到 localStorage 以便跨会话持久化
|
2026-01-12 10:01:20 +08:00 |
|
WrBug
|
0327eaffe3
|
feat: 添加市场截止时间筛选功能
后端:
- 为 copy_trading 表添加 max_market_end_date 字段(毫秒时间戳)
- 为 markets 表添加 end_date 字段,迁移时清空已有数据
- 实现市场截止时间过滤逻辑(仅跟单截止时间小于设置时间的订单)
- 更新 CopyTradingService 支持 maxMarketEndDate 的创建和更新
- 更新 FilterResult 添加 FAILED_MARKET_END_DATE 状态
- 更新 CopyOrderTrackingService 传递 marketEndDate 参数
前端:
- 添加市场截止时间筛选 UI(支持小时和天两种单位)
- 输入限制:仅支持整数输入(precision=0)
- 更新 AddModal 和 EditModal 支持市场截止时间配置
- 更新过滤类型显示映射(MARKET_END_DATE)
- 添加多语言支持(中文、英文、繁体中文)
数据库迁移:
- V22: 合并添加 max_market_end_date 和 end_date 字段
- 迁移时清空 markets 表数据,确保所有数据都包含 end_date
|
2026-01-09 08:35:05 +08:00 |
|
WrBug
|
9ed5190bfe
|
feat: 添加关键字过滤功能并优化市场 slug 处理
主要变更:
1. 关键字过滤功能
- 添加关键字过滤模式(白名单/黑名单/禁用)
- 支持关键字列表配置(JSON 存储)
- 实现关键字匹配逻辑(不区分大小写)
- 数据库迁移:V20__add_keyword_filter.sql
2. 市场 slug 优化
- 区分显示用 slug 和跳转用 eventSlug
- 添加 event_slug 字段到 markets 表(V21__add_event_slug_to_markets.sql)
- 从 events[0].slug 获取跳转用的 slug 并存入数据库
- 减少 API 请求,提高性能
3. UI 优化
- 将创建/编辑跟单配置改为 Modal 方式
- 删除独立的 CopyTradingAdd 和 CopyTradingEdit 页面
- 更新前端跳转逻辑,优先使用 eventSlug
4. API 响应优化
- 更新 MarketResponse 添加 events 字段
- 统一从 events[0].slug 获取跳转用的 slug
- 更新所有相关服务使用新的 slug 获取逻辑
|
2026-01-08 17:47:00 +08:00 |
|
WrBug
|
3d5a923caf
|
feat: 订单列表按市场分组功能重构
- 后端实现按市场分组的订单列表接口
- 添加 MarketGroupedOrdersRequest、MarketOrderStats、MarketOrderGroup、MarketGroupedOrdersResponse DTO
- 实现 getBuyOrderListGroupedByMarket 和 getSellOrderListGroupedByMarket 方法
- 添加 POST /api/copy-trading/orders/grouped-by-market 接口
- 支持分页和统计信息(订单数、总金额、盈亏、成交状态等)
- 前端重构:移除前端分组逻辑,改为调用后端分组接口
- BuyOrdersTab 和 SellOrdersTab 使用后端分组接口
- 移除前端 useMemo 分组计算逻辑
- 添加分组数据状态管理和分页支持
- 分组默认折叠状态
- 移除桌面端自动展开逻辑
- 所有设备默认折叠,用户手动展开
- 修复 moneyline URL 逻辑
- getPolymarketUrl 函数添加 isMoneyline 参数
- 暂时不自动跳转到 moneyline 页面(需要后端提供标识)
- 多语言支持
- 添加 markets 翻译键(中文、繁体中文、英文)
|
2026-01-08 13:19:52 +08:00 |
|
WrBug
|
2af2c0e86a
|
feat: 订单列表按市场分组并支持跳转到Polymarket
- 后端添加市场slug和分类字段
- 在 BuyOrderInfo、SellOrderInfo、MatchedOrderInfo DTO 中添加 marketSlug 和 marketCategory 字段
- 在 CopyTradingStatisticsService 中填充这些字段(从 Market 实体获取)
- 前端实现按市场分组功能
- 添加分组视图切换开关(列表视图/分组视图)
- 分组显示:按市场分组,显示市场名称、订单数、总金额、盈亏等统计信息
- 买入订单分组显示是否完全成交状态(全部成交/部分成交)
- 卖出订单分组显示总盈亏
- 支持展开/折叠功能(单个和全部)
- 桌面端默认全部展开,移动端默认全部折叠
- 市场名称点击跳转功能
- 添加 getPolymarketUrl 工具函数,根据市场分类构建URL
- sports 分类市场跳转到 /moneyline 页面(spread 市场)
- 其他分类市场跳转到普通市场页面
- 如果没有 slug,使用 marketId 作为后备(跳转到 condition 页面)
- 分组视图、列表视图、移动端卡片视图均支持点击跳转
- 多语言支持
- 添加分组相关翻译键:groupByMarket、expandAll、collapseAll、allFullyMatched、partiallyMatched、orderCount、totalAmount、totalPnl、statusBreakdown
|
2026-01-08 12:39:09 +08:00 |
|
WrBug
|
3e667b70fd
|
feat: enhance copy trading logic and UI
- fix: correct copyRatio scaling (divide by 100)
- fix: enforce minimum order size with round-up logic
- feat: customize Telegram notification icons
- feat: optimize frontend order list (active loading, refresh buttons)
- refactor: optimize OnChain WebSocket connection management
|
2026-01-04 20:36:41 +08:00 |
|
WrBug
|
6e5ccdfe5c
|
fix: 修复 walletType 字段问题和 WebSocket 内存泄漏,优化账户导入 UI
后端修复:
- 添加 walletType 字段到 Account 实体和数据库(V17 迁移)
- 修复 refreshProxyAddress 方法使用正确的 walletType
- 修复 WebSocketTicketService 内存泄漏(添加定时清理任务)
前端优化:
- 账户导入改为 Modal 弹窗,提升用户体验
- 默认钱包类型改为 Web3 Wallet(safe),并将其选项排在首位
- 更新多语言文本:将 MetaMask(浏览器钱包)改为 Web3钱包
- 修复 walletTypeHelp Tooltip 换行显示问题
|
2026-01-03 18:29:39 +08:00 |
|
wry5560
|
5a83444b56
|
feat: 添加WebSocket票据认证和钱包类型支持
- 新增WebSocket票据服务,用于短期有效的WebSocket连接认证
- 支持Magic和Safe两种钱包类型,分别对应邮箱/OAuth登录和MetaMask用户
- 添加登录频率限制和安全防护
- 优化日志记录,屏蔽敏感信息
- 升级ethers.js到v6.16.0
- 新增多语言钱包类型说明
- 重构代理地址计算逻辑,支持CREATE2计算Magic代理地址
|
2026-01-03 12:27:59 +08:00 |
|
WrBug
|
a6ca6cc3ff
|
feat: 支持 RPC 节点启用/禁用功能
- 后端:更新 RpcNodeService,确保禁用的节点被忽略
- getAllNodesWithDefault() 只返回启用的节点
- checkAllNodesHealth() 只检查启用的节点
- getAvailableNode() 已正确实现,只查询启用的节点
- 前端:添加启用/禁用开关功能
- 在 RpcNodeSettings 页面添加启用列,使用 Switch 组件
- 添加 handleToggleEnabled 函数处理启用/禁用切换
- 添加多语言支持(中文简体、繁体、英文)
|
2025-12-26 01:57:22 +08:00 |
|
WrBug
|
1580b60d24
|
feat: 实现RPC节点管理功能
- 后端功能:
- 添加RPC节点配置管理(增删改查、优先级调整)
- 实现节点健康检查和自动故障转移
- 修复Retrofit baseUrl处理问题(使用拦截器动态替换URL)
- 添加RPC节点可用性验证(创建前验证)
- 默认节点作为兜底,不返回给前端,始终排在最后
- API健康检查使用动态获取的可用节点
- 前端功能:
- 添加RPC节点设置页面
- 支持添加、删除、检查节点
- 支持调整节点优先级
- 完整的多语言支持(中文简体/繁体、英文)
- 添加菜单项多语言key
- 数据库:
- 添加RPC节点配置表迁移脚本
|
2025-12-25 23:58:50 +08:00 |
|
WrBug
|
c20e0138df
|
feat: 添加最大仓位限制配置功能
后端变更:
- 添加最大仓位金额(maxPositionValue)和最大仓位数量(maxPositionCount)配置字段
- 实现按市场检查仓位限制的过滤逻辑
- 添加数据库迁移脚本 V11__add_max_position_config.sql
前端变更:
- 重构账户导入和Leader添加为可复用组件(AccountImportForm, LeaderAddForm)
- 在CopyTradingAdd页面集成账户导入和Leader添加Modal
- 在CopyTradingAdd/CopyTradingEdit页面添加最大仓位限制配置项
- 补充所有多语言文件中的缺失键,确保zh-CN/zh-TW/en三种语言文件一致
功能说明:
- 支持设置单个市场的最大仓位金额限制(USDC)
- 支持设置单个市场的最大仓位数量限制
- 两个限制可以同时启用,下单前会检查当前市场仓位是否超过限制
|
2025-12-23 00:56:04 +08:00 |
|
WrBug
|
0625c62e36
|
feat: 优化跟单买入逻辑和错误处理
- 更新 Twitter 链接为 @polyhermes
- 简化订单创建失败日志,只保留 code 和 errorBody
- 修复 @Transactional 注解问题(类改为 open class)
- 改进唯一键冲突异常处理,支持并发场景
- 整理跟单买入和重试逻辑,使用常量配置
- 重试延迟从 1 秒调整为 3 秒
- 添加订单簿匹配检查,避免 FAK 订单失败
- 前端移除 Leader 管理的分类相关设置和显示
- 补充多语言翻译(AccountImport 和 CopyTradingList)
|
2025-12-11 02:58:50 +08:00 |
|
WrBug
|
cc41df2f24
|
feat: 优化前端UI和功能
- 修复仓位轮询检查逻辑,增加2分钟延迟判断
- 统一订单页面为Tab切换模式,使用Modal展示
- 优化移动端统计UI,改为两列线性布局
- 简化过滤类型标签,移除括号说明
- 账户管理列表优化:钱包地址显示前6后4,移除API凭证和活跃订单列
- 修复复制按钮功能,添加降级方案和Toast提示
- 修复菜单层级问题,订单下拉直接显示已成交和已过滤订单
- 添加编辑功能Modal化
- 完善多语言支持
|
2025-12-09 06:23:51 +08:00 |
|
WrBug
|
f0c40533cf
|
优化跟单过滤逻辑和卖出价格计算
- 优化订单簿请求:仅在需要时请求,避免不必要的API调用
- 卖出价格改为市价卖出:优先使用订单簿bestBid,失败则使用Leader价格,固定按90%计算
- 价格容忍度默认值:如果为0,自动使用5%
- 使用枚举和数据类优化checkFilters方法:
- 新增FilterResult数据类和FilterStatus枚举
- 移除无用字段isBuyOrder参数
- 使用类型安全的枚举替代字符串判断
- 优化代码结构:减少if-else嵌套,使用链式调用
- 移除最小订单簿深度功能(minOrderbookDepth)
- 优化最小订单深度逻辑:检查所有方向(买盘+卖盘)的总深度
|
2025-12-09 00:52:50 +08:00 |
|
WrBug
|
07d1b50b9b
|
feat: 实现公告板功能
- 后端:从 GitHub Issues API 获取公告数据
- 支持筛选指定 assignees 的评论
- 支持排除指定 issue 的评论
- 从评论第一行提取标题(移除 Markdown 格式)
- 支持获取 reactions 数据(+1、heart、laugh 等)
- 实现 10 分钟缓存机制
- 强制刷新时,如果被限流则保留缓存数据
- 添加 GitHub API 健康检查
- 前端:公告列表和详情页面
- 响应式设计(移动端和桌面端)
- 移动端使用侧边抽屉显示列表
- 支持 Markdown 渲染
- 支持内容折叠(超过 30 行)
- 显示 reactions(使用 emoji)
- 添加刷新按钮(支持强制刷新)
- 公告菜单项放在第一位
- 默认页面改为公告页
- 其他:
- 更新 favicon 为 SVG 格式
- 添加 GitHub API 限流方案文档
- 添加 GitHub Token 配置文档
|
2025-12-07 16:15:59 +08:00 |
|
WrBug
|
5c136ab0f4
|
fix: 修复未匹配订单更新逻辑和前端API类型定义
- 修复 PositionCheckService 中未匹配订单更新逻辑,当仓位数量大于等于订单数量总和时也能正确处理
- 修复前端 API 类型定义,添加 remark 和 website 字段支持
- 添加 Leader 备注和网站字段支持
|
2025-12-07 05:07:58 +08:00 |
|
WrBug
|
cb167d442f
|
feat: 重构仓位轮训逻辑并修复多语言配置
主要改动:
1. 创建独立的 PositionCheckService 服务
- 将仓位检查逻辑从 PositionPushService 中分离
- 实现待赎回仓位检查和未卖出订单检查
- 实现订单状态更新逻辑(FIFO策略)
2. 修改 PositionPushService
- 后端启动时自动启动轮训任务
- 每次轮训后推送全量数据给所有订阅的客户端
- 调用 PositionCheckService 进行仓位检查
3. 自动赎回功能调整
- 将自动赎回从跟单配置级别移到系统级别
- 添加系统级自动赎回配置管理
- 支持 Builder API Key 配置检查
4. 多语言配置修复
- 修复 PositionCheckService 中的硬编码消息
- 使用 MessageSource 获取多语言文本
- 添加自动赎回和 Builder API Key 相关的多语言资源
5. 数据库迁移
- V8: 添加跟单配置名称字段
- V9: 将自动赎回配置移到系统配置表
6. 前端更新
- 添加系统级自动赎回配置界面
- 更新跟单配置管理界面
- 添加 Builder API Key 配置界面
|
2025-12-07 02:06:19 +08:00 |
|
WrBug
|
bfbbbdd1de
|
feat: 实现 Builder API Key 系统级配置和 Gasless 交易支持
- 新增系统配置表(SystemConfig)用于存储 Builder API Key
- 实现 Builder API Key 的前端配置页面
- 集成 Builder Relayer API 支持 Gasless 交易
- 在 API 健康检查中添加 Builder Relayer API 检测
- 移除前端 API 测试功能,简化配置页面
- 修复赎回仓位时的 Builder API Key 检查逻辑
- 更新错误处理,引导用户配置 Builder API Key
|
2025-12-06 23:10:26 +08:00 |
|
WrBug
|
3369dbb248
|
feat: 添加价格区间过滤功能并优化UI
- 添加价格区间过滤功能(minPrice/maxPrice)
- 数据库迁移:添加价格区间字段到 copy_trading 和 copy_trading_templates 表
- 后端:实体类、DTO、服务层支持价格区间配置和过滤
- 前端:模板和配置页面添加价格区间配置UI
- 过滤逻辑:在订单创建前检查价格是否在配置区间内
- 优化价格区间文案,使其更易懂
- 明确说明是 Leader 交易价格
- 详细说明三种配置方式(区间、只填最低价、只填最高价)
- 补充多语言翻译
- 为 zh-CN、zh-TW、en 添加价格区间相关翻译
- 添加价格区间过滤类型翻译
- 添加通用翻译(prev、next、items、total)
- 修复复制模板功能
- 补充缺失的过滤条件字段(minOrderDepth、maxSpread、minOrderbookDepth、minPrice、maxPrice)
- 在复制模板表单中添加所有过滤条件配置项
- 已过滤订单列表优化
- 添加移动端卡片样式布局
- 在筛选下拉菜单中添加价格区间过滤类型选项
- 订单页面返回按钮优化
- 买入订单、卖出订单、匹配关系页面的返回按钮改为返回上一页(navigate(-1))
- 使用多语言支持返回按钮文本
|
2025-12-05 23:52:49 +08:00 |
|
WrBug
|
9b8150cf92
|
feat: 实现跟单筛选条件记录和展示功能
- 新增 FilteredOrder 实体和数据库表,记录被过滤的订单信息
- 在筛选失败时自动记录到数据库并发送 Telegram 通知
- 创建 FilteredOrderService 和 API 接口,支持查询被过滤订单列表
- 前端新增被过滤订单列表页面,支持按过滤类型筛选
- 修复价差计算逻辑,使用数组最大值和最小值而非第一个元素
- 优化编辑页面 UI,钱包和 Leader 显示与创建页面一致(只读)
- 添加多语言支持(中文、繁体中文、英文)
|
2025-12-05 05:18:20 +08:00 |
|
WrBug
|
777710c2ed
|
feat: 完善 Telegram 推送通知功能
- 推送模板优化:
- 优先使用账户名称而不是钱包地址
- 使用市场标题而不是16进制ID
- 添加可点击的市场链接(支持 slug 和 conditionId)
- 添加市场方向(outcome)显示
- 数量和价格从订单详情API获取实际值
- 失败通知只显示后端返回的msg,不显示完整堆栈
- 多语言支持:
- 后端推送消息支持多语言(使用前端最后请求的语言)
- 添加所有 ErrorCode 的多语言资源文件(中文简体、繁体、英文)
- 通知消息文本全部使用多语言资源
- 功能改进:
- 从订单详情获取实际的 side、price、size、outcome
- 支持买入/卖出方向的多语言显示
- 错误信息优化,只显示后端返回的错误消息
|
2025-12-05 02:20:46 +08:00 |
|
WrBug
|
1a9407c544
|
feat: 完成前端多语言支持和菜单优化
- 缩短菜单标题,解决显示不全问题
- 添加跟随系统语言选项,作为默认选项
- 移除语言切换时的页面刷新,实现无刷新切换
- 完成主要页面的多语言替换:
* ConfigPage - 全局配置页面
* ResetPassword - 重置密码页面
* LeaderList - Leader 列表页面
* UserList - 用户列表页面
* Statistics - 统计信息页面
* OrderList - 订单列表页面
* TemplateList - 模板列表页面
* CopyTradingList - 跟单配置列表页面
- 添加简体中文、繁体中文和英文的完整翻译键
- 优化语言设置页面,支持跟随系统语言
|
2025-12-04 10:36:28 +08:00 |
|