es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo realizar una orden de mercado de Futuros con Take Profit y Stop Loss utilizando python-binance

Estoy teniendo dificultades para colocar órdenes de Take Profit y Stop Loss utilizando python-binance y no puedo entender cómo configurar el TP & SL %.
Hasta ahora solo encontré cómo colocar órdenes base como:

Orden de mercado
“`
from binance<em>f import RequestClient
from binance</em>f.constant.test import *
from binance<em>f.base.printobject import *
from binance</em>f.model.constant import *

<span>client = RequestClient(api<em>key='api</em>key',
secret<em>key='secret</em>key',
url='https://testnet.binancefuture.com')</span>

<span>print(client.post<em>order(symbol="BTCUSDT", ordertype="MARKET", side="SELL",
positionSide="BOTH", quantity=0.001))
<code>
Orden límite
</code>
from binance</em>f import RequestClient
from binance<em>f.constant.test import *
from binance</em>f.base.printobject import *
from binance_f.model.constant import *</span>

<span>client = RequestClient(api<em>key='api</em>key',
secret<em>key='secret</em>key',
url='https://testnet.binancefuture.com')</span>

<span>print(client.post_order(symbol="BTCUSDT", ordertype="LIMIT", side="BUY",
positionSide="BOTH", quantity=0.01, timeInForce="GTC",
price=48680))
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para realizar una orden de Take Profit (TP) y Stop Loss (SL) utilizando python-binance, puedes utilizar la función create_order() con los parámetros stopPrice y closePosition.

    Por ejemplo, para colocar una orden de TP para una posición larga (BUY), puedes establecer el parámetro side como SELL y especificar el precio de TP utilizando el parámetro stopPrice. De manera similar, para una posición corta (SELL), puedes establecer el parámetro side como BUY y especificar el precio de TP utilizando el parámetro stopPrice.

    from binance_f import RequestClient
    from binance_f.constant.test import *
    from binance_f.base.printobject import *
    from binance_f.model.constant import *
    
    client = RequestClient(api_key='api_key',
                           secret_key='secret_key',
                           url='https://testnet.binancefuture.com')
    
    # colocar una posición larga (BUY) con orden de TP
    print(client.create_order(symbol="BTCUSDT", ordertype="STOP_MARKET", side="SELL",
                              positionSide="BOTH", quantity=0.01, stopPrice=50000,
                              closePosition=True))
    
    # colocar una posición corta (SELL) con orden de TP
    print(client.create_order(symbol="BTCUSDT", ordertype="STOP_MARKET", side="BUY",
                              positionSide="BOTH", quantity=0.01, stopPrice=48000,
                              closePosition=True))
    

    Para realizar una orden de SL, puedes establecer el parámetro ordertype como STOP y especificar el precio de SL utilizando el parámetro stopPrice.

    # realizar una orden de SL para una posición larga (BUY)
    print(client.create_order(symbol="BTCUSDT", ordertype="STOP", side="SELL",
                              positionSide="BOTH", quantity=0.01, stopPrice=48000,
                              closePosition=True))
    
    # realizar una orden de SL para una posición corta (SELL)
    print(client.create_order(symbol="BTCUSDT", ordertype="STOP", side="BUY",
                              positionSide="BOTH", quantity=0.01, stopPrice=50000,
                              closePosition=True))
    

    Ten en cuenta que el parámetro closePosition está establecido en True, lo cual significa que la orden de TP/SL cerrará toda la posición cuando se active. Si solo deseas cerrar parte de la posición, puedes establecer el parámetro reduceOnly como True.

Comments are closed.