1、合仓
This commit is contained in:
@ -230,10 +230,8 @@ func (e SpotRestApi) OrderPlace(orm *gorm.DB, params OrderPlacementService) erro
|
||||
paramsMaps["stopPrice"] = params.StopPrice.String()
|
||||
}
|
||||
}
|
||||
var apiUserInfo DbModels.LineApiUser
|
||||
|
||||
err := orm.Model(&DbModels.LineApiUser{}).Where("id = ?", params.ApiId).Find(&apiUserInfo).Error
|
||||
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
apiUserInfo, err := GetApiInfo(params.ApiId)
|
||||
if apiUserInfo.Id == 0 {
|
||||
log.Errorf("api用户出错 err: %+v", err)
|
||||
return err
|
||||
}
|
||||
@ -273,6 +271,24 @@ func (e SpotRestApi) OrderPlace(orm *gorm.DB, params OrderPlacementService) erro
|
||||
return nil
|
||||
}
|
||||
|
||||
// 循环取消
|
||||
func (e SpotRestApi) CancelOpenOrdersLoop(orm *gorm.DB, req CancelOpenOrdersReq, retryCount int) error {
|
||||
err := e.CancelOpenOrders(orm, req)
|
||||
|
||||
if err != nil {
|
||||
for x := 1; x < retryCount; x++ {
|
||||
err = e.CancelOpenOrders(orm, req)
|
||||
if err == nil {
|
||||
break
|
||||
}
|
||||
|
||||
time.Sleep(time.Duration(x) * 200 * time.Millisecond)
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CancelOpenOrders 撤销单一交易对下所有挂单 包括了来自订单列表的挂单
|
||||
func (e SpotRestApi) CancelOpenOrders(orm *gorm.DB, req CancelOpenOrdersReq) error {
|
||||
if orm == nil {
|
||||
@ -285,19 +301,12 @@ func (e SpotRestApi) CancelOpenOrders(orm *gorm.DB, req CancelOpenOrdersReq) err
|
||||
params := map[string]string{
|
||||
"symbol": req.Symbol,
|
||||
}
|
||||
var apiUserInfo DbModels.LineApiUser
|
||||
apiUserInfo, err := GetApiInfo(req.ApiId)
|
||||
|
||||
err = orm.Model(&DbModels.LineApiUser{}).Where("id = ?", req.ApiId).Find(&apiUserInfo).Error
|
||||
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
if apiUserInfo.Id == 0 {
|
||||
return fmt.Errorf("api_id:%d 交易对:%s api用户出错:%+v", apiUserInfo.Id, req.Symbol, err)
|
||||
}
|
||||
var client *helper.BinanceClient
|
||||
|
||||
if apiUserInfo.UserPass == "" {
|
||||
client, _ = helper.NewBinanceClient(apiUserInfo.ApiKey, apiUserInfo.ApiSecret, "", apiUserInfo.IpAddress)
|
||||
} else {
|
||||
client, _ = helper.NewBinanceClient(apiUserInfo.ApiKey, apiUserInfo.ApiSecret, "socks5", apiUserInfo.UserPass+"@"+apiUserInfo.IpAddress)
|
||||
}
|
||||
client := GetClient(&apiUserInfo)
|
||||
_, _, err = client.SendSpotAuth("/api/v3/openOrders", "DELETE", params)
|
||||
if err != nil {
|
||||
dataMap := make(map[string]interface{})
|
||||
@ -327,13 +336,7 @@ func (e SpotRestApi) CancelOpenOrderByOrderSn(apiUserInfo DbModels.LineApiUser,
|
||||
"origClientOrderId": newClientOrderId,
|
||||
"recvWindow": "10000",
|
||||
}
|
||||
var client *helper.BinanceClient
|
||||
|
||||
if apiUserInfo.UserPass == "" {
|
||||
client, _ = helper.NewBinanceClient(apiUserInfo.ApiKey, apiUserInfo.ApiSecret, "", apiUserInfo.IpAddress)
|
||||
} else {
|
||||
client, _ = helper.NewBinanceClient(apiUserInfo.ApiKey, apiUserInfo.ApiSecret, "socks5", apiUserInfo.UserPass+"@"+apiUserInfo.IpAddress)
|
||||
}
|
||||
client := GetClient(&apiUserInfo)
|
||||
_, code, err := client.SendSpotAuth("/api/v3/order", "DELETE", params)
|
||||
if err != nil || code != 200 {
|
||||
log.Error("取消现货委托失败 参数:", params)
|
||||
|
||||
Reference in New Issue
Block a user