Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Can not set stop loss / take profit, error ‘Order does not exist

Aperta
#18 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
18/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python
Ambito
api

Direzione di ricerca

Inizia dalla funzione create_cross_order e dalla relativa richiesta POST a /fapi/v1/order, quindi confronta i parametri forniti con la documentazione della Binance Futures API. L’issue non indica alcun file del repository né alcun test; per considerare il lavoro completato sarebbe necessario riprodurre l’errore segnalato e confermare che l’ordine e il relativo comportamento TP/SL siano accettati come previsto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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)

image
image
image

@2pd @aisling11 @chairz @bnbot

Lingua principale
Python
Stelle
110
Fork
22
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di binance/binance-toolbox-python

Tutte le issue di binance/binance-toolbox-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.