Digamos que tengo $200 USDT y quiero realizar un pedido para comprar ETHUSDT usando el 100 % de mis $200 USDT. ¿Hay alguna manera de realizar un pedido utilizando el 100% de mi USDT y no cuántos ETH quiero comprar?
Este es el código que estoy usando.
buy_order = client.create_test_order(symbol="ETHUSDT, side='BUY', type='MARKET', quantity=10)
Esto compra 10 ETH, ¿verdad? Pero quería comprar ETH por valor de 200 dólares. ¿Cómo puedo hacer esto?
------------------------------------
Primero tienes que calcular cuánto ETH $200 te pueden dar.
#First get ETH price
eth_price = client.get_symbol_ticker(symbol="ETHUSDT")
# Calculate how much ETH 0 can buy
buy_quantity = round(200 / float(eth_price['price']))
# Create test order
order = client.create_test_order(
symbol='ETHUSDT',
side=Client.SIDE_BUY,
type=Client.ORDER_TYPE_MARKET,
quantity=buy_quantity
)
# The 200 in buy_quantity is the amount of money you want to spend on ETH.
1
El problema con esto es que el precio de mercado fluctúa. Entonces, si hay un deslizamiento, su pedido fallará. Puede utilizar quoteOrderQty en su lugar para órdenes de mercado, pero para futuros esto no se implementa. Estoy intentando encontrar una solución yo mismo.
- Dorien
11 de abril de 2023 a las 3:03
------------------------------------
el parámetro quoteOrderQty permite especificar el total de quoteOrderQty gastado o recibido en la orden MERCADO. Se refiere a "activo de cotización", p. para el par ETHUSDT, USDT es un "activo cotizado". Por lo tanto, si desea gastar 200 USDT, utilice
buy_order = client.create_test_order(symbol='ETHUSDT', side='BUY', type='MARKET', quoteOrderQty=200)
------------------------------------
Utilice quoteOrderQty= en lugar de cantidad=. cantidad que el usuario quiere gastar (al comprar) o recibir (al vender) del activo cotizado, aplicable a órdenes de MERCADO.
buy_order = client.create_test_order(symbol="ETHUSDT, side='BUY', type='MARKET', quoteOrderQty=10)