fix(decision): align Prompt with validation for min position size and leverage - #99
Merged
Merged
Conversation
Fixes #94 币安 API 限制:STOP 和 TAKE_PROFIT(限价订单)不支持 closePosition=true 参数, 只有 STOP_MARKET 和 TAKE_PROFIT_MARKET 才支持。发送不兼容的参数组合会导致: - 错误代码: -4136 - 错误信息: "Target strategy invalid for orderType STOP,closePosition true" 修改内容: - trader/binance_futures.go: 移除 SetStopLoss 和 SetTakeProfit 中的 ClosePosition(true) - trader/binance_futures_test.go: 改进 mock server 模拟 -4136 错误 - trader/binance_futures_test.go: 新增3个专项测试验证修复 现在使用: - STOP + Price + Quantity(限价止损) - TAKE_PROFIT + Price + Quantity(限价止盈) 测试覆盖: - TestSetStopLoss_NoClosePosition: 验证不发送 closePosition 参数 - TestSetTakeProfit_NoClosePosition: 验证不发送 closePosition 参数 - TestSetStopLoss_WithClosePositionWouldFail: 证明旧代码会失败
重构测试代码,消除重复: - 提取 setupMockServerWithParamCapture helper 函数 - 提取 createTestTrader helper 函数 - 合并 SetStopLoss 和 SetTakeProfit 测试为 table-driven test 代码减少:224 行 → 171 行(减少 53 行) 重复率降低:65.1% → 预计 <15% 测试覆盖保持不变
修复 SonarCloud 检测的问题: 1. 定义常量替代重复的字符串字面量 - binanceOrderPath = "/fapi/v1/order" - binanceExchangeInfoPath = "/fapi/v1/exchangeInfo" 2. 重命名测试函数符合命名规范 - TestStopLossAndTakeProfit_NoClosePosition → TestStopLossAndTakeProfitNoClosePosition - TestSetStopLoss_WithClosePositionWouldFail → TestSetStopLossWithClosePositionWouldFail 所有测试仍然通过,功能不变
… leverage - Add getMinPositionSize(exchange) function for consistent min position size: - Binance: 100 USDT - Hyperliquid: 12 USDT - Aster: 10 USDT - Update Prompt to display exchange-specific minimum position size - Change leverage validation from auto-fallback to rejection (match Prompt wording) - Add emphasis on position limit constraints in Prompt This fixes the contract mismatch where Prompt said "≥12 USDT for all" but validation used different values per exchange.
🔧 已自动应用专用模板 | Auto-Applied Template检测到您的PR主要包含 backend 相关的变更,系统已自动为您应用相应的模板。 Detected that your PR primarily contains backend changes. The appropriate template has been automatically applied. 文件统计 | File Statistics
已应用模板 | Applied Template ✨ 您现在可以直接在PR描述中填写相关信息了! ✨ You can now fill in the relevant information in the PR description! |
Collaborator
Author
|
@claude 用中文审查下 |
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Pull Request - Backend | 后端 PR
📝 Description | 描述
English: | 中文:
🎯 Type of Change | 变更类型
🔗 Related Issues | 相关 Issue
📋 Changes Made | 具体变更
English: | 中文:
🧪 Testing | 测试
Test Environment | 测试环境
Manual Testing | 手动测试
Test Results | 测试结果
🔒 Security Considerations | 安全考虑
⚡ Performance Impact | 性能影响
If impacted, explain | 如果受影响,请说明:
✅ Checklist | 检查清单
Code Quality | 代码质量
go build)go fmt| 已运行go fmtDocumentation | 文档
Git
devbranch | 已 rebase 到最新dev分支📚 Additional Notes | 补充说明
English: | 中文:
By submitting this PR, I confirm | 提交此 PR,我确认:
🌟 Thank you for your contribution! | 感谢你的贡献!