We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I have an issue is the TP/SL function not reading the Binance side could you please help me to resolve this issues
import requests import hashlib import hmac import time def get_current_price(symbol): base_url = 'https://fapi.binance.com' endpoint = '/fapi/v1/ticker/price' params = { 'symbol': symbol } response = requests.get(f'{base_url}{endpoint}', params=params) data = response.json() if 'price' in data: return float(data['price']) else: return None def calculate_required_margin(quantity, price, leverage): return (quantity * price) / leverage def get_account_balance(): base_url = 'https://fapi.binance.com' endpoint = '/fapi/v2/account' params = { 'timestamp': int(time.time() * 1000) } signature = hmac.new(API_SECRET.encode('utf-8'), '&'.join([f'{k}={v}' for k, v in params.items()]).encode('utf-8'), hashlib.sha256).hexdigest() headers = { 'X-MBX-APIKEY': API_KEY } url = f'{base_url}{endpoint}?timestamp={params["timestamp"]}&signature={signature}' response = requests.get(url, headers=headers) return response.json() def create_cross_order(symbol, side, quantity, leverage, position_side, take_profit_percent, stop_loss_percent): base_url = 'https://fapi.binance.com' endpoint = '/fapi/v1/order' current_price = get_current_price(symbol) if current_price is None: print('Failed to fetch current price.') return required_margin = calculate_required_margin(quantity, current_price, leverage) # Fetch account information to check available balance account_info = get_account_balance() if 'totalWalletBalance' in account_info: total_wallet_balance = float(account_info['totalWalletBalance']) if total_wallet_balance < required_margin: print("Insufficient balance for required margin.") return else: print("Failed to fetch account balance.") return # Calculate take profit and stop loss prices take_profit_price = current_price * (1 + take_profit_percent / 100) stop_loss_price = current_price * (1 - stop_loss_percent / 100) params = { 'symbol': symbol, 'side': side, 'positionSide': position_side, 'quantity': quantity, 'price': current_price, 'type': 'LIMIT', 'timeInForce': 'GTC', 'leverage': leverage, 'timestamp': int(time.time() * 1000), 'takeProfit': take_profit_price, 'stopLoss': stop_loss_price } query_string = '&'.join([f'{k}={v}' for k, v in params.items()]) signature = hmac.new(API_SECRET.encode('utf-8'), query_string.encode('utf-8'), hashlib.sha256).hexdigest() headers = { 'X-MBX-APIKEY': API_KEY } url = f'{base_url}{endpoint}?{query_string}&signature={signature}' response = requests.post(url, headers=headers) return response.json() # Show account balance balance_response = get_account_balance() if 'totalWalletBalance' in balance_response: print(f"Total Wallet Balance: {balance_response['totalWalletBalance']} USDT") else: print("Failed to fetch account balance.") # Create order with take profit of 1.5% and stop loss of 2% symbol = 'BTCUSDT' side = 'BUY' # Change this to 'SELL' if you're opening a short position quantity = 0.01 leverage = 10 # Leverage x10 position_side = 'LONG' # Change this to 'SHORT' if opening a short position take_profit_percent = 1.5 stop_loss_percent = 2.0 response = create_cross_order(symbol, side, quantity, leverage, position_side, take_profit_percent, stop_loss_percent) if response is not None: print(response)
@2pd @aisling11 @chairz @bnbot
The text was updated successfully, but these errors were encountered:
No branches or pull requests
I have an issue is the TP/SL function not reading the Binance side
could you please help me to resolve this issues
@2pd @aisling11 @chairz @bnbot
The text was updated successfully, but these errors were encountered: