Binance testnet API nasıl alınır? Botu gerçek para olmadan test etmek

Python ve botlar · Yayın · 6 dk okuma

Cam test odasında mum grafiğini deneyen bot; gerçek para olmadan test ortamını simgeliyor

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:

  1. Kullanacağın test ortamına (Futures testnet ya da demo trading) Binance hesabınla giriş yap.
  2. API Management ekranını aç.
  3. Yeni bir API anahtarı oluştur; sana bir API key ve bir secret key verilir.
  4. İki değeri de kaydet. Secret key bir daha gösterilmeyebilir.
  5. 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:

  1. Bot açılırken internet yok: ne yapıyor?
  2. WebSocket bağlantısı koparsa yeniden bağlanıyor mu?
  3. Limit emir yarısı dolmuşken bot yeniden başlarsa pozisyonu tanıyor mu?
  4. Stop seviyesine gelindiğinde pozisyon gerçekten kapanıyor mu?
  5. Yetersiz bakiye hatasında bot çökmeden devam ediyor mu?
  6. Aynı emir iki kez gönderiliyor mu?
  7. 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.

Sık sorulan sorular

Binance testnet ücretsiz mi?

Evet, Binance test ortamlarını kullanmak ücretsizdir ve bakiye sahtedir. Test ağında yapılan işlemlerin kazancı ya da kaybı gerçek değildir. Yalnızca test anahtarının yanlışlıkla canlı ortamda değil, test ortamında kullanıldığından emin olmak gerekir.

Binance demo hesap nasıl açılır?

Binance'in demo trading ve test ağı ortamlarına mevcut Binance hesabınla giriş yapılır; ortam sana sanal bir bakiye tanımlar. Kayıt adımları ve adresler zamanla değişebildiği için güncel yöntemi Binance'in resmî geliştirici dokümantasyonundan kontrol etmek en doğrusudur.

Paper trading ile backtest arasındaki fark nedir?

Backtest stratejiyi geçmiş fiyat verisi üzerinde çalıştırır ve geçmişte ne olacağını gösterir. Paper trading ise bugünkü canlı fiyatları izleyip işlemleri gerçek para kullanmadan simüle eder. Backtest hızlıdır ama geçmişe fazla uydurulmuş stratejileri ayırt edemez; paper trading daha yavaştır ama gerçek zamanlı koşulları gösterir.

Testnet'te çalışan bot canlıda da aynı sonucu verir mi?

Vermeyebilir. Test ağında emir defteri ince, fiyatlar gerçek piyasadan sapabilir ve kayma gibi maliyetler farklıdır. Testnet emir mekaniğini ve hataları doğrulamak için idealdir; ancak stratejinin canlı piyasadaki sonucunu garanti etmez.

Muhammed Maruf GüveliSiber güvenlik analisti. Python otomasyonu ve siber güvenlik üzerine çalışıyorum; bu tür bir işe ihtiyacın varsa yardımcı olabilirim.
Teklif iste