是的,您可以使用ByBit API的私有接口来在开仓后放置止盈和止损订单。这可以使用“Conditional Order”(条件订单)的形式来完成。以下是一个Python代码示例,该示例尝试在开仓后5%的止损和10%的止盈位置放置条件订单。
import time
import hashlib
import hmac
import requests
from urllib.parse import urljoin
# API信息
API_KEY = 'your_api_key'
API_SECRET = b'your_api_secret'
BASE_URL = 'https://api.bybit.com'
# 生成签名
def generate_signature(params):
ordered_data = ''.join([k + '=' + str(params[k]) + '&' for k in sorted(params.keys())])
payload = bytes(ordered_data[:-1], 'utf-8')
signature = hmac.new(API_SECRET, payload, hashlib.sha256).hexdigest()
return signature
# 放置条件订单
def place_conditional_order(api_key, symbol, side, qty, price, tp_percent, sl_percent):
endpoint = '/open-api/stop-order/create'
params = {
'api_key': api_key,
'symbol': symbol,
'side': side,
'order_type': 'Market',
'qty': qty,
'base_price': price
}
if tp_percent:
tp_price = round(price * (1 + (float(tp_percent) / 100)), 2) if side == 'Buy' else round(price * (1 - (float(tp_percent) / 100)), 2)
params.update({'take_profit': tp_price})
if sl_percent:
sl_price = round(price * (1 - (float(sl_percent) / 100)), 2) if side == 'Buy' else round(price * (1 + (float(sl_percent) / 100)), 2)
params.update({'stop_loss': sl_price})
signature = generate_signature(params)
headers = {'Content-Type': 'application/json', 'Accept': 'application/json', 'API-Key': api_key, 'API-Signature': signature}
response