@ -556,25 +556,13 @@ func (ct *Cointop) GetPortfolioSlice() []*Coin {
return sliced
return sliced
}
}
OUTER :
for _ , p := range ct . State . portfolio . Entries {
for i := range ct . State . allCoins {
coinIfc , _ := ct . State . allCoinsSlugMap . Load ( p . Coin )
coin := ct . State . allCoins [ i ]
coin , ok := coinIfc . ( * Coin )
p , isNew := ct . PortfolioEntry ( coin )
if ! ok {
if isNew {
log . Errorf ( "Could not find coin %s" , p . Coin )
continue
continue
}
}
// check not already found
updateSlice := - 1
for j := range sliced {
if coin . Symbol == sliced [ j ] . Symbol {
if coin . Rank >= sliced [ j ] . Rank {
continue OUTER // skip updates from lower-ranked coins
}
updateSlice = j // update this later
break
}
}
coin . Holdings = p . Holdings
coin . Holdings = p . Holdings
balance := coin . Price * p . Holdings
balance := coin . Price * p . Holdings
balancestr := fmt . Sprintf ( "%.2f" , balance )
balancestr := fmt . Sprintf ( "%.2f" , balance )
@ -583,12 +571,7 @@ OUTER:
}
}
balance , _ = strconv . ParseFloat ( balancestr , 64 )
balance , _ = strconv . ParseFloat ( balancestr , 64 )
coin . Balance = balance
coin . Balance = balance
if updateSlice == - 1 {
sliced = append ( sliced , coin )
sliced = append ( sliced , coin )
} else {
sliced [ updateSlice ] = coin
}
}
}
sort . Slice ( sliced , func ( i , j int ) bool {
sort . Slice ( sliced , func ( i , j int ) bool {