1代码生成
This commit is contained in:
@ -152,10 +152,10 @@ func triggerHedgeOrder(order DbModels.LinePreOrder, db *gorm.DB, preOrder *DbMod
|
||||
}
|
||||
|
||||
// 检查对冲单购买金额
|
||||
if order.HedgeBuyTotal.Cmp(decimal.Zero) <= 0 {
|
||||
logger.Errorf("止损单成交 对冲单购买金额为0 订单号:%s", order.OrderSn)
|
||||
return true
|
||||
}
|
||||
// if order.HedgeBuyTotal.Cmp(decimal.Zero) <= 0 {
|
||||
// logger.Errorf("止损单成交 对冲单购买金额为0 订单号:%s", order.OrderSn)
|
||||
// return true
|
||||
// }
|
||||
|
||||
// 获取系统设置
|
||||
setting, err := GetSystemSetting(db)
|
||||
@ -200,12 +200,12 @@ func triggerHedgeOrder(order DbModels.LinePreOrder, db *gorm.DB, preOrder *DbMod
|
||||
|
||||
// 创建对冲订单
|
||||
func createHedgeOrders(order DbModels.LinePreOrder, price decimal.Decimal, tradeSet *models2.TradeSet, apiInfo *DbModels.LineApiUser, setting *DbModels.LineSystemSetting) (DbModels.LinePreOrder, DbModels.LinePreOrder, DbModels.LinePreOrder) {
|
||||
buyPrice := order.HedgeBuyTotal.String()
|
||||
// buyPrice := order.HedgeBuyTotal.String()
|
||||
|
||||
if order.HedgeBuyType == 1 {
|
||||
mainTotal := utility.StrToDecimal(order.BuyPrice)
|
||||
buyPrice = mainTotal.Mul(order.HedgeBuyTotal).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
}
|
||||
// if order.HedgeBuyType == 1 {
|
||||
// mainTotal := utility.StrToDecimal(order.BuyPrice)
|
||||
// buyPrice = mainTotal.Mul(order.HedgeBuyTotal).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
// }
|
||||
|
||||
hedgeOrder := DbModels.LinePreOrder{
|
||||
ApiId: apiInfo.Id,
|
||||
@ -216,12 +216,12 @@ func createHedgeOrders(order DbModels.LinePreOrder, price decimal.Decimal, trade
|
||||
SignPrice: order.Price,
|
||||
SignPriceType: "new",
|
||||
Rate: "0",
|
||||
BuyPrice: buyPrice,
|
||||
// BuyPrice: buyPrice,
|
||||
OrderCategory: 2,
|
||||
OrderSn: utility.Int64ToString(snowflakehelper.GetOrderId()),
|
||||
OrderType: 0,
|
||||
CoverType: 0,
|
||||
MainOrderType: order.HedgeOrderType,
|
||||
// MainOrderType: order.HedgeOrderType,
|
||||
}
|
||||
|
||||
hedgeStoplossOrder := order
|
||||
@ -238,30 +238,30 @@ func createHedgeOrders(order DbModels.LinePreOrder, price decimal.Decimal, trade
|
||||
}
|
||||
|
||||
// 计算止盈止损价格
|
||||
if hedgeOrder.Site == "BUY" {
|
||||
hedgeTakeProfitOrder.Price = price.Mul(decimal.NewFromInt(1).Add(order.HedgeTakeProfit.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
hedgeStoplossOrder.Price = price.Mul(decimal.NewFromInt(1).Sub(order.HedgeStopLoss.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
} else {
|
||||
hedgeTakeProfitOrder.Price = price.Mul(decimal.NewFromInt(1).Sub(order.HedgeTakeProfit.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
hedgeStoplossOrder.Price = price.Mul(decimal.NewFromInt(1).Add(order.HedgeStopLoss.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
}
|
||||
// if hedgeOrder.Site == "BUY" {
|
||||
// hedgeTakeProfitOrder.Price = price.Mul(decimal.NewFromInt(1).Add(order.HedgeTakeProfit.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
// hedgeStoplossOrder.Price = price.Mul(decimal.NewFromInt(1).Sub(order.HedgeStopLoss.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
// } else {
|
||||
// hedgeTakeProfitOrder.Price = price.Mul(decimal.NewFromInt(1).Sub(order.HedgeTakeProfit.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
// hedgeStoplossOrder.Price = price.Mul(decimal.NewFromInt(1).Add(order.HedgeStopLoss.Div(decimal.NewFromInt(100)))).Truncate(int32(tradeSet.PriceDigit)).String()
|
||||
// }
|
||||
|
||||
if hedgeOrder.MainOrderType == "LIMIT" {
|
||||
coverRate := utility.StrToDecimal(setting.CoverOrderTypeBRate)
|
||||
price = price.Mul(decimal.NewFromInt(1).Add(coverRate)).Truncate(int32(tradeSet.PriceDigit))
|
||||
}
|
||||
|
||||
num := order.HedgeBuyTotal.Div(price).Truncate(int32(tradeSet.AmountDigit))
|
||||
// num := order.HedgeBuyTotal.Div(price).Truncate(int32(tradeSet.AmountDigit))
|
||||
hedgeOrder.Price = price.String()
|
||||
hedgeOrder.Num = num.String()
|
||||
// hedgeOrder.Num = num.String()
|
||||
|
||||
hedgeStoplossOrder.OrderSn = utility.Int64ToString(snowflakehelper.GetOrderId())
|
||||
hedgeStoplossOrder.Rate = order.HedgeStopLoss.String()
|
||||
hedgeStoplossOrder.Num = num.String()
|
||||
// hedgeStoplossOrder.Rate = order.HedgeStopLoss.String()
|
||||
// hedgeStoplossOrder.Num = num.String()
|
||||
|
||||
hedgeTakeProfitOrder.OrderSn = utility.Int64ToString(snowflakehelper.GetOrderId())
|
||||
hedgeTakeProfitOrder.Rate = order.HedgeTakeProfit.String()
|
||||
hedgeTakeProfitOrder.Num = num.String()
|
||||
// hedgeTakeProfitOrder.Rate = order.HedgeTakeProfit.String()
|
||||
// hedgeTakeProfitOrder.Num = num.String()
|
||||
|
||||
return hedgeOrder, hedgeStoplossOrder, hedgeTakeProfitOrder
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user