1
This commit is contained in:
@ -265,6 +265,11 @@ func (req *LinePreOrderAddPositionReq) Valid() error {
|
||||
return errors.New("减仓后止盈百分比不能为空")
|
||||
}
|
||||
|
||||
//减仓100%
|
||||
if req.ReduceNumRatio.Cmp(decimal.NewFromInt(100)) == 0 {
|
||||
return errors.New("减仓数量百分百,后面的节点不需要添加")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -281,7 +286,12 @@ func (req LineAddPreOrderReq) Valid() error {
|
||||
return errors.New("主单减仓价格百分比错误")
|
||||
}
|
||||
|
||||
for _, v := range req.Ext {
|
||||
//减仓100%
|
||||
if req.ReduceNumRatio.Cmp(decimal.NewFromInt(100)) == 0 {
|
||||
return errors.New("减仓数量百分百,后面的节点不需要添加")
|
||||
}
|
||||
|
||||
for index, v := range req.Ext {
|
||||
name := "加仓"
|
||||
|
||||
if v.AddType < 1 || v.AddType > 2 {
|
||||
@ -292,6 +302,10 @@ func (req LineAddPreOrderReq) Valid() error {
|
||||
name = "减仓"
|
||||
}
|
||||
|
||||
if v.AddType == 2 && v.AddPositionVal.Cmp(decimal.NewFromInt(100)) >= 0 && index < len(req.Ext)-1 {
|
||||
return fmt.Errorf("减仓数量百分百,第%v节点 后面的节点不需要添加", index+1)
|
||||
}
|
||||
|
||||
if v.AddPositionVal.IsZero() {
|
||||
return fmt.Errorf("%s单数量不能为空", name)
|
||||
}
|
||||
@ -308,12 +322,6 @@ func (req LineAddPreOrderReq) Valid() error {
|
||||
(v.TpTpPriceRatio.IsZero() || v.TpTpPriceRatio.Cmp(decimal.NewFromInt(100)) > 0) {
|
||||
return errors.New("止盈后止盈价格不正确")
|
||||
}
|
||||
|
||||
// if v.AddType == 1 && v.TakeProfitNumRatio.Cmp(decimal.NewFromInt(100)) < 0 &&
|
||||
// v.TakeProfitNumRatio.Cmp(decimal.Zero) > 0 &&
|
||||
// (v.TpSlPriceRatio.Cmp(decimal.Zero) <= 0 || v.TpSlPriceRatio.Cmp(decimal.NewFromInt(100)) > 0) {
|
||||
// return errors.New("止盈后止损价格不正确")
|
||||
// }
|
||||
}
|
||||
|
||||
return nil
|
||||
@ -419,7 +427,12 @@ func (req LineBatchAddPreOrderReq) CheckParams() error {
|
||||
return errors.New("主单减仓价格百分比错误")
|
||||
}
|
||||
|
||||
for _, v := range req.Ext {
|
||||
//减仓100%
|
||||
if req.ReduceNumRatio.Cmp(decimal.NewFromInt(100)) == 0 {
|
||||
return errors.New("减仓数量百分百,后面的节点不需要添加")
|
||||
}
|
||||
|
||||
for index, v := range req.Ext {
|
||||
name := "加仓"
|
||||
|
||||
if v.AddType < 1 || v.AddType > 2 {
|
||||
@ -430,6 +443,10 @@ func (req LineBatchAddPreOrderReq) CheckParams() error {
|
||||
name = "减仓"
|
||||
}
|
||||
|
||||
if v.AddType == 2 && v.AddPositionVal.Cmp(decimal.NewFromInt(100)) >= 0 && index < len(req.Ext)-1 {
|
||||
return fmt.Errorf("减仓数量百分百,第%v节点 后面的节点不需要添加", index+1)
|
||||
}
|
||||
|
||||
if v.AddPositionVal.IsZero() {
|
||||
return fmt.Errorf("%s单数量不能为空", name)
|
||||
}
|
||||
|
||||
@ -539,8 +539,9 @@ func (e *LinePreOrder) AddPreOrder(req *dto.LineAddPreOrderReq, p *actions.DataP
|
||||
defultExt2.TotalBefore = defultExt.TotalAfter
|
||||
|
||||
// if decimal.NewFromInt(100).Sub(req.ReduceNumRatio).Cmp(decimal.Zero) > 0 {
|
||||
defultExt2.TotalAfter = mainAmount.Mul(decimal.NewFromInt(100).Sub(utility.SafeDiv(req.ReduceNumRatio, decimal.NewFromInt(100)))).Truncate(int32(tradeSet.AmountDigit))
|
||||
defultExt2.ReTakeRatio = utility.SafeDiv(req.ReducePriceRatio, utility.SafeDiv(decimal.NewFromInt(100).Sub(req.ReduceNumRatio), decimal.NewFromInt(100))).Truncate(2)
|
||||
default2NumPercent := utility.SafeDiv(decimal.NewFromInt(100).Sub(req.ReduceNumRatio), decimal.NewFromInt(100))
|
||||
defultExt2.TotalAfter = mainAmount.Mul(default2NumPercent).Truncate(int32(tradeSet.AmountDigit))
|
||||
defultExt2.ReTakeRatio = utility.SafeDiv(req.ReducePriceRatio, default2NumPercent).Truncate(2)
|
||||
|
||||
preOrderExts = append(preOrderExts, defultExt)
|
||||
preOrderExts = append(preOrderExts, defultExt2)
|
||||
|
||||
Reference in New Issue
Block a user