-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
vibe coding修了一下
🛠️ 解决方案:引入“预期净持仓”逻辑
为了彻底解决这个问题,我已经在 trader/auto_trader.go 中重构了风控检查逻辑。
修复核心逻辑:
- 在循环内追踪成功指令:在每个交易周期(Cycle)内,增加一个 successfulClosesInCycle 计数器。
- 逻辑预减免:当系统执行“先平后开”时,如果平仓指令发送成功,计数器加 1。
- 计算净持仓(Net Position):后续执行开仓风控检查时,不再死扣 GetPositions() 返回的陈旧数据,而是使用:
净持仓数 = 当前实际持仓数 - 本周期内已成功发送平仓指令的数量 - 容错处理:如果由于 API 延迟 GetPositions() 还没更新,预减逻辑会自动抵消掉这部分滞后,确保开仓指令能顺利发给交易所。
💻 代码变更点
enforceMaxPositions:现在接受一个 successfulClosesInCycle 参数,用于计算 netPositionCount。runCycle:在循环执行决策时,实时更新该计数器并传递给执行函数。executeOpenLong/ShortWithRecord:更新了函数签名以支持该逻辑。
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working