1、累计亏损
This commit is contained in:
@ -56,20 +56,31 @@ func (e *BinancePositionManagement) SavePosition(data *positiondto.PositionAddRe
|
||||
}
|
||||
|
||||
var totalLoss decimal.Decimal
|
||||
|
||||
if result.LastPrice.Cmp(decimal.Zero) > 0 {
|
||||
switch {
|
||||
//多 买入
|
||||
case data.PositionSide == "LONG":
|
||||
totalLoss = result.LastPrice.Sub(data.Price).Abs().Mul(result.Quantity)
|
||||
totalLoss = result.LastPrice.Sub(data.Price).Mul(result.Quantity)
|
||||
|
||||
if data.Price.Cmp(result.LastPrice) < 0 {
|
||||
result.LastPrice = data.Price
|
||||
}
|
||||
case data.PositionSide == "SHORT":
|
||||
totalLoss = data.Price.Sub(result.LastPrice).Abs().Mul(result.Quantity)
|
||||
totalLoss = data.Price.Sub(result.LastPrice).Mul(result.Quantity)
|
||||
|
||||
if data.Price.Cmp(result.LastPrice) > 0 {
|
||||
result.LastPrice = data.Price
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//默认没有金额的时候
|
||||
result.LastPrice = data.Price
|
||||
}
|
||||
|
||||
if totalLoss.Cmp(decimal.Zero) > 0 {
|
||||
result.TotalLoss = result.TotalLoss.Add(totalLoss)
|
||||
}
|
||||
|
||||
result.LastPrice = data.Price
|
||||
result.TotalLoss = result.TotalLoss.Add(totalLoss)
|
||||
result.Quantity = data.Quantity.Add(result.Quantity)
|
||||
|
||||
dataVal, _ := sonic.MarshalString(result)
|
||||
|
||||
Reference in New Issue
Block a user