From b078dbd2f67cd1483f0207e0147f537710fdf679 Mon Sep 17 00:00:00 2001 From: Simon Roberts Date: Thu, 19 Aug 2021 11:54:02 +1000 Subject: [PATCH] Use the highest-rank coin to calculate PortfolioSlice --- cointop/portfolio.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cointop/portfolio.go b/cointop/portfolio.go index d46b980..93a89dc 100644 --- a/cointop/portfolio.go +++ b/cointop/portfolio.go @@ -537,9 +537,14 @@ OUTER: continue } // check not already found + updateSlice := -1 for j := range sliced { if coin.Symbol == sliced[j].Symbol { - continue OUTER + if coin.Rank >= sliced[j].Rank { + continue OUTER // skip updates from lower-ranked coins + } + updateSlice = j // update this later + break } } @@ -551,7 +556,12 @@ OUTER: } balance, _ = strconv.ParseFloat(balancestr, 64) coin.Balance = balance - sliced = append(sliced, coin) + if updateSlice == -1 { + sliced = append(sliced, coin) + } else { + sliced[updateSlice] = coin + } + } sort.Slice(sliced, func(i, j int) bool {