Почему мой ордер STOP_MARKET на Binance Futures исчезает после успешного вызова API с помощью python-binance?Python

Программы на Python
Ответить
Anonymous
 Почему мой ордер STOP_MARKET на Binance Futures исчезает после успешного вызова API с помощью python-binance?

Сообщение Anonymous »

Я использую библиотеку Python-binance для размещения ордера STOP_MARKET на Binance Futures. Вызов API успешен и возвращает действительный ответ заказа с algoId. Однако заказ появляется на вкладке «Условно» пользовательского интерфейса всего на 1–2 секунды, а затем полностью исчезает. Он не заполнен и не отменяется моим собственным кодом.
Вот код, демонстрирующий проблему:

Код: Выделить всё

import time
from binance.client import Client

# --- Prerequisites ---
# 1. pip install python-binance
# 2. Have an open LONG position in your Futures account for the symbol below.
# 3. Replace with your actual API keys.

API_KEY = "xxxxxxxxxxxxxxxxx"
API_SECRET = "xxxxxxxxxxxxxxxxxx"

client = Client(API_KEY, API_SECRET)

symbol = 'BTCUSDT'
position_side = 'LONG'
order_side = 'SELL'
quantity = 0.001

try:
ticker = client.futures_symbol_ticker(symbol=symbol)
last_price = float(ticker['price'])
stop_price = round(last_price * 0.90, 2) # Set stop 10% below current price

print(f"Current Last Price: {last_price}")
print(f"Placing STOP_MARKET order with stopPrice: {stop_price}")

params = {
'symbol': symbol,
'side': order_side,
'positionSide': position_side,
'type': 'STOP_MARKET',
'quantity': str(quantity),
'stopPrice': str(stop_price),

'workingType': 'CONTRACT_PRICE'
}

order_response = client.futures_create_order(**params)

print("\n--- SUCCESS: Order was accepted by Binance ---")
print(order_response)

algo_id = order_response.get('algoId')

print("\nWaiting 10 seconds to check if order persists...")
time.sleep(10)

open_orders = client.futures_get_all_algo_orders(symbol=symbol)

found_order = False
for order in open_orders:
if order.get('algoId') == algo_id:
print("\n--- GOOD: Order is still active! ---")
print(order)
found_order = True
break

if not found_order:
print("\n--- PROBLEM: The order has disappeared! ---")
print("`futures_get_all_algo_orders` no longer shows the order.")

except Exception as e:
print(f"An API error occurred: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
фактический результат:

Код: Выделить всё

{'algoId': 3000000037772404, 'clientAlgoId': 'x-Cb7ytekJ5c703583f0b0aa50586a22', 'algoType': 'CONDITIONAL', 'orderType': 'STOP_MARKET', 'symbol': 'BTCUSDT', 'side': 'SELL', 'positionSide': 'LONG', 'timeInForce': 'GTC', 'quantity': '0.001', 'algoStatus': 'NEW', 'triggerPrice': '81161.19', 'price': '0.00', 'icebergQuantity': None, 'selfTradePreventionMode': 'EXPIRE_MAKER', 'workingType': 'CONTRACT_PRICE', 'priceMatch': 'NONE', 'closePosition': False, 'priceProtect': False, 'reduceOnly': True, 'createTime': 1765569260163, 'updateTime': 1765569260163, 'triggerTime': 0, 'goodTillDate': 0}
Как вы можете видеть, он создает порядок, я не уверен, действителен он или нет, но он исчезает и появляется снова примерно через час.
Что я исключил:
Я потратил значительное количество времени на отладку этого и исключил наиболее распространенные причины:
  • Немедленный триггер: проблема сохраняется даже при установке stopPrice очень далеко от текущих markPrice и LastPrice. Это не проблема «Заказ сработает немедленно».
  • Цикл отмены бота: заказ исчезает, даже если сценарий завершается сразу после успешного вызова API. Мой код не отменяет его.
  • Опечатки параметров: я подтвердил, что все имена параметров (например, stopPrice) имеют верблюжий регистр и соответствуют документации API.
  • Я использую последнюю версию


Подробнее здесь: https://stackoverflow.com/questions/798 ... sful-api-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»