Python ile bir Bitfinex borç verme botu yapın
Bitfinex API’si otomasyon için gerçekten keyifli bir arayüz ve minimal bir borç verme botu, requests dışında bağımlılık olmadan yaklaşık altmış satır Python’a sığıyor. Bu eğitim gerçekten bir tane inşa ediyor: kapsamı sınırlı anahtar, oran sorgulama, imzalı teklif verme, naif bir strateji döngüsü. Sonda ise bu altmış satır ile gerçek bir bakiye emanet edebileceğiniz bot arasındaki farka dair dürüst bir bölüm var — çünkü asıl iş API çağrıları değil, o farktır.
Ne inşa ediyoruz
USD fonlama piyasasını izleyen, güncel Flash Return Rate’in (FRR) %10 üzerinde tek bir teklifi bekletir halde tutan ve borçlu talebinin kendisine gelmesine izin veren bir bot. Bu tek davranış — her zaman piyasanın üzerinde bekleyen bir teklif — çoğu fonlama stratejisinin çekirdeğidir, çünkü oran sıçramaları manuel olarak kovalanamayacak kadar kısadır.
Ön koşullar: Python 3.10+, pip install requests, bir Bitfinex hesabı ve fonlama cüzdanında $150+ (borsanın teklif başına asgarisi). Geri kalan her şey aşağıda.
Adım 0: size zarar veremeyecek bir anahtar
API anahtarını Bitfinex’te (API Keys → Create New Key) tam olarak şu kapsamlarla oluşturun: Margin Funding okuma + yazma, Wallets okuma, Account Info okuma. Para çekme ve alım satımı devre dışı bırakın — bir borç verme botunun bunlara asla ihtiyacı yoktur ve kapsamı sınırlı bir anahtar, sızdırılırsa borç vermenizi yanlış fiyatlayabilir ama hesabınızı boşaltamaz demektir.
İzin izin tam ayrıntı borç verenler için Bitfinex API kılavuzumuzda; kısa versiyonu şu: bu yazıdaki her şey yukarıdaki kapsamlarla çalışır, fazlasına gerek yoktur.
Adım 1: piyasayı okuyun (anahtar gerekmez)
Oranlar herkese açıktır. Fonlama ticker’ı 0 indeksinde FRR’yi günlük oran olarak döndürür — APR için 365 ile çarpın. Bu döngü botun gözleridir:
Çalıştırın ve elinizde canlı bir oran beslemesi olsun. Şimdi içselleştirmeniz gereken iki kural: her Bitfinex oranı günlüktür (0.0003 ≈ %10,95 APR) ve her oran brüttür — borsa kazanılan faizin %15’ini alır, dolayısıyla cüzdanınıza girecek tutar için 0.85 ile çarpın.
import requests, time
PUB = "https://api-pub.bitfinex.com"
def frr_apr(symbol: str = "fUSD") -> float:
ticker = requests.get(f"{PUB}/v2/ticker/{symbol}", timeout=10).json()
return ticker[0] * 365 * 100 # index 0 = FRR, a daily rate
while True:
print(f"FRR now: {frr_apr():.2f}% APR")
time.sleep(300) # poll every 5 minutes — stay well inside rate limits
Adım 2: imzalı bir teklif verin
Yazma işlemleri kimlik doğrulama gerektirir: yol üzerinde HMAC-SHA384, kesin artan bir nonce ve JSON gövdesi. Tüm kimlik doğrulama katmanı bundan ibaret — SDK gerekmez:
period, gün cinsinden kredi vadesidir (2–120). Kısa vadeler sizi likit tutar; uzun vadeler oranı kilitler. Tutar bir string’dir, asgari $150 karşılığı. nonce: small hatası alırsanız, anahtarı başka bir süreç kullanmıştır — her sürece bir anahtar, her zaman.
import hashlib, hmac, json, time, requests
KEY, SECRET = "your-key", "your-secret"
BASE = "https://api.bitfinex.com"
def auth_post(path: str, body: dict):
nonce = str(int(time.time() * 1_000_000)) # must strictly increase per key
raw = f"/api/{path}{nonce}{json.dumps(body)}"
sig = hmac.new(SECRET.encode(), raw.encode(), hashlib.sha384).hexdigest()
return requests.post(f"{BASE}/{path}", data=json.dumps(body), timeout=15, headers={
"bfx-nonce": nonce, "bfx-apikey": KEY, "bfx-signature": sig,
"content-type": "application/json",
}).json()
def place_offer(rate_daily: float, amount: str = "150", period: int = 2):
return auth_post("v2/auth/w/funding/offer/submit", {
"type": "LIMIT", "symbol": "fUSD",
"amount": amount, "rate": f"{rate_daily:.8f}", "period": period,
})
Adım 3: strateji döngüsü
Şimdi asıl bot: bekleyen bir şey yoksa, güncel FRR’nin %10 üzerinde bir teklif verin ve bekleyin. Borçlu talebi, oran yükselişleri sırasında teklifi doldurur; aksi halde teklif öylece durur. Bu, yüzdelik tabanın kaba bir versiyonudur — rejime duyarlı bir eklenti yerine sabit bir marj:
İşte çalışan bir borç verme botu. Gerçekten fonlama faizi kazanacak ve sakin haftalarda sizi utandırmayacak. Aynı zamanda, bilerek, hikâyenin sonu değil başlangıcı.
def tick():
apr = frr_apr()
# naive floor strategy: rest 10% above the current FRR and wait to be hit
target_daily = (apr * 1.10) / 365 / 100
offers = auth_post("v2/auth/r/funding/offers/fUSD", {})
if not offers: # nothing resting -> place one
place_offer(target_daily)
# a real bot also reprices stale offers, sizes per wallet balance,
# handles partial fills, retries 429s, and survives restarts
while True:
tick()
time.sleep(600)
Bu 60 satırın yapmadıkları
Dürüst liste — her madde, hobi botlarının sessizce öldüğü yerdir:
- Strateji. "FRR + %10" keyfidir. Taban, son 60 günün 96. yüzdeliği mi olmalı? Oranlar rejime göre yüksekken 120 gün kilitlemeli misiniz? Bunu iyi yanıtlamak, kuralları yıllarca veriye karşı yeniden oynatmayı gerektirir — bir betik ile bir strateji arasındaki fark budur.
- Yeniden fiyatlama. Bekleyen bir teklif piyasa hareket ettikçe bayatlar. Üretim botları, dolumları kaçırmadan güncel deftere karşı sürekli yeniden fiyatlar.
- Durum ve yeniden başlatmalar. Döngü ortasında çökün ve yeniden başlatın: hangi teklifler sizin? Siz yokken ne doldu? Borsa durumunu niyetle uzlaştırmak, gerçek bir botun kodunun çoğunu oluşturur.
- Hata yönetimi. 429 hız limitleri, 5xx yanıtları, WebSocket kopmaları, nonce çakışmaları, kısmi dolumlar, erken iade edilen krediler — her biri sabahın 3’ünde işlenmemiş bir istisna değil, bir karar ister.
- Muhasebe. Gerçek getiriniz teklif ettiğiniz oranda değil, defterde yaşar (faiz alacakları eksi %15 komisyon). Ödeme bazında defter kayıtlarını uzlaştırmak, kazanç ve vergi rakamlarını gerçek kılan şeydir.
Eğitim SSS
Bitfinex’te bot çalıştırmak yasal/izinli mi?
Evet — API tam da bunun için var ve fonlama otomasyonu açıkça desteklenen bir kullanım. Uç nokta başına hız limitlerine saygı gösterin (HTTP 429 geri çekilin demektir) ve her sürece bir API anahtarı kullanın.
Ham requests yerine resmi bfxapi kütüphanesini mi kullanmalıyım?
Üretim için muhtemelen evet — imzalama, yeniden bağlanma ve WebSocket altyapısını sizin yerinize yönetir. Bu eğitim, telde tam olarak ne olduğunu görebilmeniz için kimlik doğrulamayı elle yazıyor; kavramlar doğrudan aktarılır.
Böyle bir bot ne kadar kazanabilir?
Fonlama piyasası ne ödüyorsa onu — tarihsel olarak USD için sakin rejimlerde brüt ~%8–12 APR, talep sıçramaları sırasında daha fazlası, eksi %15 borsa komisyonu. Bot getiri yaratmaz; piyasa getirisini manuel borç vermeden daha güvenilir biçimde yakalar. Dürüst dağılım için üç yıllık veri çalışmamıza bakın.
İnşa edin ya da doğrudan strateji kısmına geçin
Bu botla ilgili zor olan her şey API çağrıları değil, strateji ve güvenilirliktir. Stratum işte o üretim katmanı: aynı para çekmesi kapalı anahtar kapsamının arkasında 11 geriye dönük test edilmiş strateji, yeniden fiyatlama, uzlaştırma ve raporlama — sabit ücret, kazançtan pay yok. Ya da yukarıdaki kodu alın ve tüm yığının sahibi olun; bu sayfa her iki durumda da burada kalıyor.