This commit is contained in:
2025-02-14 09:43:49 +08:00
parent 97037adbbb
commit 8fbfcbf285
19 changed files with 755 additions and 288 deletions

View File

@ -97,7 +97,7 @@ func SpotOrderLock(db *gorm.DB, v *dto.PreOrderRedisList, item string, spotApi S
}
preOrderVal, _ := sonic.MarshalString(&v)
if err := spotApi.OrderPlace(db, params); err != nil {
if err := spotApi.OrderPlaceLoop(db, params, 3); err != nil {
log.Error("下单失败", v.Symbol, " err:", err)
err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status =0", preOrder.Id).Updates(map[string]interface{}{"status": "2", "desc": err.Error()}).Error
@ -235,7 +235,7 @@ func SpotStopLossTrigger(db *gorm.DB, stopOrder dto.StopLossRedisList, spotApi S
NewClientOrderId: stopPreOrder.OrderSn,
}
if err := spotApi.OrderPlace(db, params); err != nil {
if err := spotApi.OrderPlaceLoop(db, params, 3); err != nil {
log.Errorf("现货止损挂单失败 id%s err:%v", stopOrder.Id, err)
}
@ -322,15 +322,7 @@ func SpotReduceTrigger(db *gorm.DB, reduceOrder ReduceListItem, spotApi SpotRest
return
}
var err error
for x := 1; x <= 4; x++ {
err = spotApi.CancelOpenOrderByOrderSn(apiInfo, takeOrder.Symbol, takeOrder.OrderSn)
if err == nil {
break
}
}
err := CancelOpenOrderByOrderSnLoop(apiInfo, takeOrder.Symbol, takeOrder.OrderSn)
if err != nil {
log.Error("现货止盈撤单失败", err)
@ -349,7 +341,7 @@ func SpotReduceTrigger(db *gorm.DB, reduceOrder ReduceListItem, spotApi SpotRest
NewClientOrderId: reduceOrder.OrderSn,
}
if err := spotApi.OrderPlace(db, params); err != nil {
if err := spotApi.OrderPlaceLoop(db, params, 3); err != nil {
log.Errorf("现货减仓挂单失败 id%s err:%v", reduceOrder.Id, err)
}
@ -427,6 +419,13 @@ func SpotAddPositionTrigger(db *gorm.DB, v *AddPositionList, item string, spotAp
return
}
//判断是否有已触发交易对
count, _ := GetSymbolTriggerCount(db, v.Symbol, 2)
if count > 0 {
return
}
price := v.Price
num, _ := decimal.NewFromString(preOrder.Num)
@ -441,12 +440,12 @@ func SpotAddPositionTrigger(db *gorm.DB, v *AddPositionList, item string, spotAp
Type: preOrder.MainOrderType,
TimeInForce: "GTC",
Price: price,
Quantity: num,
Quantity: num.Truncate(int32(tradeSet.AmountDigit)),
NewClientOrderId: v.OrderSn,
}
preOrderVal, _ := sonic.MarshalString(&v)
if err := spotApi.OrderPlace(db, params); err != nil {
if err := spotApi.OrderPlaceLoop(db, params, 3); err != nil {
log.Error("下单失败", v.Symbol, " err:", err)
err := db.Model(&DbModels.LinePreOrder{}).Where("id =? AND status =0", preOrder.Id).Updates(map[string]interface{}{"status": "2", "desc": err.Error()}).Error