我试图通过请求进行交易,但收到错误400。我知道此错误意味着请求不正确,但我不知道我做错了什么。
import requests
import time
import hashlib
import hmac
# Set the base API URL for the Binance Testnet
BASE_URL = "https://testnet.binancefuture.com"
# Set the endpoint for placing an order on the futures exchange
ENDPOINT = "/fapi/v1/order"
# Set the API key and secret key as headers for the HTTP request
API_KEY = ""
API_SECRET = ""
headers = {
"Content-Type": "application/json",
"X-MBX-APIKEY": API_KEY
}
# Define the parameters for the order
symbol = "EOSUSDT"
side = "BUY"
type = "MARKET"
time_in_force = "GTC"
quantity = 20
# Define the payload for the HTTP request
payload = {
"symbol": symbol,
"side": side,
"type": type,
"timeInForce": time_in_force,
"quantity": quantity,
"timestamp": int(time.time() * 1000)
}
# Generate the signature for the request
query_string = "&".join([f"{k}={v}" for k, v in payload.items()])
signature = hmac.new(API_SECRET.encode(), query_string.encode(), hashlib.sha256).hexdigest()
# Add the signature to the request headers
headers["X-MBX-SIGNATURE"] = signature
# Send the HTTP request using the requests.post() function
response = requests.post(BASE_URL + ENDPOINT, headers=headers, json=payload)
# Check the response from the server to see if the order was successful
if response.status_code == 200:
print("Order placed successfully!")
else:
print("Order placement failed. Error code:", response.status_code)
我添加了对符号和时间戳参数的检查,但它没有给予结果。
1条答案
按热度按时间yyyllmsg1#
Если вам возвращается такая ошибка: "Found error. status: 400, error code: -1021, error message: Timestamp for this request is outside of the recvWindow." Это значит, что время на вашем компьютере значительно отличается от времени сервера Бинанс и вам нужно синхронизировать их. То есть вам нужно либо в ручную выставить ТОЧНОЕ время на своем компьютере, либо синхронизировать его с каким-либо сервером из списка предлагаемых в настройках времени под Виндовс.