mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-17 17:34:39 +08:00
refactor: implement Code Review suggestions for PR #231
- Delete unused updatePositionSnapshots function (16 lines) - Clear position snapshots on GetPositions error to prevent false positives - Improve auto-close detection reliability - Better error handling for snapshot updates
This commit is contained in:
@@ -485,8 +485,8 @@ func (at *AutoTrader) runCycle() error {
|
|||||||
// ctx.Positions 是周期开始时的持仓,不反映本周期的变化
|
// ctx.Positions 是周期开始时的持仓,不反映本周期的变化
|
||||||
currentPositionsAfterExecution, err := at.trader.GetPositions()
|
currentPositionsAfterExecution, err := at.trader.GetPositions()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("⚠ 更新持仓快照失败,无法获取当前持仓: %v", err)
|
log.Printf("⚠ 更新持仓快照失败,清空快照以避免误报: %v", err)
|
||||||
// 即使失败也不影响主流程,下一周期可能会有误报但不会崩溃
|
at.lastPositions = make(map[string]*PositionSnapshot) // 清空快照防止误报
|
||||||
} else {
|
} else {
|
||||||
// 将原始持仓数据转换为快照格式
|
// 将原始持仓数据转换为快照格式
|
||||||
snapshots := make([]PositionSnapshot, 0, len(currentPositionsAfterExecution))
|
snapshots := make([]PositionSnapshot, 0, len(currentPositionsAfterExecution))
|
||||||
@@ -1470,19 +1470,3 @@ func (at *AutoTrader) detectAutoClosedPositions(currentPositions []decision.Posi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// updatePositionSnapshots 更新持仓快照(用于下一周期检测自动平仓)
|
// updatePositionSnapshots 更新持仓快照(用于下一周期检测自动平仓)
|
||||||
func (at *AutoTrader) updatePositionSnapshots(currentPositions []decision.PositionInfo) {
|
|
||||||
// 清空旧的快照
|
|
||||||
at.lastPositions = make(map[string]*PositionSnapshot)
|
|
||||||
|
|
||||||
// 记录当前所有持仓
|
|
||||||
for _, pos := range currentPositions {
|
|
||||||
posKey := pos.Symbol + "_" + pos.Side
|
|
||||||
at.lastPositions[posKey] = &PositionSnapshot{
|
|
||||||
Symbol: pos.Symbol,
|
|
||||||
Side: pos.Side,
|
|
||||||
Quantity: pos.Quantity,
|
|
||||||
EntryPrice: pos.EntryPrice,
|
|
||||||
Leverage: pos.Leverage,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user