1
This commit is contained in:
@ -254,6 +254,12 @@ func FuturesReduceTrigger(db *gorm.DB, reduceOrder ReduceListItem, futApi FutRes
|
||||
|
||||
if err := futApi.ClosePositionLoop(reduceOrder.Symbol, reduceOrder.OrderSn, num, reduceOrder.Side, positionSide, apiInfo, "LIMIT", "0", price, 3); err != nil {
|
||||
log.Errorf("合约减仓挂单失败 id:%s err:%v", reduceOrder.Id, err)
|
||||
|
||||
if err2 := db.Model(&DbModels.LinePreOrder{}).
|
||||
Where("id = ? AND status =0", reduceOrder.Id).
|
||||
Updates(map[string]interface{}{"status": 2, "desc": err.Error()}).Error; err2 != nil {
|
||||
log.Errorf("合约减仓更新状态失败 id:%s err:%v", reduceOrder.Id, err2)
|
||||
}
|
||||
}
|
||||
|
||||
if _, err := helper.DefaultRedis.LRem(key, item); err != nil {
|
||||
|
||||
@ -158,6 +158,7 @@ func handleReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
}
|
||||
|
||||
totalNum := getFuturesPositionAvailableQuantity(db, apiUserInfo, preOrder, tradeSet)
|
||||
totalNum = totalNum.Truncate(int32(tradeSet.AmountDigit))
|
||||
futApi := FutRestApi{}
|
||||
for _, v := range orders {
|
||||
if v.OrderType == 1 {
|
||||
@ -383,10 +384,10 @@ func handleFutMainOrderFilled(db *gorm.DB, preOrder *models.LinePreOrder) {
|
||||
|
||||
futApi := FutRestApi{}
|
||||
num := getFuturesPositionAvailableQuantity(db, apiInfo, preOrder, tradeSet)
|
||||
num = num.Truncate(int32(tradeSet.AmountDigit))
|
||||
|
||||
for _, order := range orders {
|
||||
price := utility.StrToDecimal(order.Price).Truncate(int32(tradeSet.PriceDigit))
|
||||
num = num.Truncate(int32(tradeSet.AmountDigit))
|
||||
order.Price = price.String()
|
||||
|
||||
if order.OrderType == 4 {
|
||||
|
||||
@ -217,10 +217,10 @@ func SpotStopLossTrigger(db *gorm.DB, stopOrder dto.StopLossRedisList, spotApi S
|
||||
for x := 1; x <= 4; x++ {
|
||||
err = spotApi.CancelOpenOrderByOrderSn(apiInfo, takeOrder.Symbol, takeOrder.OrderSn)
|
||||
|
||||
if err == nil {
|
||||
if err == nil || strings.Contains(err.Error(), "该交易对没有订单") {
|
||||
err = nil
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
@ -350,6 +350,12 @@ func SpotReduceTrigger(db *gorm.DB, reduceOrder ReduceListItem, spotApi SpotRest
|
||||
|
||||
if err := spotApi.OrderPlaceLoop(db, params, 3); err != nil {
|
||||
log.Errorf("现货减仓挂单失败 id:%s err:%v", reduceOrder.Id, err)
|
||||
|
||||
if err2 := db.Model(&DbModels.LinePreOrder{}).
|
||||
Where("id =? AND status =0", reduceOrder.Id).
|
||||
Updates(map[string]interface{}{"status": 2, "desc": err.Error()}).Error; err2 != nil {
|
||||
log.Errorf("修改现货减仓状态失败 id:%s err:%v", reduceOrder.Id, err2)
|
||||
}
|
||||
}
|
||||
|
||||
if _, err := helper.DefaultRedis.LRem(key, item); err != nil {
|
||||
|
||||
@ -527,7 +527,7 @@ func processTakeProfitAndStopLossOrders(db *gorm.DB, preOrder *models.LinePreOrd
|
||||
num := getSpotPositionAvailableQuantity(db, apiInfo, preOrder, tradeSet)
|
||||
|
||||
if err := db.Model(&DbModels.LinePreOrder{}).
|
||||
Where("pid = ? AND order_category = 1 AND order_type > 0 AND status = '0' ", preOrder.Id).
|
||||
Where("pid = ? AND order_type > 0 AND status = '0' ", preOrder.Id).
|
||||
Find(&orders).Error; err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
logger.Error("订单回调查询止盈止损单失败:", err)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user