This commit is contained in:
2025-03-12 09:00:45 +08:00
parent aee6dd9883
commit 0352da5616
6 changed files with 57 additions and 24 deletions

View File

@ -130,10 +130,13 @@ func handleReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
logger.Errorf("handleReduceFilled 获取交易对设置失败,订单号:%s", preOrder.OrderSn)
return
}
rate := utility.StringAsFloat(preOrder.Rate)
orderExt := models.LinePreOrderExt{}
db.Model(&orderExt).Where("order_id =?", preOrder.Id).First(&orderExt)
// rate := utility.StringAsFloat(orderExt.AddPositionVal)
// 100%减仓 终止流程
if rate >= 100 {
if orderExt.AddPositionVal.Cmp(decimal.NewFromInt(100)) >= 0 {
//缓存
removeFutLossAndAddPosition(preOrder.MainId, preOrder.OrderSn)
removePosition(db, preOrder)
@ -152,7 +155,6 @@ func handleReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
return
}
orderExt := models.LinePreOrderExt{}
totalNum := getFuturesPositionAvailableQuantity(db, apiUserInfo, preOrder, tradeSet)
price := utility.StrToDecimal(preOrder.Price).Truncate(int32(tradeSet.PriceDigit))
futApi := FutRestApi{}
@ -162,8 +164,6 @@ func handleReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
mainId = preOrder.MainId
}
db.Model(&orderExt).Where("order_id =?", preOrder.Pid).First(&orderExt)
for _, v := range orders {
if v.OrderType == 1 {
//亏损大于0 重新计算比例

View File

@ -174,14 +174,15 @@ func handleMainReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
orderExt := models.LinePreOrderExt{}
positionData := savePosition(db, preOrder)
orders := make([]models.LinePreOrder, 0)
rate := utility.StringAsFloat(preOrder.Rate)
// rate := utility.StringAsFloat(preOrder.Rate)
if err := db.Model(&DbModels.LinePreOrderStatus{}).Where("order_id =? ", preOrder.MainId).Update("reduce_status", 1).Error; err != nil {
logger.Errorf("handleMainReduceFilled 更新主单减仓状态失败,订单号:%s", preOrder.OrderSn)
}
db.Model(&orderExt).Where("order_id =?", preOrder.Id).Find(&orderExt)
// 100%减仓 终止流程
if rate >= 100 {
if orderExt.AddPositionVal.Cmp(decimal.NewFromInt(100)) >= 0 {
//缓存
removeSpotLossAndAddPosition(preOrder.MainId, preOrder.OrderSn)
removePosition(db, preOrder)
@ -193,7 +194,6 @@ func handleMainReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
return
}
db.Model(&orderExt).Where("order_id =?", preOrder.Pid).Find(&orderExt)
totalNum := getSpotPositionAvailableQuantity(db, apiUserInfo, preOrder, tradeSet) //getSpotTotalNum(apiUserInfo, preOrder, tradeSet)
totalNum = totalNum.Mul(decimal.NewFromFloat(0.998)).Truncate(int32(tradeSet.AmountDigit))
price := utility.StrToDecimal(preOrder.Price)