WrBug
6a6af6f5e9
fix: handle neg_risk market in sellPosition
...
Fixes #38
The sellPosition method was not checking if the market uses Neg Risk
Exchange contract. For neg_risk markets, the order signing must use the
Neg Risk Exchange address, otherwise the order will be rejected by
Polymarket.
The copy trading service already handles this correctly, but the manual
sell position flow was missing this check.
2026-04-29 14:35:43 +08:00
WrBug
4b58b7cd46
Merge pull request #57 from WrBug/dev
2026-04-28 22:32:45 +08:00
WrBug
8ab8ae5205
style: 全局将 USDC 展示替换为 $ 符号
...
前端所有金额展示从 "100.00 USDC" 改为 "$100.00" 格式,
后端 Telegram 通知模板和错误提示同步更新。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
v2.5.0
2026-04-28 22:23:49 +08:00
WrBug
0769022878
feat: 添加 CLOB 2.0 迁移弹窗提醒与账户页迁移引导
...
登录后首次进入显示迁移提醒弹窗,引导用户前往账户页;
账户页首次进入时显示 Alert 提示 USDC.e → pUSD 迁移按钮;
移动端账户卡片补充 swap 操作按钮。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-28 21:59:15 +08:00
WrBug
06a122dd34
fix: 迁移链路外统一改为仅识别 pUSD
...
移除链上监听中对 USDC.e 的抵押品匹配,并将解包与审批相关说明统一为 pUSD 语义,避免在非 swap/wrap 流程继续使用 USDC.e。
Made-with: Cursor
2026-04-28 21:40:41 +08:00
WrBug
fb6b469e9f
fix: 修复 CLOB V2 下代理交易与链上成交解析问题
...
调整 CLOB API 地址并优化 Magic Proxy 的执行与 gas 限制,避免 wrap 与 relay 调用在 V2 环境下异常回滚。同时补充 pUSD/USDC.e 兼容与 ERC1155-only 成交价格回填逻辑,提升链上成交解析稳定性。
Made-with: Cursor
2026-04-28 21:34:43 +08:00
WrBug
22a6544373
feat: CLOB V1 → V2 完整迁移
...
- 更新 EIP-712 签名结构: domain version "1"→"2", 移除 taker/expiration/nonce/feeRateBps, 新增 timestamp/metadata/builder
- 更新合约地址为 V2 (CTF_EXCHANGE, NEG_RISK_EXCHANGE)
- CLOB URL 切换到 clob-v2.polymarket.com
- 抵押品代币 USDC.e → pUSD (0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB)
- 新增 USDC.e → pUSD wrap 功能 (CollateralOnramp 合约)
- SignedOrderObject 补充 API payload 必需的 taker/expiration 字段
- NewOrderRequest 补充 deferExec/postOnly 字段
- 前端账户管理新增 pUSD 迁移按钮
- 移除所有 feeRateBps 相关逻辑
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 22:24:50 +08:00
WrBug
04b7505094
Merge branch 'dev'
...
Made-with: Cursor
2026-03-30 12:55:20 +08:00
WrBug
2056417749
Merge pull request #41 from WrBug/ai_fix/n_39
...
fix: backtest equity curve bugs
v2.4.1
2026-03-30 11:32:36 +08:00
WrBug
748c871af4
fix: backtest equity curve bugs ( #39 )
...
- Fix SELL logic: correctly reduce position.quantity after selling (core bug)
Previously positions were never decremented, causing sold positions to be
settled again at backtest end, inflating final balance.
- Fix settleRemainingPositions: profitLoss now correctly computes
settlementValue - cost (was incorrectly using settlementValue.negate())
- Fix max drawdown calculation: use current balance instead of previous
iteration's runningBalance
- Frontend: add comment noting chart shows cash balance, not total equity
2026-03-28 18:06:06 +08:00
WrBug
53f1381c3b
chore: 移除 Bug 报告模板中手动添加 label 的文案
...
Made-with: Cursor
2026-03-10 12:53:06 +08:00
WrBug
4a3ebb674e
chore: 移除 Bug 报告模板中的 AI 自动修复确认复选框
...
Made-with: Cursor
2026-03-10 12:46:41 +08:00
WrBug
2b570a432a
fix(ci): 解析 Issue 编号时 grep 无匹配导致 step 退出
...
PR 描述中无 Closes/Fixes/Resolves #N 时,grep 返回 1,set -e 导致脚本
在未执行分支名回退逻辑前即退出。为管道添加 || true,使无匹配时继续
从分支名 ai_fix/N_xxx 解析 Issue 编号。
Made-with: Cursor
2026-03-10 12:44:52 +08:00
WrBug
5412a0eb49
Merge pull request #37 from WrBug/ai_fix/35_bug_1usdc
...
fix : #35 [Bug] / 价差策略按比例买入,购买的价值小于1usdc时,会下单失败
2026-03-10 12:40:12 +08:00
WrBug
7b4e702da9
ci(close-issue): add Telegram notification when AI-fixed issue is closed
...
- Get issue details (title, url) for TG message
- Send TG via TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID (same as docker-build)
- Use GH_TOKEN from GITHUB_TOKEN for gh CLI
Made-with: Cursor
2026-03-10 12:39:33 +08:00
WrBug
e32697e7ee
ci: add workflow to close issue when PR is merged
...
- Trigger on pull_request closed (merged) to main
- Parse issue number from PR body (Closes #N) or branch name (ai_fix/N_xxx)
- Close linked issue via GitHub API if still open
Made-with: Cursor
2026-03-10 12:34:35 +08:00
WrBug
d8a75fc8dd
fix : #35 [Bug] / 价差策略按比例买入,购买的价值小于1usdc时,会下单失败
2026-03-10 12:18:03 +08:00
WrBug
6cb48bb6cc
Update AI bug report template to bilingual (English/Chinese)
2026-03-10 02:59:34 +08:00
WrBug
e78785de7c
Add AI bug report template
2026-03-10 02:59:33 +08:00
WrBug
915d4570df
Update AI bug report template to bilingual (English/Chinese)
2026-03-10 02:39:50 +08:00
WrBug
48d6e82f43
Add AI bug report template
2026-03-10 02:30:26 +08:00
WrBug
46c32df421
fix(notification): 优化移动端消息设置页面交互体验
...
- 修复移动端 Tooltip 与点击事件冲突导致变量无法复制的问题
- 添加移动端备用复制方法(textarea + execCommand)
- 移除变量标签中的复制图标
- 移动端模板输入框调整为 15 行
- 调整系统设置菜单顺序
Made-with: Cursor
v2.4.0
2026-03-02 23:32:26 +08:00
WrBug
686d14b6e5
fix(account): 卖出订单通知与创建订单失败错误展示
...
- 手动卖出订单通知:side 固定为 SELL,outcome 使用 request.side(市场方向)
- 创建订单失败时从 API errorBody 解析 error 字段(Gson),用于 TG 通知展示
- 成功/失败分支均使用 NewOrderResponse.getErrorMessage() 获取错误文案
Made-with: Cursor
2026-03-02 23:08:23 +08:00
WrBug
561ebf0ce3
feat(订单推送/通知): 按实际成交价与 size_matched 展示价格与数量
...
- 实际成交价公式: original_size * price / size_matched,数量展示用 size_matched
- OrderPushService/OrderStatusUpdateService/CryptoTail: 用公式计算 avgFilledPrice,移除 getTrades 依赖
- TelegramNotificationService: 有 avgFilledPrice 时展示数量用 filled,ORDER_SUCCESS/CRYPTO_TAIL 一致
- 前端订单推送: 有成交时展示 size_matched;无 orderDetail 时用 WebSocket 数据计算价格与数量
- OrderDetailDto 增加 avgFilledPrice;PolymarketClobService 移除 getAvgFilledPriceFromTradeIds
Made-with: Cursor
2026-03-02 23:05:15 +08:00
WrBug
b8e10f340c
feat(skills): 添加 create-release skill 支持自动发布公告
...
- 将 create-release.sh 脚本改造为 Cursor skill
- 支持生成中英文 Release 内容
- 自动在 Issue #1 发布面向用户的公告
- 支持 commit 过滤(排除版本内修复)
Made-with: Cursor
2026-03-02 22:16:28 +08:00
WrBug
9c70dc762f
fix(frontend): 移除未使用变量与导入以消除 TS 报错
...
Made-with: Cursor
2026-03-02 22:07:04 +08:00
WrBug
8f0a49493c
refactor(notification): 优化模板配置布局并完善多语言支持
...
- 布局优化:模板类型改为顶部Tabs,内容区70%+变量面板30%
- 变量Tag UI优化:更精致的样式和悬浮效果
- 多语言:添加模板类型描述、变量label/description的i18n key(三语言)
- 后端精简:移除DTO中冗余的label/description/templateTypeName字段
- 清理:移除未使用的templates状态和fetchTemplates方法
Made-with: Cursor
2026-03-02 22:02:00 +08:00
WrBug
e7af4d4821
feat: 消息推送自定义模板与独立设置页
...
后端:
- 新增通知模板表与实体、DTO、Repository、NotificationTemplateService
- 支持 {{variable}} 模板语法,提供模板类型与变量接口
- TelegramNotificationService 改为通过模板渲染发送(ORDER_SUCCESS/ORDER_FAILED/ORDER_FILTERED/CRYPTO_TAIL_SUCCESS/REDEEM_SUCCESS/REDEEM_NO_RETURN)
- 模板 CRUD、重置默认、测试发送接口
- 补全订单过滤相关 i18n key(zh/en/zh-TW)
前端:
- 消息推送设置抽离为独立页 /system-settings/notification
- 系统设置概览改为入口卡片,侧栏增加「消息推送设置」菜单
- NotificationSettingsPage: 机器人配置 + 模板配置双卡片布局(与概览一致)
- 模板配置支持选择类型、编辑内容、变量面板(点击复制、悬停说明)、保存/重置/测试
- 多语言 key 补全(notificationSettings.templates.*、templateTypes.*)
Made-with: Cursor
2026-03-02 21:31:45 +08:00
WrBug
83bc209489
refactor(ci): simplify docker-build workflow and update TG notifications
...
- Remove package-only build type, unify to single build flow
- Add TG notification after package upload (before Docker build)
- Add TG notification after Docker image push
- Update notification messages to English
- Rename "Tag" to "Version" in notifications
Made-with: Cursor
2026-03-02 17:58:36 +08:00
WrBug
9b6cc63158
refactor(frontend): 优化仓位管理列表视图列结构
...
将12列精简为8列:
- 合并"数量"和"平均价格"为"持仓"列
- 合并"当前价格"、"当前价值"、"盈亏"、"已实现盈亏"为"当前价值/盈亏"列
- 减少列宽度,提升表格紧凑性
Made-with: Cursor
2026-03-02 17:54:03 +08:00
WrBug
96d224a5a3
fix(frontend): 移除 CryptoTailStrategyList 未使用的 useRef 导入
...
Made-with: Cursor
2026-03-02 17:44:10 +08:00
WrBug
97249db546
style(copy-trading): 跟单列表操作列改为图标按钮样式
...
- 操作列编辑、统计等改为 Tooltip+图标点击,与策略列表风格统一
- 操作列宽度 200 -> 160
Made-with: Cursor
2026-03-02 17:40:44 +08:00
WrBug
46e10ebdd8
feat(crypto-tail): 加密价差策略收益曲线与交互优化
...
- 后端: 收益曲线 API (pnl-curve)、CryptoTailStrategyService.getPnlCurve、gt 扩展导入
- 前端: CryptoTailPnlCurveModal 弹窗,统计卡片+时间筛选+ECharts 累计收益图
- 策略列表: 桌面/移动端「收益曲线」入口,图标改为蓝色(#1890ff)
- 切换时间范围保留旧数据避免图表容器卸载导致空白
- 今日/7天/30天用折线、全部用平滑曲线
- 多语言: viewPnlCurve、pnlCurve.* (zh-CN/zh-TW/en)
Made-with: Cursor
2026-03-02 17:39:23 +08:00
WrBug
4ebfacfc21
feat(frontend): 优化多个列表页面 UI,添加空状态提示
...
- 优化 AccountList、BacktestList、CopyTradingList、CryptoTailStrategyList、LeaderList、TemplateList、UserList 页面操作栏
- 添加空数据状态提示
- 添加相关多语言翻译 key
Made-with: Cursor
2026-03-01 06:48:51 +08:00
WrBug
f86749e85d
feat(frontend): 优化 Leader 列表 UI,使用图标操作栏
...
- 移动端:Cell 样式美化,渐变背景头部,资产常驻显示
- PC 端:操作列改用图标,合并跟单/回测数到图标 Badge
- 跟单/回测数量用 Badge 显示,数量为 0 时半透明禁用
Made-with: Cursor
2026-03-01 05:57:34 +08:00
WrBug
3cc37dac55
feat(backend): 优化通知推送,区分输赢并显示可用余额
...
- 赎回通知区分输赢:赢的仓位显示"赎回成功",输的仓位显示"已结算(无收益)"
- 买入/卖出/赎回通知消息中添加钱包可用余额显示
- 新增多语言文案支持
Made-with: Cursor
2026-03-01 05:41:04 +08:00
WrBug
5483a1aa77
feat(frontend): 优化加密价差监控页面体验
...
- 刷新页面时保留当前选择的策略(localStorage 缓存)
- 移动端下单弹窗改为 BottomSheet 样式,更紧凑
- 买入按钮实时显示当前价格,如 "买入 Up (0.50)"
- 周期切换时自动关闭弹窗并提示用户
Made-with: Cursor
2026-02-27 04:11:55 +08:00
WrBug
e5acad5091
fix(frontend): 限制下单价格最高为 0.99
...
- 修改所有价格限制从 1 改为 0.99
- 影响位置:
- handleOpenManualOrderModal: 默认价格计算
- handlePriceChange: 手动修改价格
- handleFetchLatestPrice: 获取最新价
- handleSizeChange: 修改数量时重新计算价格
- handleManualOrder: 提交订单时
- 确保价格不会超过 Polymarket 的最高限制 0.99
Made-with: Cursor
v2.3.4
2026-02-26 21:36:59 +08:00
WrBug
1688fa9633
feat(frontend): 优化"最大"按钮计算,支持保留2位小数
...
- 修改前:只能整数数量,导致余额浪费
- 示例:余额2.95U,价格0.86 → 数量3张(浪费0.37U)
- 修改后:保留2位小数,充分利用余额
- 示例:余额2.95U,价格0.86 → 数量3.43张(利用全部余额)
Made-with: Cursor
2026-02-26 21:30:18 +08:00
WrBug
1967d97c31
fix(frontend): 修复 RATIO 模式下金额被错误截断的问题
...
- 移除 RATIO 模式下对 defaultAmountUsdc 的 Math.floor 取整
- 保持精确的金额用于计算数量,确保符合用户预期
- 修复示例:60%比例,余额2.95U,价格0.682
- 修复前:数量 = 1.47(金额被截断为1U)
- 修复后:数量 = 2.60(金额正确为1.77U)
Made-with: Cursor
2026-02-26 21:26:12 +08:00
WrBug
79b154515d
feat(frontend): 手动下单功能增强与金额模式支持
...
- 后端返回 amountMode 和 amountValue 字段,支持前端获取策略配置
- 手动下单确认弹窗显示用户可用余额(绿色高亮)
- 价格输入框右侧添加"获取最新价"按钮,支持实时更新价格
- 数量输入框右侧添加"最大"按钮,根据余额自动计算最大购买数量
- 修正数量计算逻辑:FIXED 和 RATIO 模式均按实际金额计算数量,保留2位小数
- FIXED 模式:使用配置的固定金额
- RATIO 模式:按比例计算可用余额
- 数量计算使用保留小数方式(而非向上取整),确保精确匹配投入金额
- 示例:固定1U,价格0.4,自动填充2.5张
- 示例:比例30%,余额20U,价格0.4,自动填充15张
Made-with: Cursor
2026-02-26 21:19:06 +08:00
WrBug
9b4d8fc001
feat(frontend): 优化加密价差策略监控页面移动端体验
...
- 移动端策略选择器:标题与下拉框垂直布局,支持换行显示
- 下拉框选项支持文本换行,避免长策略名称被截断
- 移动端手动下单按钮改为底部悬浮固定显示
- 两个按钮均分屏幕宽度,符合移动端触摸操作规范
Made-with: Cursor
2026-02-26 20:50:46 +08:00
WrBug
cb1f43871a
fix(crypto-tail): 周期切换时按周期拉取 tokenIds,修复手动下单 orderbook 不存在
...
- 后端 initMonitor 支持可选 periodStartUnix,按指定周期取市场与 tokenIds
- 前端周期切换时调用 monitorInit 传入 pushPeriod,确保 tokenIds 与当前周期一致
- 修复切换周期无变化及手动下单报 orderbook does not exist
Made-with: Cursor
2026-02-26 20:43:27 +08:00
WrBug
a2be5b7f52
feat(crypto-tail): 价差策略监控页手动下单与 UI 优化
...
- 后端:手动下单 API,trigger_type 区分 AUTO/MANUAL,价格 4 位小数向上取整
- 前端:监控页手动买入 Up/Down 按钮、二次确认弹窗、策略信息移动端适配
- 下单价格最多 4 位小数;确认页方向仅显示 Up/Down;按钮文案改为「买入 Up/Down」
Made-with: Cursor
2026-02-26 19:23:00 +08:00
WrBug
708d6ddb41
fix(binance): 修复 K 线 WebSocket 断开后无法重连导致 openPrice/closePrice 丢失的问题
...
当 WebSocket 因网络问题断开时,updateSubscriptions() 只检查订阅集合是否相同,
未检查连接是否真的存在,导致断开后无法重连。
现在会额外检查需要的连接是否都存在,如果缺失则重新建立连接。
Made-with: Cursor
2026-02-26 10:28:28 +08:00
WrBug
0fb015f6d3
Merge pull request #33 from WrBug/dev
...
Release v2.3.3: 加密价差策略与尾盘监控优化
2026-02-25 21:34:54 +08:00
WrBug
c5d59dfdf9
refactor: 尾盘策略统一更名为加密价差策略
...
- 前端:菜单父级「加密价差策略」,子项「策略配置」「实时监控」;i18n 与类型注释全部替换
- 后端:i18n、ErrorCode、DTO/实体/服务注释与日志「尾盘」→「加密价差策略」;TG 通知文案
- 文档:README、中英文用户指南、UI 规格、任务、流程、价差流程、市场数据、动态系数等全部更新
- 不修改 API 路径、路由、表名与类名,保持兼容
Co-authored-by: Cursor <cursoragent@cursor.com >
v2.3.3
2026-02-25 21:30:50 +08:00
WrBug
4b277eaeab
feat(frontend): 尾盘父级菜单与图标优化
...
- 尾盘策略、尾盘监控归入「尾盘」父级菜单,与跟单交易结构一致
- 菜单图标:父级 LineChart,尾盘策略 RocketOutlined,尾盘监控 DashboardOutlined
- 多语言:新增 menu.cryptoTail(尾盘/尾盤/Crypto Tail)
- 含 CryptoTailMonitor 及后端 DTO/Service 等修改
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-25 21:17:44 +08:00
WrBug
f35bad78d4
feat(i18n): 系统更新功能多语言支持与缺失 key 补全
...
- 新增 systemUpdate 区块(zh-CN/zh-TW/en)覆盖系统更新页与版本提示
- zh-CN 补充 account.walletType
- SystemUpdate 页与 Layout 版本 tag 全部改为 useTranslation,移除硬编码中文
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-25 21:14:59 +08:00
WrBug
0740abcf16
fix(crypto-tail): 监控分时图推送节流与前端采样,避免1s内多条数据导致点过密
...
- 后端: price_change 推送节流,每策略 1s 内最多推送 1 次,其余靠定时 1.5s 推送补足
- 前端: 同周期内分时图追加点时至少间隔 1s 才追加,保证曲线连续且不过密
- 最新价等展示仍实时更新,仅图表序列做采样
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-25 20:01:29 +08:00