İçeriğe geç
Ara
Rehber

Kripto al-sat ve likidite botu nasıl kurulur? Adım adım rehber

Baran · Yapay zekâ yazar · · Editör: Doğukan Taşdemir

Masa üzerinde dizüstü bilgisayar, veri kablosuyla bağlı küçük sunucu ve ekranında tek kırmızı bildirim noktası olan akıllı telefon yer alıyor.
Görsel: yapay zekâyla üretilmiş özgün illüstrasyon.

Bir al-sat ya da likidite botu kurmak artık birkaç ücretsiz repo, bir borsa API anahtarı ve bir yapay zekâ aboneliğiyle mümkün. Zor olan kısım botu güvenli kurmak ve kâr edip etmediğini dürüstçe ölçmek. Bu rehber, Sayıyla’nın üç bot üzerinde (Solana’da likidite ekleyen bir bot, Binance ve Bybit’te spot kripto motoru ve Binance’teki ABD hisse tokenları) yaptığı çalışmalardan çıkan kuralları adım adım anlatıyor: anahtarı nasıl alacağını, nereye koyacağını, hangi RPC ve API’lere ihtiyacın olduğunu, Claude ya da ChatGPT ile botu nasıl yazdıracağını ve Telegram’a nasıl bağlayacağını.

Bu yazı yatırım tavsiyesi değildir. Botlarımız araştırma amaçlı kâğıt (sanal parayla) testlerinde çalışıyor. Rehber de seni önce kâğıt modunda başlatacak şekilde yazıldı.

Konu başlıkları

Rehber uzun. İhtiyacın olan bölüme doğrudan atlayabilirsin:

Başlamadan önce: neye ihtiyacın var?

Bir botu çalıştırmak için pahalı bir altyapı gerekmiyor. Başlangıç listesi şu:

Gereken Ne için Ücret
Bilgisayar ya da sanal sunucu (VPS) Botun 7/24 çalışması; IP kısıtı için sabit IP Kendi bilgisayarın ücretsiz, VPS aylık ücretli
Python 3.11+ ya da Node.js 22+ Botun dili Ücretsiz
Borsa hesabı ve API anahtarı Fiyat verisi ve emir Hesap ücretsiz, işlemde komisyon var
Test ağı anahtarı Sanal bakiyeyle emir denemek Ücretsiz
Telegram hesabı Bildirim ve acil durdurma Ücretsiz
Solana RPC adresi (yalnızca zincir üstü bot için) Havuz okuma, işlem gönderme Ücretsiz katman yeterli
Claude ya da ChatGPT aboneliği Kodu yapay zekâya yazdırmak Aylık abonelik

Hukuki tarafı da baştan kontrol et. Türkiye’de kripto varlık hizmet sağlayıcıları 7518 sayılı Kanun’la SPK denetimine girdi ve kanun 2 Temmuz 2024’te yürürlüğe girdi [1]. SPK’nın “Faaliyette Bulunanlar Listesi” geçici bir liste ve SPK, listede yer almanın platformun yetkilendirildiği anlamına gelmediğini açıkça yazıyor. Listede 43 alım satım platformu var. Binance Turkey, Btcturk, Paribu, OKX TR ve Bybit bunlar arasında. Kullandığın platformun bu listede olup olmadığını ve son kararları kontrol et. Örneğin SPK, 23.09.2026 tarihli kararla Bitexen’in ikinci bir duyuruya kadar yeni müşteri kabul etmesini ve yeni varlık listelemesini durdurdu.

Adım 1: Borsa hesabını korumak

Bot anahtarından önce hesabın kendisini sağlamlaştır. Anahtar ne kadar sınırlı olursa olsun, hesabın ele geçirilirse anahtarın bir önemi kalmaz.

  1. İki adımlı doğrulamayı SMS ile değil, doğrulama uygulamasıyla ya da geçiş anahtarıyla (passkey) aç. Binance API anahtarı oluşturmak için zaten 2FA, spot cüzdana herhangi bir tutarda yatırma ve kimlik doğrulama istiyor [2].
  2. Hesap ayarlarındaki oltalama karşıtı kodu (anti-phishing code) tanımla. Borsadan gelen gerçek e-postalarda bu kod görünür.
  3. Çekim adresi beyaz listesini aç. Böylece para yalnızca senin önceden onayladığın adreslere çekilebilir.
  4. Bot için ayrı bir alt hesap (sub-account) kullan ve oraya yalnızca botun işleteceği tutarı koy. CCXT ekibinin güvenlik listesi de bunu öneriyor: bir sızıntıda kaybın, alt hesaptaki tutarla sınırlı kalır [8].

Adım 2: Borsadan bot için API anahtarı almak

İki katmanlı dijital güvenlik panelinde çekim yuvası kırmızı bir asma kilitle kapatılmış, işlem kanalları açık bırakılmış kesit görünümü.

API anahtarı, botun senin yerine borsayla konuşmasını sağlayan kimlik. Bir anahtar iki ya da üç parçadan oluşur: herkese görünebilen anahtar (API key), gizli anahtar (secret) ve bazı borsalarda senin belirlediğin bir parola (passphrase). Gizli parça oluşturulduğu anda ekranda bir kez gösterilir. Hemen kopyalayıp .env dosyasına koymazsan anahtarı silip yenisini oluşturman gerekir.

Binance’te anahtar oluşturma

Binance’te web sitesinden yol şu [2]:

  1. Giriş yap, sağ üstteki profil simgesine tıkla ve Account (Hesap) sayfasını aç.
  2. API Management (API Yönetimi) bölümüne gir ve Create API (API Oluştur) düğmesine bas.
  3. Anahtar türünü seç. System-generated, Binance’in ürettiği HMAC anahtarı. Self-generated ise senin ürettiğin Ed25519 ya da RSA anahtar çiftinin açık parçası.
  4. Anahtara bir ad ver (örneğin spot-bot-1) ve 2FA ya da geçiş anahtarıyla onayla.
  5. Oluşan anahtarda Edit restrictions (Kısıtlamaları düzenle) ekranını aç ve izinleri aşağıdaki tabloya göre ayarla.

Uygulamada da aynı menü var: Binance Pro görünümünde More (Daha fazla) > API Management yolu [2].

Hangi anahtar türü? Binance’in geliştirici belgesi HMAC’i eskimiş (deprecated) sayıyor ve Ed25519 öneriyor [3]. Ed25519’da gizli anahtar hiç Binance’e gitmez, yalnızca açık anahtarı yüklersin. Anahtar çiftini OpenSSL ile şöyle üretebilirsin:

openssl genpkey -algorithm ed25519 -out anahtarlar/binance-ozel.pem
openssl pkey -in anahtarlar/binance-ozel.pem -pubout -out anahtarlar/binance-acik.pem

binance-acik.pem içeriğini Binance’e yapıştırırsın. binance-ozel.pem bilgisayarında kalır ve hiçbir yere yüklenmez.

Çekimi kapatmak ve izinleri ayarlamak

En önemli kural: bot para çekmez, yalnızca işlem yapar. İzinleri en azda tut:

İzin API’deki alanı Spot bot için Neden
Okuma enableReading Açık Bakiye ve emir durumunu okumak için
Spot işlem enableSpotAndMarginTrading Açık Emir vermek için
Marjin borçlanma enableMargin Kapalı Spot bot borç almaz
Vadeli işlem enableFutures Kapalı Spot bot vadeli işlem açmaz
Çekim enableWithdrawals Kapalı Anahtar çalınırsa para dışarı çıkamaz
Hesaplar arası transfer enableInternalTransfer, permitsUniversalTransfer Kapalı Para taşıma gerekmiyor
IP kısıtı ipRestrict Açık Anahtar yalnızca senin sunucundan çalışır

Alan adları, Binance’in anahtar izinlerini döndüren uç noktasından [4]. Arayüzdeki adlar bunlara karşılık geliyor (örneğin çekim için “Enable Withdrawals”).

Binance bu konuda zaten sert: IP kısıtı olmayan sistem anahtarları (HMAC) 30 Ocak 2023’ten beri yalnızca okuma izni alabiliyor. Çekim iznini açmak ise IPv4 kısıtı olmadan mümkün değil [2]. IP kısıtı için sunucunun dış IP adresini yaz. Evdeki bağlantının IP’si değişiyorsa sabit IP’li bir VPS daha güvenilir olur.

Çekimin gerçekten kapalı olduğunu kodla da doğrulayabilirsin. Binance’in GET /sapi/v1/account/apiRestrictions uç noktası anahtarın izinlerini döndürüyor. Yanıtta enableWithdrawals, ipRestrict ve enableSpotAndMarginTrading gibi alanlar var [4]. Botun açılışta bu uç noktayı okuması ve enableWithdrawals doğruysa kendini durdurması iyi bir emniyet kemeri.

Önce test ağı: sanal bakiyeyle gerçek emir akışı

İlk haftalarda gerçek hesaba hiç bağlanma. Binance Spot Testnet’te anahtarı GitHub hesabınla giriş yapıp ücretsiz alıyorsun [5]. HMAC, RSA ve Ed25519 anahtarlarının hepsi destekleniyor. REST adresi https://testnet.binance.vision/api. Bakiyeler sanal, dışarı çıkarılamıyor ve ağ yaklaşık ayda bir, haber verilmeden sıfırlanıyor.

Bybit’te karşılığı Demo Trading: gerçek hesabınla giriş yapıp Demo Trading’e geçiyorsun ve oradaki avatar menüsünden API anahtarı üretiyorsun. Demo REST adresi https://api-demo.bybit.com ve demo emirler 7 gün sonra siliniyor [7]. OKX’te demo anahtarlar aynı alan adını kullanıyor, isteğe x-simulated-trading: 1 başlığı ekleniyor ve demo anahtarlarının süresi dolmuyor [9].

Bybit ve OKX’te farklar

Borsa Nerede oluşturulur Dikkat edilecek nokta
Binance Account > API Management IP kısıtı yoksa yalnızca okuma; Ed25519 önerilen tür [2][3]
Bybit Yalnızca web sitesinde, API Management > Create New Key Uygulamadan oluşturulamıyor, yeni hesaplarda ilk 48 saat kısıtlı olabilir, Google Authenticator onayı isteniyor [6]
OKX Hesap > API sayfası Anahtar, gizli anahtar ve senin belirlediğin passphrase üçlüsü gerekiyor. Passphrase unutulursa kurtarılamıyor. Bir anahtara en çok 20 IP bağlanabiliyor. IP bağlı olmayan, işlem ya da çekim izinli anahtarların süresi 14 gün kullanılmayınca doluyor [9]

Btcturk gibi yerli borsaların da API’si var. İzin adları ve IP kısıtı seçenekleri borsadan borsaya değiştiği için oluştururken aynı ilkeyi uygula: okuma ve işlem açık, çekim kapalı, IP kısıtı açık.

Anahtar güvenliği kuralları

CCXT ekibinin Temmuz 2026’da yayımladığı güvenlik listesine göre “fonlarım gitti” hikâyelerinin çoğunda borsa hacklenmiyor. Anahtar ya açık bir repoya, Docker imajına, oltalama sitesine ya da ele geçirilmiş bir sunucuya sızıyor [8]. Kurallar:

  1. Her bot için ayrı anahtar aç. Biri sızarsa yalnızca onu iptal edersin ve borsanın erişim kayıtlarından hangisinin sızdığını görürsün.
  2. Çekim izni hiçbir bot anahtarında açık olmasın.
  3. Anahtarı sunucu IP’sine bağla. Saldırgan hem anahtara hem sunucuna erişmek zorunda kalır.
  4. Anahtarı koda değil .env dosyasına koy. Bir kez GitHub’a giden anahtarı sonradan silmek yetmez, yanmış say ve yenile [8].
  5. Hata ayıklama çıktısını (--verbose) loglara yazdırma. Bu çıktı kimlik doğrulama başlıklarını da içerebiliyor.
  6. Anahtarları belirli aralıklarla ve şüpheli bir şey gördüğünde hemen yenile. Bir anahtarı ne kadar hızlı iptal edebildiğini önceden dene.
  7. Bakiye ve emirlerini izle. Senin vermediğin bir emir gördüğünde anahtarı hemen sil.

Adım 3: Anahtarları ve RPC adreslerini .env dosyasına koymak

Masa üzerinde kapalı siyah bir dosya klasörü, yanında duran kırmızı bir güvenlik anahtarı ve sade not defterinin üstten çekim görünümü.

Botun bütün gizli bilgileri tek bir dosyada durur: proje klasöründeki .env. Kod bu dosyayı açılışta okur. Anahtarlar, RPC adresleri ve cüzdan dosyasının yolu mutlaka bu dosyaya yazılır. Kodun içine, yapay zekâ sohbetine ya da ekran görüntüsüne asla girmez.

Örnek bir .env dosyası (değerleri kendi anahtarlarınla doldur):

# .env : GitHub'a, sohbete ve ekran görüntüsüne girmez
MOD=kagit

# Borsa (önce test ağı)
BINANCE_TESTNET=1
BINANCE_API_KEY=
BINANCE_API_SECRET=
BINANCE_OZEL_ANAHTAR_DOSYASI=anahtarlar/binance-ozel.pem

# Telegram
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=

# Solana (yalnızca zincir üstü bot)
SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=BURAYA_HELIUS_ANAHTARI
SOLANA_RPC_YEDEK=https://api.mainnet.solana.com
SOLANA_CUZDAN_DOSYASI=anahtarlar/bot-cuzdani.json
JUPITER_API_KEY=

# Veri servisleri
COINGECKO_API_KEY=

Aynı klasöre bir .gitignore koy ki bu dosyalar yanlışlıkla yüklenmesin:

.env
.env.*
!.env.example
anahtarlar/
*.pem
*.db

.env.example adında, değerleri boş bırakılmış bir kopya tut. Bu dosya repoya girebilir ve hangi değişkenlerin gerektiğini gösterir. Python’da .env dosyasını python-dotenv paketi okur:

import os
from dotenv import load_dotenv

load_dotenv()  # .env dosyasını ortam değişkenlerine yükler
MOD = os.environ.get("MOD", "kagit")
RPC = os.environ["SOLANA_RPC_URL"]

Bir uyarı daha: .env dosyası yalnızca sana ait olmalı. Mart 2026’da GitHub’da ele geçirilmiş bir kuruluş hesabından dağıtılan sahte bir Polymarket botu, bağımlılıklarına gizlenmiş paketlerle .env dosyalarını, cüzdan özel anahtarlarını ve Solana id.json anahtar dosyalarını saldırganların sunucusuna gönderdi [10]. Bu yüzden başkasının yazdığı bir botu çalıştırmadan önce bağımlılıklarını kontrol et ve cüzdanında yalnızca kaybetmeyi göze aldığın tutarı tut.

Adım 4: Hangi API’ler ve RPC’ler gerekli?

Botun ihtiyaç duyduğu verilerin çoğu anahtarsız ya da ücretsiz anahtarla alınabiliyor. Sayıyla botlarının kullandığı servisler ve .env dosyasında hangi adla tutulduğu:

Servis Ne verir Anahtar ve ücretsiz sınır .env değişkeni
Binance açık uç noktaları (api.binance.com/api/v3) Spot mum, fiyat, emir defteri Anahtarsız Gerekmez
Binance vadeli açık uç noktaları (fapi.binance.com) Fonlama oranı, açık pozisyon Anahtarsız; bazı veriler yalnızca son 30 gün Gerekmez
Binance API anahtarı [2] Gerçek hesapta emir IP kısıtı olmadan yalnızca okuma BINANCE_API_KEY, BINANCE_API_SECRET
Binance Spot Testnet [5] Sanal bakiyeyle emir GitHub ile ücretsiz BINANCE_TESTNET=1
Bybit açık API (api.bybit.com/v5) Spot mum ve fiyat Anahtarsız Gerekmez
CoinGecko Demo [11] 3 binden fazla coinin piyasa verisi Ücretsiz anahtar, dakikada 100 çağrı COINGECKO_API_KEY
GeckoTerminal [12] DEX havuzu ve mum verisi Dakikada 10 çağrıdan başlayan ücretsiz sınır Gerekmez
DEX Screener [13] DEX çiftleri, token profilleri Bazı uç noktalarda dakikada 60 istek Gerekmez
Meteora açık API DLMM havuz listesi, hacim, ücret/TVL Anahtarsız Gerekmez
Jupiter [14] Solana token fiyatı ve takas rotası Anahtarsız dakikada 30, ücretsiz anahtarla dakikada 60 istek; anahtar x-api-key başlığıyla JUPITER_API_KEY
RugCheck Solana token risk raporu Anahtarsız; yalnızca veto için Gerekmez
Solana genel RPC [15] Zincir okuma ve işlem gönderme IP başına 10 saniyede 100 istek; üretim için değil SOLANA_RPC_YEDEK
Helius [16] Solana RPC Ayda 1 milyon kredi, saniyede 10 RPC isteği, saniyede 1 işlem gönderimi SOLANA_RPC_URL
Alpaca [17] ABD hissesi kâğıt işlem ve veri Ücretsiz, e-postayla, 100.000 $ sanal bakiye ALPACA_API_KEY
Alpha Vantage [18] Hisse fiyatı ve temel veri Ücretsiz anahtar, günde 25 istek ALPHAVANTAGE_API_KEY
Telegram Bot API [20] Bildirim ve komut BotFather’dan ücretsiz token TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID

Kaynak: Servislerin resmî sayfaları, 16 Ekim 2026; Meteora ve RugCheck için Sayıyla botunun kullanımı.

Ücretsiz sınırlar dar olduğu için veriyi bir kez çekip yerel bir veritabanında (SQLite yeterli) sakla. Binance’in vadeli pozisyon verisi gibi bazı uç noktalar yalnızca son 30 günü veriyor. Bu veriyi uzun dönemde test etmek istiyorsan bugünden günlük kaydetmeye başlaman gerekiyor.

Solana RPC nedir, nasıl alınır ve nereye konur?

RPC, botunun Solana ağıyla konuştuğu adres. Havuz durumunu okumak, bakiyeni sorgulamak ve işlem göndermek hep bu adres üzerinden yapılıyor. Solana’nın genel adresi https://api.mainnet.solana.com ücretsiz, ama Solana’nın kendi belgesi bu adreslerin üretim uygulamaları için olmadığını yazıyor. Sınır IP başına 10 saniyede 100 istek, tek bir yöntem için 10 saniyede 40 istek ve sınırlar haber verilmeden değişebiliyor [15].

Bu yüzden ana RPC olarak bir sağlayıcıdan ücretsiz anahtar al. Helius örneği:

  1. Helius’a ücretsiz kaydol ve panelden bir API anahtarı oluştur [16].
  2. Ana ağ adresin şu biçimde olur: https://mainnet.helius-rpc.com/?api-key=ANAHTARIN. Deneme ağı için devnet.helius-rpc.com kullanılıyor [19].
  3. Bu adresin tamamını .env dosyasında SOLANA_RPC_URL satırına yapıştır. Adresin içinde anahtar olduğu için bu satır da gizli bilgidir.
  4. Genel Solana adresini SOLANA_RPC_YEDEK olarak ekle ve yalnızca okuma için yedek olarak kullan. İşlem gönderimini her zaman ana RPC’den yap.

Helius’un ücretsiz planı ayda 1 milyon kredi ve saniyede 10 RPC isteği veriyor. İşlem gönderimi saniyede 1 ile sınırlı. En ucuz ücretli plan ayda 49 $ [16]. QuickNode, Alchemy ve Chainstack gibi sağlayıcıların da ücretsiz katmanı var, ama her biri krediyi farklı hesaplıyor. Seçmeden önce kendi fiyat sayfalarına bak.

Botumuzda canlıda görülen bir RPC tuzağı: bir işlemden hemen sonra yapılan bakiye okuması başka bir RPC kopyasından eski değeri döndürebiliyor. Bakiye okumalarını, işlemin girdiği slota sabitlemek gerekiyor.

Zincir üstü bot için cüzdan

Likidite ya da DEX botu borsada değil, kendi cüzdanınla işlem yapar. Bu yüzden:

  1. Bot için yeni ve ayrı bir cüzdan oluştur, ana cüzdanını asla kullanma. Solana CLI ile: solana-keygen new --outfile anahtarlar/bot-cuzdani.json.
  2. Bu dosyanın yolunu .env dosyasında SOLANA_CUZDAN_DOSYASI satırına yaz. Dosyanın kendisini kodun içine kopyalama.
  3. Cüzdana yalnızca botun işleteceği tutarı ve işlem ücretleri için küçük bir SOL fazlasını koy.
  4. Kurtarma kelimelerini (seed phrase) hiçbir yazılıma, sohbete ya da “destek” ekibine verme.

Adım 5: Botun iskeleti

Likidite botu, spot kripto botu ve hisse tokenı botu farklı piyasalarda çalışsa da aynı yedi katmandan oluşuyor:

Üç botun ortak iskeleti Yedi katman: veri toplama, eleme kapıları, sinyal, risk ve boyut, emir, izleme ve çıkış, kayıt ve karne. Her bot önce kâğıt modunda çalışır. ORTAK İSKELET 1Veri toplamum, havuz, emir defteri, duyuru 2Eleme kapılarıveri yoksa kapı geçilmiş sayılmaz 3Sinyal ve puankural önceden yazılır 4Risk ve boyutportföy × risk ÷ stop mesafesi 5EmirIP kısıtlı, çekim izni kapalı anahtar 6İzleme ve çıkışdurum veritabanında kalıcı 7Kayıt ve karneönce kâğıt, sonra küçük canlı
Üç botun ortak iskeleti. Kaynak: Sayıyla botlarının yapısı

Her katmanın tek bir işi var. Veri katmanı mumları, havuz verisini ve duyuruları toplar. Eleme kapıları bir varlığı daha puanlanmadan reddeder. Bizim kuralımız, verisi gelmeyen bir kapının geçilmiş sayılmaması. Sinyal katmanı önceden yazılmış kurala göre aday seçer. Risk katmanı pozisyonun büyüklüğünü belirler, emir katmanı borsaya gider, izleme katmanı çıkış kurallarını çalıştırır.

Son katman en çok ihmal edilen: kayıt ve karne. Her kararı, reddedilenler dahil, nedeniyle birlikte veritabanına yaz. Likidite botumuz 15 günde 155.544 karar kaydetti ve bunların yalnızca 423’ü aday oldu, yani 423 / 155.544 yaklaşık %0,27. Bu kayıt olmasaydı hangi kapının neyi koruduğunu ölçemezdik. Bir ders daha: durum (açık pozisyonlar, stop sayaçları, bekleme süreleri) bellekte değil veritabanında tutulmalı. Aksi hâlde bot yeniden başlayınca kuralları unutuyor.

Pozisyon büyüklüğü için basit bir formül yeterli: pozisyon = portföy × işlem riski ÷ zarar kes mesafesi. 10.000 USDT’lik bir hesapta işlem başına %1 risk 10.000 × 0,01 = 100 $ eder. Zarar kes %5 uzaktaysa pozisyon 100 / 0,05 = 2.000 $ olur. Tek pozisyonu portföyün %20’siyle, toplam açık riski %5’le sınırla. Bir de devre kesici koy: 24 saatte belirlediğin zarar sınırı (örneğin %3) aşılırsa bot yeni giriş yapmasın.

Adım 6: Başlangıç için hangi metrikleri izlemeli?

İki kefeli mekanik terazide bir tarafta büyük geometrik kâr bloğu, diğer tarafta tek kırmızı renkte maliyet ağırlığı duran gravür sahnesi.

Bir botu “kâr etti mi?” sorusuyla değerlendirmek yetmez. Kısa bir dönemde şans, piyasanın genel yönü ve maliyetler sonucu tamamen değiştirebilir. Başlangıç için şu metrikleri her gün otomatik hesaplat:

Metrik Ne ölçer Nasıl hesaplanır Başlangıç eşiği önerisi
Net getiri Maliyet sonrası sonuç (Bitiş − başlangıç − komisyon − kayma) ÷ başlangıç Kıyasla birlikte okunur
Azami düşüş En kötü tepe-dip kaybı Sermaye eğrisinin tepeden en derin düşüşü %15’in altı
Kâr faktörü Kazancın kayba oranı Toplam kazanç ÷ toplam kayıp 1’in altı zarar demek
İsabet (kazanma oranı) Kazanan işlem payı Kazanan tur ÷ kapanan tur %55’in üstü
R çoklu Riske göre sonuç İşlem kâr ya da zararı ÷ başlangıç riski Ortalama R artıda olmalı
İşlem sayısı ve maliyet payı Maliyetin sonucu ne kadar yediği Toplam komisyon ÷ başlangıç sermayesi Sık işlem yapan stratejide ilk bakılacak yer
Kıyas farkı Piyasanın etkisini ayırmak Bot getirisi − BTC ya da endeks getirisi Düşen piyasada da artıda olmalı
Rastgele girişe göre fark Sinyalin gerçek katkısı Aynı çıkış kurallarıyla rastgele girişin sonucu ile kıyas Sinyal rastgeleden iyi olmalı
Sharpe oranı Oynaklık başına getiri Ortalama getiri ÷ getirinin standart sapması 1,5’in üstü
t istatistiği Sonucun şanstan ayrışması Ortalama ÷ (standart sapma ÷ √işlem sayısı) 2’nin üstü

Bizim kullandığımız “kapı” bu eşiklerin hepsinin aynı anda sağlanması: bir strateji 2022’den bugüne Sharpe > 1,5, düşüş < %15, isabet > %55 ve t > 2 koşullarını birlikte geçmedikçe canlıya geçmiyor. Bu kapıyı geçmek zor ve bunun olması gereken de bu.

Bu liste bir başlangıç. Kendi botlarımız bunların üstüne şunları da izliyor:

  • Karar kaydı ve ret nedenleri: Hangi kapı kaç adayı eledi, elenenler sonra ne yaptı?
  • Fazla getiri: Coin getirisinden evrenin eşit ağırlıklı ortalamasını çıkarıyoruz. “Piyasa zaten yükseldi” etkisini ayıklıyor.
  • Lift: Sinyal sonrası başarı oranının taban orana bölümü. 1’in üstü sinyalin bir şey söylediğini gösterir.
  • Bilgi katsayısı (IC): Sinyal puanı ile sonraki getiri arasındaki günlük sıra korelasyonu (Spearman).
  • Brier skoru ve ECE: Olasılık veren modellerde tahminin isabeti ve kalibrasyonu. Sabit tahmine göre beceri aranır.
  • AUC: Bir sınıflandırıcının ayırt etme gücü. 0,5 yazı-tura demek.
  • Kayma: Beklenen fiyat ile gerçekleşen fiyat arasındaki fark.
  • Ücret/TVL ve kira payı: Likidite botunda havuzun ücret verimi ve zincir üstü kiranın pozisyona oranı.
  • Stop sonrası fiyat: Stop olan pozisyonlarda fiyat sonra ne yaptı? Stopun gerekli olup olmadığını gösterir.
  • Teknik sağlık: API hata oranı, RPC gecikmesi, kaçırılan döngüler.

Test disiplini: kendini kandırmamak

Bir botun geçmiş testte kazandırması kolay, testin dürüst olması zor. Kendi çalışmalarımızda yaptığımız ve sonradan düzelttiğimiz hatalardan çıkan kurallar şunlar:

  1. Evren her gün o günün listesi olmalı. Bugünün en likit coinleriyle geçmişi test etmek, bugünün kazananlarını geçmişe taşıyor ve sonucu olduğundan iyi gösteriyor.
  2. Kuralı ve kabul ölçütünü testten önce yaz. Yüzlerce kural denenirse biri şansla iyi çıkar. İlk yarıda en iyi çıkan kural ikinci yarıda çoğu zaman sıradanlaşıyor.
  3. Veriyi keşif ve sınama diye ikiye böl, sınama dönemine kural seçerken dokunma.
  4. Maliyeti gerçekçi koy: taraf başına %0,15 ya da gidiş-dönüş %0,3. Gerçek görünen küçük etkilerin çoğu bu maliyetle siliniyor.
  5. Rastgele girişle kıyasla. Aynı çıkış kurallarıyla rastgele giriş de kazandırıyorsa, kazancın kaynağı sinyal değil çıkış kuralı ya da piyasadır.
  6. Kalibrasyonu beceri sanma. Bir model iyi kalibre olup yine de sabit tahminden iyi olmayabilir.
  7. Mum içinde tepe ile dibin sırası bilinmez. Aynı mumda hem stop hem hedef varsa stop say.
  8. Repo ve sosyal medyadaki testlere güvenme. Yüksek yıldızlı bazı repolar kendi README’lerinde bütün işlemleri kaymasız ve komisyonsuz varsaydığını yazıyor.

Adım 7: Claude ile bot kurmak, adım adım

Sırayla yükselen üç basamaklı soyut podyum ve tepesinde kırmızı onay kalkanı simgesi taşıyan terminal ekranı.

Kodu yapay zekâya yazdırmanın iki yolu var. Sohbet arayüzünde (claude.ai) kodu parça parça ister ve kendi bilgisayarına kopyalarsın. Claude Code’da ise yapay zekâ doğrudan proje klasöründe çalışır, dosyaları kendisi oluşturur ve komutları çalıştırır. Bot gibi çok dosyalı bir projede ikinci yol çok daha rahat.

Sohbet arayüzüyle (claude.ai)

  1. claude.ai’de yeni bir Proje oluştur ve proje talimatlarına aşağıdaki “Prompt 0” kurallarını yapıştır. Böylece her sohbet bu kurallarla başlar.
  2. Promptları sırayla gönder. Her yanıtta oluşan dosyaları bilgisayarındaki proje klasörüne aynı adla kaydet.
  3. Hata aldığında hata mesajının tamamını yapıştır. Anahtar ya da .env içeriğini asla yapıştırma; hata mesajında anahtar görünüyorsa önce o kısmı sil.

Claude Code ile

  1. Kurulum. Windows’ta PowerShell’e irm https://claude.ai/install.ps1 | iex, macOS ve Linux’ta terminale curl -fsSL https://claude.ai/install.sh | bash yaz. Yeni bir terminal açıp claude --version ile kurulumu doğrula [21]. Windows’ta Git for Windows kurulu olması önerilir.
  2. Giriş. Claude Code, Pro, Max, Team ya da Enterprise aboneliğiyle veya Claude Console (önceden yüklenen API kredisi) hesabıyla çalışıyor. İlk açılışta tarayıcıdan giriş istiyor [21].
  3. Proje klasörünü aç: mkdir kripto-bot, cd kripto-bot, ardından claude.
  4. .env dosyasını okumasını engelle. Proje klasöründe .claude/settings.json dosyası oluşturup içine şu kuralı koy [22]:
{
  "permissions": {
    "deny": ["Read(./.env)", "Read(./.env.*)", "Read(./anahtarlar/**)"]
  }
}
  1. Kalıcı kurallar için klasöre CLAUDE.md dosyası koy ve “Prompt 0”daki kuralları içine yaz. Claude Code bu dosyayı her oturumda okur.
  2. İzin modunu açık tut. Claude Code komut çalıştırmadan ya da dosya değiştirmeden önce onay ister. Shift+Tab ile mod değişiyor [21]. Bot projesinde, özellikle paket kurma ve emir gönderen komutlarda onayı kapatma. Okuma yasağı Claude’un dosya okuma aracını engeller. Terminal komutlarını da sen onayladığın sürece .env güvende kalır.
  3. Promptları sırayla ver ve her adımda ne değiştiğine bak. Çalışan her aşamadan sonra git commit ile bir kayıt noktası al, böylece kötü bir değişikliği geri alabilirsin.

Adım 8: ChatGPT ile bot kurmak, adım adım

Sohbet arayüzüyle (chatgpt.com)

  1. ChatGPT’de yeni bir Proje aç ve talimatlara “Prompt 0” kurallarını yaz.
  2. Promptları sırayla gönder, oluşan dosyaları proje klasörüne kaydet.
  3. Claude’daki kural burada da geçerli: anahtar, .env içeriği ya da cüzdan dosyası sohbete girmez.

Codex ile

Codex, OpenAI’nin terminalde çalışan kodlama ajanı. Claude Code gibi proje klasöründe dosya oluşturup komut çalıştırıyor.

  1. Kurulum. macOS ve Linux’ta curl -fsSL https://chatgpt.com/codex/install.sh | sh, Windows PowerShell’de powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex". Node.js kuruluysa npm install -g @openai/codex da çalışıyor [23].
  2. Giriş. Proje klasöründe codex yaz ve “Sign in with ChatGPT” seç. Codex, ChatGPT’nin Plus, Pro, Business, Edu ve Enterprise planlarına dahil [23].
  3. İlk komut olarak /init yaz. Codex proje kurallarını tutan AGENTS.md dosyasını oluşturur. “Prompt 0”daki kuralları bu dosyaya ekle.
  4. /permissions ile Codex’in neleri sormadan yapabileceğini ayarla. Dosya düzenleme serbest olabilir, ama komut çalıştırma ve ağ erişimi için onay iste.
  5. Her aşamadan önce ve sonra git commit ile kayıt noktası al.

Adım 9: Yapay zekâya bu promptları yazdırarak başlayabilirsin

Aşağıdaki promptlar sırayla verilmek üzere yazıldı. Claude, Claude Code, ChatGPT ve Codex’te aynen çalışır. Köşeli parantezli yerleri kendi tercihinle değiştir.

Prompt 0: Proje kuralları (CLAUDE.md, AGENTS.md ya da proje talimatına)

Bu klasörde bir kripto al-sat botu yazacağız. Her zaman uyacağın kurallar:
- Varsayılan mod kâğıt (MOD=kagit). Gerçek emir için hem .env'de MOD=canli hem de komut satırında --canli gerekir.
- API anahtarları, RPC adresleri ve cüzdan dosyasının yolu yalnızca .env dosyasından okunur. .env dosyasını açma, içeriğini yazdırma, loga yazma.
- Koda gerçek ya da örnek anahtar yazma. .env.example dosyasında değerler boş kalır.
- Para çekme (withdraw) ya da hesaplar arası transfer yapan hiçbir fonksiyon yazma.
- Yeni paket eklemeden önce adını, sürümünü ve neden gerektiğini söyle, onayımı bekle. Sürümleri sabitle.
- Her karar (reddedilenler dahil) nedeniyle birlikte SQLite veritabanına yazılır.
- Emin olmadığın bir API parametresini uydurma, resmî belgeyi göster ya da bana sor.

Prompt 1: Proje iskeleti

Python 3.12 ile bir spot al-sat botu iskeleti kur. Borsa bağlantısı ccxt, ayarlar python-dotenv ile .env'den, kayıt SQLite.
Klasörler: veri/, strateji/, risk/, emir/, bildirim/, kayit/.
Ayrıca .env.example, .gitignore (.env, anahtarlar/ ve *.pem dahil), requirements.txt (sürümler sabit) ve kurulum adımlarını anlatan README oluştur.
Önce dosya planını göster, onaylayınca yaz.

Prompt 2: Veri katmanı

Binance'in anahtarsız açık uç noktasından (GET /api/v3/klines) [BTCUSDT, ETHUSDT] için günlük ve 1 saatlik mumları çeken bir modül yaz.
Mumları SQLite'a kaydetsin, yeniden çalışınca yalnızca eksik mumları eklesin.
Hız sınırı hatası (HTTP 429) gelirse beklesin ve yeniden denesin. Birim testlerini de yaz.

Prompt 3: Kural ve geriye dönük test

Kuralım şu ve sonucu görünce değiştirmeyeceğiz: [kuralını buraya yaz].
Bu kural için geriye dönük test yaz:
- taraf başına %0,15 maliyet,
- aynı mumda hem stop hem hedef varsa stop say,
- 2019-2024 öğrenme dönemi, 2025 ve sonrası sınama dönemi,
- her gün o günün işlem gören coin listesi (bugünün listesi değil).
Rapor: net getiri, azami düşüş, kâr faktörü, isabet, işlem sayısı, toplam maliyet, Sharpe, t istatistiği, BTC'ye göre fark ve aynı çıkış kurallarıyla rastgele girişin sonucu.

Prompt 4: Risk modülü

risk/ modülünü yaz:
- pozisyon = portföy × işlem riski ÷ zarar kes mesafesi,
- işlem riski %1, tek pozisyon en çok portföyün %20'si, toplam açık risk en çok %5,
- 24 saatte gerçekleşen zarar %3'ü geçerse 12 saat yeni giriş yok,
- bütün eşikler ayar dosyasından gelsin, kodda sabit sayı olmasın.

Prompt 5: Emir modülü ve modlar

emir/ modülünü üç modla yaz: kagit (borsaya hiç gitmez, simülasyon), testnet (Binance Spot Testnet, ccxt set_sandbox_mode), canli.
Canlı mod yalnızca MOD=canli ve --canli birlikteyse açılsın.
Açılışta Binance'in GET /sapi/v1/account/apiRestrictions uç noktasını okusun: enableWithdrawals true ise ya da ipRestrict false ise botu durdursun ve nedenini yazsın.
Her emirden önce bakiye, en düşük emir tutarı ve fiyat adımı kontrol edilsin.

Prompt 6: Telegram bağlantısı

bildirim/telegram.py dosyasını yaz. TELEGRAM_BOT_TOKEN ve TELEGRAM_CHAT_ID .env'den gelsin.
Gönderilecek mesajlar: işlem açılış ve kapanışı, hata, günlük karne özeti.
Komutlar: /durum, /bakiye, /durdur. Yalnızca TELEGRAM_CHAT_ID'den gelen mesajlara yanıt ver, başka sohbetlerden gelenleri yok say ve logla.
Telegram'dan emir verme, para çekme ya da ayar değiştirme komutu olmasın. /durdur yeni girişleri kapatsın, açık pozisyonlara dokunmasın.

Prompt 7: Günlük karne

Her gün 23:59'da (Türkiye saati) karne üret: net getiri, azami düşüş, kâr faktörü, isabet, R ortalaması, işlem sayısı, toplam maliyet, BTC'ye göre fark ve her eleme kapısının kaç adayı elediği.
Karneyi SQLite'a yaz ve kısa özetini Telegram'a gönder.

Prompt 8: Güvenlik denetimi (her büyük değişiklikten sonra)

Projeyi güvenlik açısından denetle ve bulduklarını dosya ve satırla listele:
koda gömülü anahtar, loga ya da ekrana yazılan gizli değer, .gitignore eksikleri, sürümü sabitlenmemiş paket,
adı popüler bir pakete benzeyen (typosquat) paket, kurulumda betik çalıştıran paket, para çekme ya da transfer çağrısı.
Düzeltmeyi uygulamadan önce bana göster.

Prompt 9: Solana likidite botu iskeleti (zincir üstü bot için)

Meteora DLMM için kâğıt modunda çalışan bir likidite botu iskeleti yaz (TypeScript, Meteora'nın resmî dlmm-sdk paketi).
Havuz listesini Meteora'nın açık API'sinden al. Eleme kapılarını (TVL, ücret/TVL, 30 dakikalık hacim, token yaşı, mint ve freeze yetkisi, en büyük cüzdan payı) ayar dosyasına koy.
RPC adresi SOLANA_RPC_URL'den, yedek RPC SOLANA_RPC_YEDEK'ten, cüzdan dosyasının yolu SOLANA_CUZDAN_DOSYASI'ndan okunsun. Cüzdan dosyasının içeriğini asla yazdırma.
Kâğıt modda işlem imzalayan kod hiç çalışmasın. İşlemden sonra bakiye okumasını işlemin slotuna sabitle.

Yapay zekâyla bot yazarken iki şeye ayrıca dikkat et. Birincisi, yapay zekâ bazen var olmayan bir API parametresi ya da paket adı uydurabiliyor. Paket adlarını kurmadan önce resmî sayfasından kontrol et. Mart 2026’daki sahte bot olayında zararlı kod, popüler paketlere benzeyen adlarla gelen bağımlılıklara gizlenmişti [10]. İkincisi, yapay zekânın yazdığı her emir kodunu önce kâğıt, sonra test ağında çalıştır.

Adım 10: Botu Telegram’a bağlamak

İzometrik açıyla çizilmiş çalışma masasında, ekranında kırmızı renkli durdurma anahtarı simgesi bulunan akıllı telefon.

Telegram botu, bilgisayarın başında değilken botunun ne yaptığını görmenin ve gerekirse durdurmanın en kolay yolu.

Telegram botunu oluşturmak

  1. Telegram’da @BotFather hesabını aç ve /newbot yaz [20].
  2. Botuna görünen bir ad ver (örneğin “Benim Al-Sat Botum”).
  3. Kullanıcı adı seç. Ad 5 ile 32 karakter arasında olmalı, yalnızca Latin harfi, rakam ve alt çizgi içermeli ve “bot” ile bitmeli (örneğin benim_alsat_bot). Kullanıcı adı sonradan değiştirilemiyor [20].
  4. BotFather sana 110201543:AAH... biçiminde bir token verir. Token’ı ele geçiren herkes botunu yönetebilir. Hemen .env dosyasında TELEGRAM_BOT_TOKEN satırına yapıştır [20].
  5. Token sızarsa BotFather’da /token komutuyla yenisini üret. Eskisi geçersiz olur [20].

Sohbet kimliğini (chat_id) bulmak

Bot, mesajı kime göndereceğini sohbet kimliğinden bilir:

  1. Yeni botunu Telegram’da bul ve ona herhangi bir mesaj gönder (örneğin “merhaba”). Bot sana mesaj gönderebilmek için önce senden mesaj almış olmalı.
  2. Tarayıcıda https://api.telegram.org/bot<TOKEN>/getUpdates adresini aç (<TOKEN> yerine kendi token’ını yaz). Bu adres token’ını içerdiği için ekran görüntüsünü kimseyle paylaşma.
  3. Yanıtta "chat":{"id":...} kısmındaki sayıyı kopyala ve .env dosyasında TELEGRAM_CHAT_ID satırına yaz.

Telegram güncellemeleri en çok 24 saat saklıyor ve botuna bir webhook tanımlıysa getUpdates çalışmıyor [24]. Boş yanıt alırsan bota yeniden mesaj gönderip sayfayı yenile. Freqtrade kullanıyorsan kişisel sohbet kimliğini @userinfobot’a yazarak da öğrenebilirsin. Grupta ise bot eklendikten sonra /tg_info komutu grup kimliğini verir. Grup kimliği eksi işaretiyle başlar [25].

Telegram’a ilk mesajı göndermek

Python’da bütün iş birkaç satır:

import os
import requests
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
CHAT_ID = os.environ["TELEGRAM_CHAT_ID"]

def bildir(metin: str) -> None:
    requests.post(
        f"https://api.telegram.org/bot{TOKEN}/sendMessage",
        json={"chat_id": CHAT_ID, "text": metin},
        timeout=10,
    )

bildir("Bot başladı (kâğıt modu)")

Telegram’ın bütün istekleri https://api.telegram.org/bot<token>/YÖNTEM_ADI biçiminde ve HTTPS üzerinden gidiyor [24].

Telegram güvenlik kuralları

  • Bot yalnızca TELEGRAM_CHAT_ID’den gelen komutlara yanıt versin. Botun kullanıcı adını bulan herkes ona mesaj atabilir.
  • Botu bir gruba eklersen gruptaki herkes komut verebilir. Freqtrade’de authorized_users listesiyle komut verebilecek kişileri sınırlayabiliyorsun [25].
  • Telegram’dan yalnızca durum sorma ve durdurma komutları olsun. Emir verme, para çekme ya da ayar değiştirme komutu koyma.
  • Gruplarda botların gizlilik modu varsayılan olarak açık. Bot yalnızca kendisine yazılan komutları görür. Bu modu kapatmak gerekmiyor [20].

Freqtrade kullanıyorsan

Freqtrade’in Telegram desteği hazır geliyor. config.json içinde telegram bölümüne enabled: true, token ve chat_id yazman yeterli. Hazır komutlar arasında açık işlemleri gösteren /status, kâr özetini veren /profit, bakiyeyi gösteren /balance ve botu durduran /stop var [25].

Hangi hazır repolarla başlanabilir?

Botu sıfırdan yazmak yerine olgun bir açık kaynak projeyle başlayabilirsin. Aşağıdaki repoların hepsi ücretsiz. Lisans ve yıldız sayıları GitHub’dan 16 Ekim 2026’da alındı:

Repo Ne işe yarar Lisans Yıldız
freqtrade [26] Python kripto botu; backtest, Telegram ya da web arayüzü, kuru çalıştırma (dry-run) GPL-3.0 55.450
hummingbot [27] Merkezi ve merkeziyetsiz borsalarda piyasa yapıcılık ve strateji çerçevesi Apache-2.0 20.476
ccxt [28] 100’den fazla borsaya tek kütüphaneyle bağlantı; REST ve WebSocket MIT 44.395
jesse [29] Strateji araştırma, backtest, optimizasyon ve canlı işlem MIT 8.652
nautilus_trader [30] Rust tabanlı, olay güdümlü üretim motoru LGPL-3.0 30.139
Lean [31] QuantConnect’in hisse ve kripto motoru (C#, Python) Apache-2.0 22.031
vectorbt [32] Binlerce kuralı hızlı tarayan backtest kütüphanesi; satmak yasak Apache 2.0 + Commons Clause 9.394
backtrader [33] Python backtest kütüphanesi; son güncelleme 19 Ağustos 2024 GPL-3.0 23.490
OctoBot [34] Görsel arayüzlü grid ve DCA botu GPL-3.0 6.794
dlmm-sdk [35] Meteora DLMM pozisyonu açma ve kapatma (TypeScript) Belirtilmemiş 310
dlmmbot [36] Kâğıt moduyla başlayan DLMM likidite botu PolyForm Shield 1.0.0 4
alpaca-py [37] Alpaca’nın resmî Python SDK’sı; ABD hisse kâğıt işlemi Apache-2.0 1.553
yfinance [38] Yahoo Finance verisi; yalnızca kişisel ve eğitim amaçlı Apache-2.0 25.537
v3-core [39] Uniswap v3 akıllı sözleşmeleri BUSL 1.1, sonra GPL 2.0 5.036

Lisanslara dikkat et. GPL-3.0 lisanslı bir repoyu değiştirip dağıtırsan kodunu da açman gerekiyor. vectorbt’nin Commons Clause eki yazılımı satmayı yasaklıyor [32]. dlmmbot’un PolyForm Shield lisansı kişisel kullanıma izin veriyor, ama onunla rekabet eden bir ürün dağıtmana izin vermiyor [36]. yfinance’in README’si Yahoo ile hiçbir bağı olmadığını ve Yahoo Finance API’sinin yalnızca kişisel kullanım için olduğunu yazıyor [38]. Freqtrade’in README’si de botun önce kuru çalıştırma (Dry-Run) moduyla başlatılmasını öneriyor [26].

Bir repoyu kullanmadan önce: yıldız sayısı, son güncelleme tarihi ve sorun (issue) sayfası makul mü, bağımlılık listesinde garip adlı paket var mı, kurulumda betik çalıştırıyor mu? Hiç tanımadığın küçük bir “kârlı bot” reposunu ana bilgisayarında, gerçek anahtarlarla çalıştırma.

Bot türüne göre hangi kurallar değişir?

Likidite ekleme botu (Solana, Meteora DLMM)

Likidite sağlayıcı (LP), iki token içeren bir havuza sermaye koyar ve havuzda alım satım yapanların ödediği ücretten pay alır. Uniswap v3 ile gelen yoğunlaştırılmış likidite modelinde sermaye bir fiyat aralığına konuyor [40]. Fiyat bu aralıktayken pozisyon ücret kazanıyor. Aralığın dışına çıkınca likidite aktif olmaktan çıkıyor ve ücret durduruluyor. Fiyat bir yöne gittikçe pozisyon değer kaybeden tokena dönüşüyor.

Kaybın adı geçici kayıp (impermanent loss). Fiyat yeni fiyat / eski fiyat = r kadar değiştiğinde, tam aralıklı sabit çarpım havuzunda bu kayıp IL = 2√r / (1 + r) − 1 formülüyle hesaplanıyor. Fiyat iki katına çıkarsa ya da yarıya inerse kayıp %5,72, dört katına çıkarsa ya da dörtte birine inerse %20:

Fiyat değişimine göre geçici kayıp Hesap: IL = 2√r / (1 + r) − 1, r = yeni fiyat / eski fiyat
Fiyat değişimine göre geçici kayıp Tam aralıklı sabit çarpım havuzunda fiyat 2 katına çıkarsa ya da yarıya inerse yüzde 5,72; 4 katına çıkarsa ya da dörtte birine inerse yüzde 20 geçici kayıp. 00,25×0,50×0,75×1×1,5×2×3×4×−%20−%5,72−%1,030−%2,02−%5,72−%13,4−%20

Yoğunlaştırılmış likidite bu kaybı büyütüyor, çünkü aynı fiyat hareketi dar bir aralıkta çok daha büyük bir kısmı tek tokena çeviriyor. Meteora da DLMM stratejilerinin geçici kaybı ve aralık dışı riski ortadan kaldırmadığını açıkça yazıyor [41]. Meteora’nın DLMM modelinde fiyat aralığı “bin” adı verilen fiyat noktalarına bölünüyor. Üç hazır dağılım şekli var: binlere eşit dağıtan Spot, ortaya yoğunlaştıran Curve ve kenarlara yoğunlaştıran Bid-Ask. Meteora, Bid-Ask’ı oynak piyasalar ve kademeli giriş-çıkış (DCA) için öneriyor.

Bizim botumuz yalnızca SOL ile, Bid-Ask şeklinde ve fiyatın altında tek taraflı likidite açıyor. Bu pozisyon pratikte “ücret kazanan bir limit alış emri” gibi çalışıyor. Fiyat aralığa düşüp geri çıkarsa, alınan tokenlar alış fiyatının üstünde yeniden SOL’e satılıyor ve arada ücret de kazanılıyor. Fiyat düşüp geri gelmezse elde değeri düşmüş bir token kalıyor. Ölçtüğümüz en önemli ders şu: ücret toplamak kâr etmek değil. Ücret geliri, düşen tokenların değer kaybını ve işlem maliyetini geçmedikçe bot zarar eder.

Botun sonucu büyük ölçüde hangi havuza girmediğine bağlı. Kullandığımız başlangıç eşikleri, açık kaynak DLMM botlarının canlı defterlerinden ve kendi kalibrasyonumuzdan geliyor:

Kapı Eşik
Kote token SOL
Havuz büyüklüğü (TVL) 5.000 ile 2.000.000 $ arası
24 saatlik ücret/TVL Günde en az %20
30 dakikalık hacim En az 25.000 $
Hacim trendi (son 1 saat ÷ 24 saatlik saat ortalaması) En az 0,8
Taban ücret %0,2 ile %5 arası
Bin step En az 80 (7 günden genç tokenda)
Havuz fiyatı ile Jupiter fiyatı farkı Taramada en çok %5, girişten hemen önce %2
Pozisyonun havuza oranı En çok %20
Mint ve freeze yetkisi Kapalı olmalı
Tek cüzdan / ilk 10 cüzdan En çok %15 / %40
Token yaşı En az 45 dakika; 3 saatten gençse yarım boyut
RugCheck skoru “Danger” Veto

Kaynak: Sayıyla DLMM bot kuralları, 30 Eylül 2026.

İki kural tablodan daha önemli. Birincisi, aynı tokenın birden çok havuzu varsa en derin havuz seçiliyor. En yüksek ücret/TVL’li havuzu seçmek yapısal olarak en sığ havuzu seçmek demek. İkincisi, patlamanın tepesinde girilmiyor. Kendi kalibrasyonumuzda çok genç havuzlar, ilk saatlerde en kârlı görünen ama en çok can yakan grup çıktı. Eleme kapılarını gevşetmek daha çok pozisyon açtırıyor, ama daha çok kötü tokena girmek demek.

Zincir üstü maliyetler küçük pozisyonu öldürüyor. Bin array kirası geri gelmiyor ve SDK sabitine göre 0,07143744 SOL. Pozisyon hesabının 0,05740608 SOL’lük kirası ise kapanışta geri geliyor. 0,3 SOL’lük bir pozisyonda yaklaşık 0,075 SOL’lük kira 0,075 / 0,3 = 0,25 ile pozisyonun dörtte biri. Bu yüzden kiranın pozisyonun %25’ini geçmemesi bir kural. Bin kayma toleransını %1’e ayarlamak canlıda her açılışı hatayla düşürdü, %5 gerekiyor.

Bot her 15 ile 30 saniyede açık pozisyonları kontrol ediyor ve çıkış kurallarını öncelik sırasıyla uyguluyor:

Çıkış kuralları öncelik sırasıyla Her 15 ile 30 saniyede yukarıdan aşağı denetlenir: P0 güvenlik, P1 stop, geri verme, P2 rotasyon, P3 aralık üstü, kaçış kapısı, P5 aralık altı. HER 15-30 SANİYEDE, YUKARIDAN AŞAĞI 1P0 güvenlikTVL 10 dk'da %40+ düştü, fiyat 15 dk'da −%60 2P1 stopSOL değeri girişin %75'inin altında, 4 okuma 3Geri vermetepe kârın %75'ine geriledi 4P2 rotasyongünlük ücret/TVL 3 okumada %5'in altında 5P3 aralık üstüfiyat aralığa hiç girmedi, 45 dk bekle 6Kaçış kapısıderinliğin %60'ı altına inip üst %25'e döndü 7P5 aralık altı15 dk tolerans, sonra SOL'e çevir
Çıkış kuralları öncelik sırasıyla. Kaynak: Sayıyla DLMM bot kuralları, 30 Eylül 2026

P0 güvenlik kuralı her şeyden önce geliyor: havuzdaki TVL 10 dakikada %40’tan fazla düşerse ya da fiyat girişten sonraki 15 dakikada %60 çökerse pozisyon hemen kapatılıp token satılıyor. Stop kuralı gevşetilmiyor. Kâr tarafının asıl kaynağı kaçış kapısı: fiyat aralık derinliğinin %60’ından fazla düşüp sonra aralığın üst %25’ine geri dönerse pozisyon kapatılıyor, yani ucuzdan alınan tokenlar yükselişte satılıyor. Zarar tarafında ise en büyük kalem, havuzu boşaltılan ya da fiyatı çöken tokenlar. Bu yüzden bu stratejide kural yazarken daha fazla kâr aramaktan çok çöken tokenlara hiç girmemeye odaklan.

Spot kripto al-sat botu

Spot motorumuz Binance ve Bybit’te işlem gören 637 USDT spot varlıkla çalışıyor. Stabil coinler, kaldıraçlı tokenlar ve tokenlaştırılmış hisseler evrenin dışında. Günlük mumlar Binance’in açık API’sinden anahtarsız çekiliyor. Kuralları 2019-2024 verisinde seçip 2025’ten bugüne olan dönemde sınadık.

Örnek işlem kuralları: gün kapanışında giriş, 1,5 ATR (en az %4) zarar kes, pozisyonun yarısı +1,5R’de, kalanı +3R’de kâr al, ilk hedeften sonra stop girişe çekilir ve işlem en çok 7 gün tutulur. Taraf başına %0,15 maliyet düşülür.

Testlerin en net bulgusu, trend ve momentum stratejilerinin yalnızca güçlü piyasada işe yaradığı. Bu yüzden yeni alımı bir piyasa durumu kapısına bağla: BTC 200 günlük ortalamasının üstünde olmalı, ortalama yükseliyor olmalı ve eşit ağırlıklı altcoin endeksi de trendde olmalı. İkinci bir emniyet olarak “sigorta” kuralı koy: son 10 kapanmış işlemin toplamı belirlediğin sınırın (örneğin −2R) altına inerse yeni alımı durdur.

Kalabalığı izleyen sinyallere karşı dikkatli ol. Binance’in spot listeleme duyurularında fiyat duyuru günü yükseliyor, sonra eriyor:

Binance spot listeleme duyurusundan sonra fiyat Kaynak: Sayıyla spot kripto araştırması, 50 duyuru, Şubat 2024-Ekim 2026
Binance spot listeleme duyurusundan sonra fiyat 50 duyuru, Şubat 2024-Ekim 2026, medyan: duyuru günü artı yüzde 6,0, 1 gün sonra eksi 1,9, 3 gün sonra eksi 10,4, 7 gün sonra eksi 19,5, 30 gün sonra eksi 27,0. Duyuru günü+%6,0 +1 gün−%1,9 +3 gün−%10,4 +7 gün−%19,5 +30 gün−%27,0

Bu yüzden son 30 günde Binance’te listelenen ya da vadelisi açılan tokenları almamak iyi bir başlangıç kuralı. Son günlerde en çok yükselen tokenları kovalamak ve sosyal medyadaki “alım çağrılarını” izlemek de ölçümlerimizde tutarlı bir kazanç vermedi.

Uygulamada küçük kurallar canlıyla geçmiş testi ayrıştırıyor. Stop olan token aynı sinyalle hemen yeniden alınmasın, birkaç saat beklensin. 15 dakikada bir yoklama gün içi kırılımları kaçırıyor, bu yüzden borsada gerçek stop emri kullan. Binance’in mum uç noktasındaki startTime parametresi, açılışı o andan sonra olan mumları döndürüyor. Bunu yanlış anlarsan bazı aralıklar hiç denetlenmeden kalıyor.

Binance’teki ABD hisse tokenları (bStocks) için bot

Binance, 11 Haziran 2026’dan beri spot piyasada “bStocks” adlı tokenlaştırılmış ABD hisseleri listeliyor. İlk çiftler NVDAB, TSLAB, MUB, CRCLB ve SNDKB idi [42]. Binance’in kendi tanımına göre bStocks, Binance grubundan BTech Holdings Limited’in çıkardığı ve ihraççının tuttuğu hisseye bağlı bir sertifika. Yani hisseye doğrudan sahiplik vermiyor. Binance riskleri de uzun bir listeyle sayıyor: likidite, ihraççı, saklama, operasyon, düzenleme ve vergi riski, kesintiler ve yatırımın tamamını kaybetme olasılığı [42]. bStocks ABD’de ve ABD’lilere sunulmuyor. Erişemeyen ülkeler arasında Kanada, Hollanda, İran ve Kuzey Kore de var [43].

Temettü, normal bir hissedekinden farklı işliyor. Net nakit temettü, stopaj ve ücretler düşüldükten sonra aynı bStock olarak yeniden yatırılıyor. Kayıt tarihinden önce 1:1 dönüşüm ile yatırma ve çekme işlemleri askıya alınıyor, işlem ise devam ediyor [44].

Fiyat takibini ölçtük: 15 tokenı Yahoo’daki ABD kapanışıyla karşılaştırdık. Binance’in günlük mumu 00:00 UTC’de, ABD kapanışından yaklaşık 4 saat sonra kapandığı için fark kapanış sonrası hareketi de içeriyor.

bStocks ABD hissesini ne kadar yakından izliyor? Günlük kapanışta mutlak fark medyanı. Sayıyla ölçümü, Binance ve Yahoo günlük verisi, 16 Ekim 2026
Grafiğin verisi
KalemDeğer (%)
SPY%0,09
AAPL%0,13
QQQ%0,14
MSFT%0,17
TSLA%0,22
NVDA%0,24
META%0,25
PLTR%0,28
AMD%0,32
COIN%0,37
INTC%0,44
MSTR%0,46
CRCL%0,58

Büyük endeks fonlarının tokenları hisseyi çok yakın izliyor, daha oynak hisselerde fark büyüyor. Likidite ise ince. 95 tokenın son 30 gündeki günlük hacim medyanı yaklaşık 290 bin $ ve hafta sonu hacmi hafta içinin beşte biri kadar. ABD’nin normal seansı haftada 6,5 × 5 = 32,5 saat, token ise 7 × 24 = 168 saat işlem görüyor. Haftanın 32,5 / 168 yaklaşık %19’unda alttaki hisse açık. Bot için kurallar:

  • Alttaki hissenin fiyatını referans al. ABD seansı açıkken token ile hisse arasındaki fark büyürse işlem açma. Hisse fiyatı için Alpaca’nın ücretsiz kâğıt hesabı [17] ya da yfinance [38] kullanılabilir.
  • Hafta sonu emir verme. Hacim azalıyor ve fiyatın dayanacağı bir hisse fiyatı yok.
  • Temettü ve kurumsal işlem takvimini izle. Kayıt tarihinden önce dönüşüm ile yatırma-çekme duruyor [44].
  • Kripto momentum kurallarını kopyalama. Bunlar düşük oynaklıklı varlıklar.
  • Maliyeti kampanyaya göre değil, normal ücrete göre hesapla. Binance’in sıfır maker ücreti kampanyası 31 Ekim 2026’da bitiyor [43].

Binance’in kendi botları da bStocks’u destekliyor: 28 Ağustos 2026’dan beri spot Grid ve DCA botları bazı çiftlerde, Rebalancing botu ise 60’tan fazla çiftte açık [43]. Kendi botunu yazmadan önce bu piyasanın likiditesini tanımanın en düşük riskli yolu, küçük bir sepeti Binance’in Rebalancing botuyla dengelemek. Alpaca’nın kâğıt hesabı da ABD hissesinde bir kuralı denemek için iyi. Ama Alpaca bu hesabın temettüyü, piyasa etkisini ve gecikmeden doğan kaymayı modellemediğini yazıyor [17].

Canlıya geçmeden önce kontrol listesi

Yukarıdan bakışla, masada üzerinde soyut işaret kutuları bulunan pano ve yanında duran kırmızı kilitli anahtar.

Kâğıt ve test ağında en az birkaç hafta karne tuttuktan sonra, gerçek parayla başlamadan önce şunların hepsini işaretle:

  • Kural ve kabul ölçütü testten önce yazıldı, sonuç görüldükten sonra değiştirilmedi.
  • Kâğıt karnesi, kıyasa (BTC ya da endeks) ve rastgele girişe göre artıda.
  • Gerçek anahtarda çekim izni kapalı, IP kısıtı açık. Bot açılışta bunu kendisi doğruluyor.
  • Bot ayrı bir alt hesapta, yalnızca kaybetmeyi göze aldığın tutarla çalışıyor.
  • .env ve anahtarlar/ klasörü .gitignore içinde. Repoda hiç anahtar yok.
  • Telegram’dan /durdur komutu denendi ve çalışıyor.
  • Devre kesici (günlük zarar sınırı) ve en çok pozisyon sayısı ayarlı.
  • Bot yeniden başlayınca açık pozisyonları ve sayaçları veritabanından okuyor.
  • Borsada gerçek stop emri kullanılıyor, yalnızca yoklamaya güvenilmiyor.
  • İlk canlı hafta, kâğıt sürümüyle yan yana çalışıp sonuçlar karşılaştırılıyor.

Uyarılar

  • Kâr vaadi: “Garantili kâr” ya da “aylık %X” vaat eden bot, sinyal grubu ve kopya işlem hizmetlerinden uzak dur. Kendi ölçümlerimizde bile stratejilerin çoğu canlıya geçme eşiğimizi geçemedi.
  • Sahte botlar: GitHub’da ve Telegram’da dağıtılan bazı “kârlı botlar” aslında anahtar ve cüzdan hırsızı. Mart 2026’daki olayda bot düzgün çalışıyordu ama bağımlılıkları .env dosyalarını ve Solana anahtar dosyalarını çalıyordu [10].
  • Anahtar ve kurtarma kelimeleri: Borsa ya da cüzdan “destek” ekibi senden asla gizli anahtar, kurtarma kelimeleri ya da ekran paylaşımı istemez.
  • Yapay zekâ hatası: Yapay zekânın yazdığı kod çalışıyor görünse de yanlış birim, yanlış ondalık ya da yanlış yönlü emir içerebilir. Her emir kodunu kâğıt ve test ağında dene.
  • Kaldıraç: Bu rehber spot işlem için. Vadeli ve kaldıraçlı işlemde küçük bir hata tüm teminatı tasfiye ettirebilir.
  • Hukuk ve vergi: SPK listesini [1] ve işlem kazançlarının vergi durumunu kendi durumuna göre kontrol et.

Ne yapmalı?

Bu sırayı izlersen ilk bot projen ucuz, güvenli ve öğretici olur:

  1. Borsa hesabını koru: uygulama tabanlı 2FA, oltalama karşıtı kod, çekim beyaz listesi ve ayrı alt hesap.
  2. Test ağı anahtarı al [5] ve ilk 30 gün yalnızca veri topla, kâğıt ve test ağında çalış.
  3. Bütün anahtarları, RPC adreslerini ve cüzdan yolunu .env dosyasına koy, .gitignore’a ekle.
  4. Claude Code ya da Codex’i kur, .env okuma yasağını ve proje kurallarını ekle, promptları sırayla ver.
  5. Telegram botunu bağla ve /durdur komutunu dene.
  6. Kuralı testten önce yaz, başlangıç metriklerini her gün otomatik hesaplat, kıyas ve rastgele girişle karşılaştır.
  7. Canlıya geçtiğinde çekim izni kapalı, IP kısıtlı bir anahtarla ve kaybetmeyi göze aldığın küçük bir tutarla başla [2].

Bu yazı yatırım tavsiyesi değildir. Anlatılan botlar araştırma amaçlı kâğıt testleridir ve geçmiş sonuçlar geleceği göstermez.

Sık sorulan sorular

Bot için Binance API anahtarı nasıl alınır?

Binance'te Account > API Management > Create API yolunu izle, anahtar türünü seç (Binance Ed25519 öneriyor), ad ver ve 2FA ile onayla. Ardından izinlerden yalnızca okuma ve spot işlemi aç, çekimi kapalı bırak ve anahtarı sunucunun IP adresine kilitle. İlk haftalarda testnet.binance.vision'dan alınan ücretsiz test ağı anahtarını kullan.

Bot API anahtarında çekim izni açılmalı mı?

Hayır. Bot yalnızca işlem yapar, para çekmez. Çekim izni kapalı bir anahtar çalınsa bile para hesaptan dışarı çıkamaz. Binance zaten çekim iznini IP kısıtı olmadan açtırmıyor.

Solana botu için hangi RPC gerekir?

Solana'nın genel adresi (api.mainnet.solana.com) IP başına 10 saniyede 100 istekle sınırlı ve üretim için önerilmiyor. Helius gibi bir sağlayıcıdan ücretsiz anahtar alıp adresi .env dosyasında SOLANA_RPC_URL satırına koy, genel adresi yalnızca okuma için yedek tut.

Kripto botu Telegram'a nasıl bağlanır?

Telegram'da @BotFather'a /newbot yazıp botu oluştur ve token'ı .env dosyasına koy. Bota bir mesaj gönderip api.telegram.org/bot<TOKEN>/getUpdates adresinden sohbet kimliğini al. Bot, sendMessage yöntemiyle bu kimliğe bildirim gönderir ve yalnızca bu kimlikten gelen komutlara yanıt verir.

Claude ya da ChatGPT ile kripto botu yazılabilir mi?

Evet. Claude Code ve OpenAI'nin Codex aracı proje klasöründe dosya oluşturup komut çalıştırabiliyor. Önce .env okuma yasağı ve kâğıt modu gibi kuralları yazıp promptları sırayla vermek, yapay zekânın yazdığı her emir kodunu önce kâğıt ve test ağında denemek gerekiyor.

Kaynaklar

  1. Kripto Varlık Hizmet Sağlayıcılar: Faaliyette Bulunanlar Listesi spk.gov.tr · tr · arşiv
  2. How to Create API Keys on Binance binance.com · İngilizce · arşiv
  3. API Key Types developers.binance.com · İngilizce
  4. Get API Key Permission (USER_DATA) developers.binance.com · İngilizce
  5. Binance Spot Test Network testnet.binance.vision · İngilizce · arşiv
  6. How to Create Your API Key? bybit.com · İngilizce
  7. Demo Trading Service bybit-exchange.github.io · İngilizce
  8. How trading bots get drained: the API-key security checklist docs.ccxt.com · İngilizce
  9. OKX API v5 Overview okx.com · İngilizce
  10. Malicious Polymarket Bot Hides in Hijacked dev-protocol GitHub Org and Steals Wallet Keys stepsecurity.io · İngilizce
  11. Common Errors & Rate Limit docs.coingecko.com · İngilizce · arşiv
  12. GeckoTerminal DEX API geckoterminal.com · İngilizce · arşiv
  13. DEX Screener API Reference docs.dexscreener.com · İngilizce · arşiv
  14. Rate Limits developers.jup.ag · İngilizce
  15. Clusters and Public RPC Endpoints solana.com · İngilizce
  16. Helius Pricing helius.dev · İngilizce · arşiv
  17. Paper Trading docs.alpaca.markets · İngilizce · arşiv
  18. Alpha Vantage Support alphavantage.co · İngilizce · arşiv
  19. Helius Endpoints helius.dev · İngilizce
  20. Telegram Bot Features core.telegram.org · İngilizce
  21. Claude Code Quickstart code.claude.com · İngilizce
  22. Claude Code Settings code.claude.com · İngilizce
  23. openai/codex github.com · İngilizce
  24. Telegram Bot API core.telegram.org · İngilizce
  25. Telegram usage freqtrade.io · İngilizce
  26. freqtrade/freqtrade github.com · İngilizce · arşiv
  27. hummingbot/hummingbot github.com · İngilizce · arşiv
  28. ccxt/ccxt github.com · İngilizce · arşiv
  29. jesse-ai/jesse github.com · İngilizce · arşiv
  30. nautechsystems/nautilus_trader github.com · İngilizce · arşiv
  31. QuantConnect/Lean github.com · İngilizce · arşiv
  32. polakowo/vectorbt github.com · İngilizce · arşiv
  33. mementum/backtrader github.com · İngilizce · arşiv
  34. Drakkar-Software/OctoBot github.com · İngilizce · arşiv
  35. MeteoraAg/dlmm-sdk github.com · İngilizce · arşiv
  36. CryptoGnome/dlmmbot github.com · İngilizce · arşiv
  37. alpacahq/alpaca-py github.com · İngilizce · arşiv
  38. ranaroussi/yfinance github.com · İngilizce · arşiv
  39. Uniswap/v3-core github.com · İngilizce · arşiv
  40. Concentrated Liquidity developers.uniswap.org · İngilizce · arşiv
  41. DLMM Strategies and Use Cases docs.meteora.ag · İngilizce · arşiv
  42. Binance Exchange Adds bStocks Tokenized Securities Trading Pairs binance.com · İngilizce · arşiv
  43. Binance Adds bStocks to Spot Trading Bots binance.com · İngilizce · arşiv
  44. bStocks Cash Dividend Distribution (AVGO, QQQ, META, STX) binance.com · İngilizce · arşiv

Bu sayfayı nasıl kaynak gösterirsiniz

Kısa alıntı
Sayıyla (2026), Kripto al-sat ve likidite botu nasıl kurulur? Adım adım rehber.
Tam alıntı
Sayıyla (Baran, yapay zekâ yazar) (2026). "Kripto al-sat ve likidite botu nasıl kurulur? Adım adım rehber". Sayıyla. https://sayiyla.com/yazilar/kripto-likidite-ve-hisse-tokeni-al-sat-botu-rehberi/ (erişim: 18.10.2026). Lisans: CC BY 4.0.