Просмотр исходного кода

期货头寸持仓均价计算改为根据价格小数位“去尾法"

zou.yingbin 3 лет назад
Родитель
Сommit
e58fb13ae8
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      controllers/order/order.go

+ 3 - 2
controllers/order/order.go

@@ -218,10 +218,11 @@ func GetTradePosition(accIds string, tradeModes string) (rst []QueryTradePositio
 				tradePosition.EnableQTY = c.CovertQty(v.Buycurpositionqty - v.Buyfrozenqty - v.Buyotherfrozenqty)
 				// 计算持仓均价
 				averagePrice := tradePosition.CurHolderAmount / float64(tradePosition.CurPositionQTY) / tradePosition.AgreeUnit
-				//tradePosition.AveragePrice, _ = strconv.ParseFloat(utils.FormatFloat(averagePrice, int(v.Decimalplace)), 64)
+
 				// #96004 改为固定3位小数
 				// #3524 又改为跟商品价格小数位走 2022.04.07
-				tradePosition.AveragePrice, _ = decimal.NewFromFloat(averagePrice).Round(v.QTYDECIMALPLACE).Float64()
+				// 运维提出, 不要四舍五入, 改为去尾法 2022.04.26
+				tradePosition.AveragePrice, _ = decimal.NewFromFloat(averagePrice).Truncate(v.QTYDECIMALPLACE).Float64()
 				tradePosition.PositionPL, tradePosition.MarketAmount, tradePosition.LastPrice = fCalcPL(tradePosition.GoodsCode, tradePosition.BuyOrSell, tradePosition.CurPositionQTY,
 					tradePosition.AveragePrice, tradePosition.AgreeUnit, tradePosition.DecimalPlace)
 				if tradePosition.CurHolderAmount > 1e-10 {