1、累计亏损

This commit is contained in:
2025-03-03 17:35:41 +08:00
parent a1a390aa9c
commit ca92638554
5 changed files with 65 additions and 28 deletions

View File

@ -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)