1暂时提交
This commit is contained in:
@ -599,6 +599,49 @@ func (e FutRestApi) GetHoldeData(apiInfo *DbModels.LineApiUser, symbol, side str
|
||||
return nil
|
||||
}
|
||||
|
||||
// 获取合约 持仓价格、数量
|
||||
// symbol:交易对
|
||||
// positionSide:持仓方向
|
||||
// holdeData:持仓数据
|
||||
func (e FutRestApi) GetPositionData(apiInfo *DbModels.LineApiUser, symbol, positionSide string, holdeData *HoldeData) error {
|
||||
opts := retryhelper.DefaultRetryOptions()
|
||||
opts.RetryableErrFn = func(err error) bool {
|
||||
if strings.Contains(err.Error(), "LOT_SIZE") {
|
||||
return false
|
||||
}
|
||||
//重试
|
||||
return true
|
||||
}
|
||||
|
||||
holdes, err := retryhelper.RetryWithResult(func() ([]PositionRisk, error) {
|
||||
return e.GetPositionV3(apiInfo, symbol)
|
||||
}, opts)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, item := range holdes {
|
||||
positionAmount, _ := decimal.NewFromString(item.PositionAmt)
|
||||
if (positionSide == "LONG" && item.PositionSide == "BOTH" && positionAmount.Cmp(decimal.Zero) > 0) || item.PositionSide == positionSide { //多
|
||||
holdeData.AveragePrice, _ = decimal.NewFromString(item.EntryPrice)
|
||||
holdeData.TotalQuantity = positionAmount.Abs()
|
||||
continue
|
||||
} else if (positionSide == "SHORT" && item.PositionSide == "BOTH" && positionAmount.Cmp(decimal.Zero) < 0) || item.PositionSide == positionSide { //空
|
||||
holdeData.AveragePrice, _ = decimal.NewFromString(item.EntryPrice)
|
||||
holdeData.TotalQuantity = positionAmount.Abs()
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if holdeData.AveragePrice.Cmp(decimal.Zero) == 0 {
|
||||
holdesVal, _ := sonic.MarshalString(&holdes)
|
||||
log.Error("均价错误 symbol:", symbol, " 数据:", holdesVal)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 获取代币持仓信息
|
||||
func getSymbolHolde(e FutRestApi, apiInfo *DbModels.LineApiUser, symbol string, side string, holdeData *HoldeData) ([]PositionRisk, error) {
|
||||
holdes, err := e.GetPositionV3(apiInfo, symbol)
|
||||
|
||||
Reference in New Issue
Block a user