Binance testnet API anahtarı almak için Binance'in test ortamına (vadeli işlemler için Futures testnet, spot için Spot testnet ya da hesabındaki demo trading bölümü) giriş yapar, oradaki API Management ekranından yeni bir anahtar oluşturursun. Bu anahtar sahte bakiyeyle çalışır: emirler gerçek borsa mekaniğiyle işlenir ama para gerçek değildir. Botunu canlı piyasaya çıkarmadan önce bu ortamda denemek, kod hatalarını ücretsiz yakalamanın en güvenli yoludur.
Bu yazıda Binance testnet nedir, testnet API key oluşturma adımları, Python ile test ağına nasıl bağlanılır ve paper trading, backtest ve testnet arasındaki farklar nelerdir, adım adım anlatıyorum. Python ile botun kendisini nasıl kuracağını Python ile Binance trading botu nasıl yapılır? yazımda anlattım.
Bu yazı bir yazılım rehberidir, yatırım tavsiyesi değildir.
Binance testnet nedir?
Binance testnet (test ağı), geliştiricilerin botlarını ve uygulamalarını gerçek para kullanmadan denemesi için sunulan ayrı bir ortamdır. Test ağında:
- Hesabına sahte bakiye yüklenir,
- Emirler gerçek borsadaki gibi emir defterine girer, dolar ya da bekler,
- API uç noktaları canlı borsayla aynı yapıdadır, sadece adres farklıdır,
- Kazanç da kayıp da gerçek değildir.
Binance'in birkaç test ortamı vardır ve bunlar sık karıştırılır:
| Ortam | Ne için? |
|---|---|
| Spot testnet | Spot alım satım botlarını denemek |
| Futures testnet | Vadeli işlem (USDⓈ-M Futures) botlarını denemek |
| Demo trading | Binance hesabı içinde sanal bakiyeyle işlem pratiği; API desteği de sunar |
Bu ortamların adresleri ve kayıt adımları zamanla değişebilir. Güncel bilgiyi her zaman Binance geliştirici dokümantasyonundan kontrol et.
Binance testnet API key oluşturma
Genel adımlar şöyledir:
- Kullanacağın test ortamına (Futures testnet ya da demo trading) Binance hesabınla giriş yap.
- API Management ekranını aç.
- Yeni bir API anahtarı oluştur; sana bir API key ve bir secret key verilir.
- İki değeri de kaydet. Secret key bir daha gösterilmeyebilir.
- Gerekiyorsa test bakiyeni yenile.
Test anahtarı da bir şifredir. Sahte parayla çalışsa bile koda yazma ve GitHub'a yükleme; gerçek anahtarlarla aynı alışkanlığı edinmek en doğrusu.
Testnet anahtarı sadece test ağında çalışır. Canlı borsada geçersizdir; canlı anahtar da test ağında çalışmaz.
Python ile Binance testnet bağlantısı
Botun koduna dokunmadan test ağına geçmenin en temiz yolu, adresi bir ayardan okumaktır:
import os
MOD = os.environ.get("BOT_MOD", "testnet") # "testnet" ya da "canli"
ADRESLER = {
"testnet": "https://testnet.binancefuture.com", # Futures testnet (güncel adresi dokümandan doğrula)
"canli": "https://fapi.binance.com",
}
BASE = ADRESLER[MOD]
API_KEY = os.environ[f"BINANCE_{MOD.upper()}_KEY"]
SECRET = os.environ[f"BINANCE_{MOD.upper()}_SECRET"].encode()
İmzalı istek, emir gönderme ve bakiye alma kodu canlı borsayla aynıdır; sadece BASE değişir. Binance testnet Python örneği olarak bakiye sorgusu:
bakiye = imzali_istek("GET", "/fapi/v2/balance")
usdt = next(b for b in bakiye if b["asset"] == "USDT")
print("Test bakiyesi:", usdt["balance"])
Benim Kripto Al-Sat botumda mod panelden seçiliyor ve her modun ayrı bir işlem defteri var. Böylece test ağındaki işlemler sanal bakiye defterini bozmuyor.
Paper trading nedir?
Paper trading (kâğıt üzerinde işlem), emirlerin borsaya hiç gönderilmeden botun kendi içinde simüle edilmesidir. Bot gerçek fiyatı izler, "şu fiyattan alsaydım" diye işlemi kaydeder ve kâr/zararı kendisi hesaplar.
Paper trading nasıl yapılır? Botun emir katmanına bir "sanal borsa" yazarsın:
class SanalBorsa:
def __init__(self, bakiye: float, komisyon: float = 0.0005):
self.bakiye, self.komisyon, self.pozisyonlar = bakiye, komisyon, {}
def ac(self, sembol, yon, miktar, fiyat):
self.bakiye -= miktar * fiyat * self.komisyon
self.pozisyonlar[sembol] = (yon, miktar, fiyat)
def kapat(self, sembol, fiyat):
yon, miktar, giris = self.pozisyonlar.pop(sembol)
fark = (fiyat - giris) if yon == "AL" else (giris - fiyat)
self.bakiye += fark * miktar - miktar * fiyat * self.komisyon
Komisyonu hesaba katmayı unutma; işlem başına küçük kazanç hedefleyen botlarda sonucu belirleyen çoğu zaman komisyondur.
Paper trading, testnet ve backtest farkı
| Yöntem | Nasıl çalışır? | Neyi gösterir? | Neyi göstermez? |
|---|---|---|---|
| Backtest | Strateji geçmiş fiyatlar üzerinde çalıştırılır | Stratejinin geçmişte nasıl davranacağını | Gerçek dolum, gecikme, API hataları |
| Paper trading | Canlı fiyat izlenir, işlemler botun içinde simüle edilir | Stratejinin bugünkü piyasada ne yaptığını | Emrin borsada gerçekten dolup dolmadığını |
| Testnet | Emirler test borsasına gönderilir | Emir mekaniğini, API hatalarını, kısmi dolumları | Gerçek piyasanın likiditesini |
| Canlı işlem | Gerçek borsa, gerçek para | Her şeyi | — ve gerçek risk taşır |
Backtest nedir kripto açısından kısaca: stratejiyi geçmiş fiyat verisi üzerinde çalıştırıp "o dönemde bu kurallarla ne olurdu?" sorusunu cevaplamaktır. Backtest sonuçları yanıltıcı olabilir; özellikle strateji geçmiş veriye fazla uydurulmuşsa (overfitting) canlıda aynı sonucu vermez. Bu yüzden backtest'ten sonra mutlaka forward testing yapılır: strateji, hiç görmediği yeni veriler üzerinde paper ya da testnet modunda izlenir.
Testnet ile canlı piyasa farkı
Test ağında başarılı çalışan bir bot canlıda farklı davranabilir:
- Emir defteri ince: Test ağında küçük coinlerde alıcı ve satıcı az olduğu için emirler geç dolar ya da hiç dolmaz.
- Fiyat sapması: Test ağındaki fiyat, gerçek piyasadan ayrışabilir. Benim botum test ağında test ağının kendi fiyatını kullanıyor; aksi halde gerçek fiyata göre verilen emirler dolmuyor.
- Kayma (slippage): Canlı piyasada büyük emirler beklenen fiyattan daha kötü dolabilir.
- Bakım ve sıfırlamalar: Test ortamları zaman zaman sıfırlanabilir; testnet bakiyen ve açık emirlerin silinebilir.
Binance testnet API hataları ve çözümleri
| Hata | Olası neden | Çözüm |
|---|---|---|
-2015 Invalid API-key |
Canlı anahtarı test ağında (ya da tersi) kullanıyorsun | Doğru ortamın anahtarını kullan |
-1021 Timestamp |
Bilgisayar saati kaymış | Sistem saatini senkronize et |
-1022 Invalid signature |
İmzalanan metin ile gönderilen metin farklı | Parametreleri aynı sırayla imzala ve gönder |
-2019 Margin is insufficient |
Test bakiyesi yetersiz ya da başka pozisyona bağlı | Pozisyonu küçült, test bakiyesini yenile |
| Emir hiç dolmuyor | Emir defteri ince, fiyat uzakta | Likit bir çiftle (BTCUSDT gibi) test et |
Botun test sırasında attığı her emri ve aldığı her hatayı loglaman, Python trading bot debug sürecini çok kısaltır.
Kripto botu test etme kontrol listesi
Kripto al sat botu test etme sürecinde şu senaryoları mutlaka dene:
- Bot açılırken internet yok: ne yapıyor?
- WebSocket bağlantısı koparsa yeniden bağlanıyor mu?
- Limit emir yarısı dolmuşken bot yeniden başlarsa pozisyonu tanıyor mu?
- Stop seviyesine gelindiğinde pozisyon gerçekten kapanıyor mu?
- Yetersiz bakiye hatasında bot çökmeden devam ediyor mu?
- Aynı emir iki kez gönderiliyor mu?
- Günlük zarar limiti aşıldığında bot duruyor mu?
Bu senaryolar test ağında sorunsuz geçmeden canlıya geçmemek gerekir. Bir müşteri için geliştirdiğim botun nasıl çalıştığını merak edersen WhatsApp destek botu nasıl çalışır? yazıma bakabilirsin.
Sonuç
Binance testnet API anahtarı, botunu gerçek para riski olmadan gerçek borsa mekaniğiyle denemeni sağlar. Doğru sıra; önce backtest ile stratejiyi geçmiş veride görmek, sonra paper trading ile bugünkü piyasada izlemek, ardından testnet ile emir mekaniğini ve hataları denemektir. Testnet'te kusursuz çalışan bir bot bile canlıda farklı davranabilir; bu yüzden canlıya küçük ve sınırlı adımlarla geçilmelidir.
Kendi botun için test ortamı ve paper trading altyapısı kurmak istersen Python botları ve otomasyon sayfama bakabilir ya da iletişim sayfamdan yazabilirsin.
