1、子订单增加过期时间

This commit is contained in:
2025-03-19 09:38:11 +08:00
parent cb3d4d0add
commit 7c246e4496
6 changed files with 110 additions and 3 deletions

View File

@ -12,6 +12,7 @@ type LinePreOrderExt struct {
MainOrderId int `json:"mainOrderId" gorm:"type:bigint;comment:主单id"`
OrderId int `json:"orderId" gorm:"type:bigint;comment:订单id"`
AddType int `json:"addType" gorm:"type:tinyint;comment:类型 1-加仓 2-减仓"`
ExpirateHour int `json:"expirateHour" gorm:"type:int;comment:过期时间(0=永久有效)"`
OrderType string `json:"orderType" gorm:"type:varchar(20);comment:订单类型 LIMIT-限价 MARKET-市价"`
PriceRatio decimal.Decimal `json:"priceRatio" gorm:"type:decimal(10,2);comment: (加仓/减仓)触发价格百分比"`
AddPositionType int `json:"addPositionType" gorm:"type:int;comment:(加仓/减仓)类型 1-百分比 2-实际金额"`

View File

@ -48,6 +48,7 @@ type LineAddPreOrderExtReq struct {
TpTpPriceRatio decimal.Decimal `json:"tpTpPriceRatio" comment:"止盈后止盈价格百分比"`
TpSlPriceRatio decimal.Decimal `json:"tpSlPriceRatio" comment:"止盈后止损价格百分比"`
ReTakeProfitRatio decimal.Decimal `json:"reTakeProfitRatio" comment:"亏损回本止盈百分比"`
ExpirateHour int `json:"expirateHour" comment:"过期时间小时"`
}
type LinePreOrderExtInsertReq struct {

View File

@ -582,6 +582,7 @@ func (e *LinePreOrder) AddPreOrder(req *dto.LineAddPreOrderReq, p *actions.DataP
TpSlPriceRatio: addPosition.TpSlPriceRatio,
AddPositionType: addPosition.AddPositionType,
AddPositionVal: addPosition.AddPositionVal,
ExpirateHour: addPosition.ExpirateHour,
}
mainParam.AddType = addPosition.AddType
@ -809,6 +810,13 @@ func createPreAddPosition(preOrder *models.LinePreOrder, v models.LinePreOrderEx
percentage = decimal.NewFromInt(1).Add(v.PriceRatio.Div(decimal.NewFromInt(100)))
}
//过期时间
if v.ExpirateHour <= 0 {
data.ExpireTime = time.Now().AddDate(2, 0, 0)
} else {
data.ExpireTime = time.Now().Add(time.Hour * time.Duration(v.ExpirateHour))
}
dataPrice := price.Mul(percentage).Truncate(int32(tradeSet.PriceDigit))
data.Price = dataPrice.String()
@ -854,6 +862,13 @@ func createPreReduceOrder(preOrder *models.LinePreOrder, ext models.LinePreOrder
stopOrder.Site = "BUY"
}
//过期时间
if ext.ExpirateHour <= 0 {
stopOrder.ExpireTime = time.Now().AddDate(2, 0, 0)
} else {
stopOrder.ExpireTime = time.Now().Add(time.Hour * time.Duration(ext.ExpirateHour))
}
binanceservice.SetPrice(&stopOrder, preOrder, tradeSet)
}