xmaker: update position metrics when restored
This commit is contained in:
parent
a83f378913
commit
ae6de98a8e
|
@ -1255,8 +1255,12 @@ func (s *Strategy) CrossRun(
|
|||
s.Position = types.NewPositionFromMarket(s.makerMarket)
|
||||
s.Position.Strategy = ID
|
||||
s.Position.StrategyInstanceID = instanceID
|
||||
} else {
|
||||
s.Position.Strategy = ID
|
||||
s.Position.StrategyInstanceID = instanceID
|
||||
}
|
||||
|
||||
s.Position.UpdateMetrics()
|
||||
bbgo.Notify("xmaker: %s position is restored", s.Symbol, s.Position)
|
||||
|
||||
if s.ProfitStats == nil {
|
||||
|
|
|
@ -656,6 +656,12 @@ func (p *Position) AddTrade(td Trade) (profit fixedpoint.Value, netProfit fixedp
|
|||
return fixedpoint.Zero, fixedpoint.Zero, false
|
||||
}
|
||||
|
||||
func (p *Position) UpdateMetrics() {
|
||||
p.Lock()
|
||||
p.updateMetrics()
|
||||
p.Unlock()
|
||||
}
|
||||
|
||||
func (p *Position) updateMetrics() {
|
||||
// update the position metrics only if the position defines the strategy ID
|
||||
if p.StrategyInstanceID == "" || p.Strategy == "" {
|
||||
|
|
Loading…
Reference in New Issue
Block a user