如果有人在2023年中期搜索它。
为了完全回答一个问题,使用最新的Binance库'binance.um_futures':
首先,您需要为该符号设置杠杆,比如BTCUSDT:
client.change_leverage(symbol="BTCUSDT", leverage=5, recvWindow = 60000)
接下来,打开初始仓位:
首先,使用以下公式计算100美元等值的数量:
数量 = 100美元 * 5倍杠杆 / BTCUSDT_当前价格
initial_position = client.new_order(
symbol="BTCUSDT",
side="BUY",
type=order_type,
quantity=quantity,
timestamp = timestamp,
recvWindow = 60000
)
接下来,要实际设置止盈和止损,您需要发送两个相反方向的单独订单:
止盈示例:
您需要使用以下公式计算50% ROE%:
def calculate_tpsl(symbol, side, leverage, tp_percentage=take_profit_percentage, sl_percentage=stop_loss_percentage):
def calculate_target_price(roe):
if side == "SELL":
sltp_target_price = entry_price / (1 - roe / leverage)
else:
sltp_target_price = entry_price * (1 + roe / leverage)
return sltp_target_price
if side == "BUY":
profit_perc = tp_percentage / 100
profit_mark_price = calculate_target_price(profit_perc)
loss_perc = -sl_percentage / 100
loss_mark_price = calculate_target_price(loss_perc)
if side == "SELL":
profit_perc = -tp_percentage / 100
profit_mark_price = calculate_target_price(profit_perc)
loss_perc = sl_percentage / 100
loss_mark_price = calculate_target_price(loss_perc)
return profit_mark_price, loss_mark_price
发送止盈位置:
take_profit_position = client.new_order(
symbol="BTCUSDT",
side="SELL",
type="TAKE_PROFIT_MARKET",
quantity=quantity,
stopPrice=take_profit_price,
timeInForce="GTE_GTC",
reduceOnly="True",
timestamp = timestamp,
recvWindow = 60000
)
你也可以通过设置止损方式来实现同样的目的,设置类型为: STOP_MARKET。
希望这详细地回答了你的问题。