1\交易对返回价格
This commit is contained in:
@ -196,7 +196,7 @@ func handleReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
takeProfitOrder.Rate = ext.ReduceTakeProfitRatio.String()
|
||||
//止盈需要累加之前的亏损
|
||||
if totalLossAmountU.Cmp(decimal.Zero) > 0 {
|
||||
percent := totalLossAmountU.Div(totalNum).Div(price).Sub(decimal.NewFromInt(1)).Abs()
|
||||
percent := totalLossAmountU.Div(totalNum).Div(price).Abs()
|
||||
takeProfitOrder.Rate = percent.Mul(decimal.NewFromInt(100)).Add(ext.ReduceTakeProfitRatio).Truncate(2).String()
|
||||
}
|
||||
|
||||
@ -241,7 +241,7 @@ func handleReduceFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
//加仓待触发
|
||||
addPositionOrder := DbModels.LinePreOrder{}
|
||||
|
||||
if err := db.Model(&addPositionOrder).Where("main_id =? AND order_category=3 AND status=0", preOrder.MainId).First(addPositionOrder).Error; err != nil {
|
||||
if err := db.Model(&addPositionOrder).Where("main_id =? AND order_category=3 AND status=0", preOrder.MainId).First(&addPositionOrder).Error; err != nil {
|
||||
logger.Errorf("handleMainReduceFilled 获取加仓单失败,订单号:%s err:%v", preOrder.OrderSn, err)
|
||||
return
|
||||
}
|
||||
@ -301,7 +301,8 @@ func getFuturesPositionAvailableQuantity(db *gorm.DB, apiUserInfo DbModels.LineA
|
||||
if totalNum.Cmp(decimal.Zero) <= 0 {
|
||||
totalNum = utility.StrToDecimal(preOrder.Num)
|
||||
}
|
||||
return totalNum
|
||||
|
||||
return totalNum.Truncate(int32(tradeSet.AmountDigit))
|
||||
}
|
||||
|
||||
// 获取币安合约持仓
|
||||
@ -524,16 +525,16 @@ func createFutPreAddPosition(preOrder *DbModels.LinePreOrder, db *gorm.DB, trade
|
||||
var percentage decimal.Decimal
|
||||
|
||||
if data.Site == "BUY" {
|
||||
percentage = decimal.NewFromInt(1).Add(v.AddPositionPriceRatio.Div(decimal.NewFromInt(100)))
|
||||
} else {
|
||||
percentage = decimal.NewFromInt(1).Sub(v.AddPositionPriceRatio.Div(decimal.NewFromInt(100)))
|
||||
} else {
|
||||
percentage = decimal.NewFromInt(1).Add(v.AddPositionPriceRatio.Div(decimal.NewFromInt(100)))
|
||||
}
|
||||
|
||||
dataPrice := price.Mul(percentage).Truncate(int32(tradeSet.PriceDigit))
|
||||
data.Price = dataPrice.String()
|
||||
|
||||
if v.AddPositionType == 1 {
|
||||
data.Num = preOrder.Num
|
||||
data.Num = utility.StrToDecimal(preOrder.Num).Truncate(int32(tradeSet.AmountDigit)).String()
|
||||
data.BuyPrice = "0"
|
||||
} else {
|
||||
data.BuyPrice = v.AddPositionVal.String()
|
||||
@ -588,6 +589,7 @@ func makeFuturesTakeAndReduce(preOrder *DbModels.LinePreOrder, db *gorm.DB, trad
|
||||
profitOrder := models.LinePreOrder{}
|
||||
copier.Copy(&profitOrder, preOrder)
|
||||
|
||||
profitOrder.Id = 0
|
||||
profitOrder.OrderSn = strconv.FormatInt(snowflakehelper.GetOrderId(), 10)
|
||||
profitOrder.Pid = preOrder.Id
|
||||
profitOrder.OrderType = 1
|
||||
@ -598,7 +600,7 @@ func makeFuturesTakeAndReduce(preOrder *DbModels.LinePreOrder, db *gorm.DB, trad
|
||||
|
||||
//止盈需要累加之前的亏损
|
||||
if totalLossAmountU.Cmp(decimal.Zero) > 0 {
|
||||
percent := totalLossAmountU.Div(num).Div(price).Sub(decimal.NewFromInt(1)).Abs()
|
||||
percent := totalLossAmountU.Div(num).Div(price).Abs()
|
||||
profitOrder.Rate = percent.Mul(decimal.NewFromInt(100)).Add(ext.TakeProfitRatio).Truncate(2).String()
|
||||
}
|
||||
|
||||
@ -617,6 +619,7 @@ func makeFuturesTakeAndReduce(preOrder *DbModels.LinePreOrder, db *gorm.DB, trad
|
||||
stopOrder := models.LinePreOrder{}
|
||||
copier.Copy(&stopOrder, preOrder)
|
||||
|
||||
stopOrder.Id = 0
|
||||
stopOrder.OrderSn = strconv.FormatInt(snowflakehelper.GetOrderId(), 10)
|
||||
stopOrder.Pid = preOrder.Id
|
||||
stopOrder.MainId = ext.MainOrderId
|
||||
|
||||
Reference in New Issue
Block a user