Python ile Binance Futures API'sinde Açık Pozisyonları Görüntüleme

kusha · 03 Ağustos 2026 · 6 dk okuma

Bu seride kaldıracı ayarlamayı ve bir pozisyon açmayı görmüştük. Şimdi sırada, hesabınızdaki açık pozisyonları API üzerinden görüntülemek var — bu bilgiyi, örneğin belirli bir kâr/zarar seviyesine ulaşınca otomatik pozisyon kapatan bir botun temeli olarak kullanabilirsiniz.

Position Risk Uç Noktası

Binance Futures, hesabınızdaki tüm sembollerin pozisyon bilgisini tek bir uç noktadan döndürür:

def acik_pozisyonlari_al():
    url = f"{FUTURES_BASE_URL}/fapi/v2/positionRisk"
    headers = {"X-MBX-APIKEY": API_KEY}
    params = imzali_parametre_olustur({})

    response = requests.get(url, headers=headers, params=params)
    return response.json()

İlk Denemede Karşılaşılan Sorun: Sıfır Miktarlı Kayıtlar

Bu uç nokta, Binance Futures'ta işlem gören her sembol için bir kayıt döndürür — pozisyonunuz olmayan yüzlerce sembol de dahil olmak üzere. Bunların hepsi positionAmt (pozisyon miktarı) değeri "0" olan kayıtlardır:

tum_kayitlar = acik_pozisyonlari_al()
print(len(tum_kayitlar))  # örn. 400+ kayıt -- hepsi sizin pozisyonunuz değil

Gerçekten açık olan pozisyonları görmek için, miktarı sıfır olmayanları filtrelemeniz gerekir:

def gercek_acik_pozisyonlari_al():
    tum_kayitlar = acik_pozisyonlari_al()
    return [p for p in tum_kayitlar if float(p["positionAmt"]) != 0]

acik_pozisyonlar = gercek_acik_pozisyonlari_al()
for pozisyon in acik_pozisyonlar:
    print(pozisyon)

Sadece Anlamlı Alanları Göstermek

API'nin döndürdüğü ham veri, ihtiyacınız olmayan birçok alan içerir. Kendi ihtiyacınıza göre süzebilirsiniz:

def pozisyonlari_ozetle():
    for pozisyon in gercek_acik_pozisyonlari_al():
        sembol = pozisyon["symbol"]
        miktar = pozisyon["positionAmt"]
        giris_fiyati = pozisyon["entryPrice"]
        kar_zarar = float(pozisyon["unRealizedProfit"])
        kaldirac = pozisyon["leverage"]

        print(f"{sembol}: {miktar} adet, giriş {giris_fiyati}, "
              f"kaldıraç {kaldirac}x, anlık PNL: {kar_zarar:.4f} USDT")

pozisyonlari_ozetle()

Bu Veriyle Neler Yapılabilir?

unRealizedProfit (anlık gerçekleşmemiş kâr/zarar) alanını periyodik olarak kontrol eden bir döngü yazarak, belirlediğiniz bir eşiğe ulaşıldığında pozisyonu otomatik kapatan (önceki dersteki market emri mantığının tersini kullanan) basit bir bot kurabilirsiniz:

import time

while True:
    for pozisyon in gercek_acik_pozisyonlari_al():
        pnl = float(pozisyon["unRealizedProfit"])
        if pnl >= 50:
            print(f"{pozisyon['symbol']} için hedef kâra ulaşıldı: {pnl}")
            # burada pozisyonu kapatan fonksiyon çağrılabilir
    time.sleep(30)

Bu, yalnızca fikir vermesi için basitleştirilmiş bir örnektir — gerçek bir bot için hata yönetimi, bağlantı kopması senaryoları ve tekrar deneme (retry) mantığı da eklenmelidir.

Serinin Kalanı

Bu API otomasyon serisinde Binance spot bakiyesi sorgulamadan Futures pozisyon açma/kapatmaya, fiyat scraping'inden Telegram bot entegrasyonuna kadar birçok konuyu ele aldık. Aynı imzalı istek (HMAC-SHA256) mantığı, Binance'in diğer tüm özel uç noktaları için de geçerlidir — yeni bir işlem türü eklemek istediğinizde, sadece ilgili uç noktanın parametrelerini değiştirmeniz yeterli olacaktır.