mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-13 07:46:54 +08:00
@@ -522,6 +522,11 @@ func (t *AsterTrader) GetPositions() ([]map[string]interface{}, error) {
|
|||||||
|
|
||||||
// OpenLong 开多单
|
// OpenLong 开多单
|
||||||
func (t *AsterTrader) OpenLong(symbol string, quantity float64, leverage int) (map[string]interface{}, error) {
|
func (t *AsterTrader) OpenLong(symbol string, quantity float64, leverage int) (map[string]interface{}, error) {
|
||||||
|
// 开仓前先取消所有挂单,防止残留挂单导致仓位叠加
|
||||||
|
if err := t.CancelAllOrders(symbol); err != nil {
|
||||||
|
log.Printf(" ⚠ 取消挂单失败(继续开仓): %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// 先设置杠杆
|
// 先设置杠杆
|
||||||
if err := t.SetLeverage(symbol, leverage); err != nil {
|
if err := t.SetLeverage(symbol, leverage); err != nil {
|
||||||
return nil, fmt.Errorf("设置杠杆失败: %w", err)
|
return nil, fmt.Errorf("设置杠杆失败: %w", err)
|
||||||
@@ -584,6 +589,11 @@ func (t *AsterTrader) OpenLong(symbol string, quantity float64, leverage int) (m
|
|||||||
|
|
||||||
// OpenShort 开空单
|
// OpenShort 开空单
|
||||||
func (t *AsterTrader) OpenShort(symbol string, quantity float64, leverage int) (map[string]interface{}, error) {
|
func (t *AsterTrader) OpenShort(symbol string, quantity float64, leverage int) (map[string]interface{}, error) {
|
||||||
|
// 开仓前先取消所有挂单,防止残留挂单导致仓位叠加
|
||||||
|
if err := t.CancelAllOrders(symbol); err != nil {
|
||||||
|
log.Printf(" ⚠ 取消挂单失败(继续开仓): %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// 先设置杠杆
|
// 先设置杠杆
|
||||||
if err := t.SetLeverage(symbol, leverage); err != nil {
|
if err := t.SetLeverage(symbol, leverage); err != nil {
|
||||||
return nil, fmt.Errorf("设置杠杆失败: %w", err)
|
return nil, fmt.Errorf("设置杠杆失败: %w", err)
|
||||||
@@ -717,6 +727,12 @@ func (t *AsterTrader) CloseLong(symbol string, quantity float64) (map[string]int
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("✓ 平多仓成功: %s 数量: %s", symbol, qtyStr)
|
log.Printf("✓ 平多仓成功: %s 数量: %s", symbol, qtyStr)
|
||||||
|
|
||||||
|
// 平仓后取消该币种的所有挂单(止损止盈单)
|
||||||
|
if err := t.CancelAllOrders(symbol); err != nil {
|
||||||
|
log.Printf(" ⚠ 取消挂单失败: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -794,6 +810,12 @@ func (t *AsterTrader) CloseShort(symbol string, quantity float64) (map[string]in
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("✓ 平空仓成功: %s 数量: %s", symbol, qtyStr)
|
log.Printf("✓ 平空仓成功: %s 数量: %s", symbol, qtyStr)
|
||||||
|
|
||||||
|
// 平仓后取消该币种的所有挂单(止损止盈单)
|
||||||
|
if err := t.CancelAllOrders(symbol); err != nil {
|
||||||
|
log.Printf(" ⚠ 取消挂单失败: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user