Kripto al-sat ve likidite botu nasıl kurulur? Adım adım rehber
Baran · Yapay zekâ yazar · · Editör: Doğukan Taşdemir

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?
- Adım 1: Borsa hesabını korumak
- Adım 2: Borsadan bot için API anahtarı almak
- Adım 3: Anahtarları ve RPC adreslerini .env dosyasına koymak
- Adım 4: Hangi API’ler ve RPC’ler gerekli?
- Adım 5: Botun iskeleti
- Adım 6: Başlangıç için hangi metrikleri izlemeli?
- Adım 7: Claude ile bot kurmak, adım adım
- Adım 8: ChatGPT ile bot kurmak, adım adım
- Adım 9: Yapay zekâya bu promptları yazdırarak başlayabilirsin
- Adım 10: Botu Telegram’a bağlamak
- Hangi hazır repolarla başlanabilir?
- Bot türüne göre hangi kurallar değişir?
- Canlıya geçmeden önce kontrol listesi
- Uyarılar
- Ne yapmalı?
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.
- İ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].
- Hesap ayarlarındaki oltalama karşıtı kodu (anti-phishing code) tanımla. Borsadan gelen gerçek e-postalarda bu kod görünür.
- Çekim adresi beyaz listesini aç. Böylece para yalnızca senin önceden onayladığın adreslere çekilebilir.
- 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

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]:
- Giriş yap, sağ üstteki profil simgesine tıkla ve Account (Hesap) sayfasını aç.
- API Management (API Yönetimi) bölümüne gir ve Create API (API Oluştur) düğmesine bas.
- 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ı.
- Anahtara bir ad ver (örneğin
spot-bot-1) ve 2FA ya da geçiş anahtarıyla onayla. - 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:
- 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.
- Çekim izni hiçbir bot anahtarında açık olmasın.
- Anahtarı sunucu IP’sine bağla. Saldırgan hem anahtara hem sunucuna erişmek zorunda kalır.
- Anahtarı koda değil
.envdosyasına koy. Bir kez GitHub’a giden anahtarı sonradan silmek yetmez, yanmış say ve yenile [8]. - Hata ayıklama çıktısını (
--verbose) loglara yazdırma. Bu çıktı kimlik doğrulama başlıklarını da içerebiliyor. - Anahtarları belirli aralıklarla ve şüpheli bir şey gördüğünde hemen yenile. Bir anahtarı ne kadar hızlı iptal edebildiğini önceden dene.
- 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

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:
- Helius’a ücretsiz kaydol ve panelden bir API anahtarı oluştur [16].
- Ana ağ adresin şu biçimde olur:
https://mainnet.helius-rpc.com/?api-key=ANAHTARIN. Deneme ağı içindevnet.helius-rpc.comkullanılıyor [19]. - Bu adresin tamamını
.envdosyasındaSOLANA_RPC_URLsatırına yapıştır. Adresin içinde anahtar olduğu için bu satır da gizli bilgidir. - Genel Solana adresini
SOLANA_RPC_YEDEKolarak 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:
- 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. - Bu dosyanın yolunu
.envdosyasındaSOLANA_CUZDAN_DOSYASIsatırına yaz. Dosyanın kendisini kodun içine kopyalama. - Cüzdana yalnızca botun işleteceği tutarı ve işlem ücretleri için küçük bir SOL fazlasını koy.
- 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:
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?

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:
- 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.
- 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.
- Veriyi keşif ve sınama diye ikiye böl, sınama dönemine kural seçerken dokunma.
- 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.
- 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.
- Kalibrasyonu beceri sanma. Bir model iyi kalibre olup yine de sabit tahminden iyi olmayabilir.
- Mum içinde tepe ile dibin sırası bilinmez. Aynı mumda hem stop hem hedef varsa stop say.
- 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

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)
- 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.
- Promptları sırayla gönder. Her yanıtta oluşan dosyaları bilgisayarındaki proje klasörüne aynı adla kaydet.
- Hata aldığında hata mesajının tamamını yapıştır. Anahtar ya da
.enviçeriğini asla yapıştırma; hata mesajında anahtar görünüyorsa önce o kısmı sil.
Claude Code ile
- Kurulum. Windows’ta PowerShell’e
irm https://claude.ai/install.ps1 | iex, macOS ve Linux’ta terminalecurl -fsSL https://claude.ai/install.sh | bashyaz. Yeni bir terminal açıpclaude --versionile kurulumu doğrula [21]. Windows’ta Git for Windows kurulu olması önerilir. - 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].
- Proje klasörünü aç:
mkdir kripto-bot,cd kripto-bot, ardındanclaude. .envdosyasını okumasını engelle. Proje klasöründe.claude/settings.jsondosyası oluşturup içine şu kuralı koy [22]:
{
"permissions": {
"deny": ["Read(./.env)", "Read(./.env.*)", "Read(./anahtarlar/**)"]
}
}
- Kalıcı kurallar için klasöre
CLAUDE.mddosyası koy ve “Prompt 0”daki kuralları içine yaz. Claude Code bu dosyayı her oturumda okur. - İzin modunu açık tut. Claude Code komut çalıştırmadan ya da dosya değiştirmeden önce onay ister.
Shift+Tabile 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.envgüvende kalır. - Promptları sırayla ver ve her adımda ne değiştiğine bak. Çalışan her aşamadan sonra
git commitile 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)
- ChatGPT’de yeni bir Proje aç ve talimatlara “Prompt 0” kurallarını yaz.
- Promptları sırayla gönder, oluşan dosyaları proje klasörüne kaydet.
- Claude’daki kural burada da geçerli: anahtar,
.enviç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.
- Kurulum. macOS ve Linux’ta
curl -fsSL https://chatgpt.com/codex/install.sh | sh, Windows PowerShell’depowershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex". Node.js kuruluysanpm install -g @openai/codexda çalışıyor [23]. - Giriş. Proje klasöründe
codexyaz ve “Sign in with ChatGPT” seç. Codex, ChatGPT’nin Plus, Pro, Business, Edu ve Enterprise planlarına dahil [23]. - İlk komut olarak
/inityaz. Codex proje kurallarını tutanAGENTS.mddosyasını oluşturur. “Prompt 0”daki kuralları bu dosyaya ekle. /permissionsile 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.- Her aşamadan önce ve sonra
git commitile 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

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
- Telegram’da @BotFather hesabını aç ve
/newbotyaz [20]. - Botuna görünen bir ad ver (örneğin “Benim Al-Sat Botum”).
- 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]. - BotFather sana
110201543:AAH...biçiminde bir token verir. Token’ı ele geçiren herkes botunu yönetebilir. Hemen.envdosyasındaTELEGRAM_BOT_TOKENsatırına yapıştır [20]. - Token sızarsa BotFather’da
/tokenkomutuyla yenisini üret. Eskisi geçersiz olur [20].
Sohbet kimliğini (chat_id) bulmak
Bot, mesajı kime göndereceğini sohbet kimliğinden bilir:
- 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ı.
- Tarayıcıda
https://api.telegram.org/bot<TOKEN>/getUpdatesadresini 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. - Yanıtta
"chat":{"id":...}kısmındaki sayıyı kopyala ve.envdosyasındaTELEGRAM_CHAT_IDsatı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_userslistesiyle 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:
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:
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:
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.
Grafiğin verisi
| Kalem | Değ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

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.
-
.envveanahtarlar/klasörü.gitignoreiçinde. Repoda hiç anahtar yok. - Telegram’dan
/durdurkomutu 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ı
.envdosyaları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:
- Borsa hesabını koru: uygulama tabanlı 2FA, oltalama karşıtı kod, çekim beyaz listesi ve ayrı alt hesap.
- Test ağı anahtarı al [5] ve ilk 30 gün yalnızca veri topla, kâğıt ve test ağında çalış.
- Bütün anahtarları, RPC adreslerini ve cüzdan yolunu
.envdosyasına koy,.gitignore’a ekle. - Claude Code ya da Codex’i kur,
.envokuma yasağını ve proje kurallarını ekle, promptları sırayla ver. - Telegram botunu bağla ve
/durdurkomutunu dene. - Kuralı testten önce yaz, başlangıç metriklerini her gün otomatik hesaplat, kıyas ve rastgele girişle karşılaştır.
- 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
- Kripto Varlık Hizmet Sağlayıcılar: Faaliyette Bulunanlar Listesi spk.gov.tr · tr · arşiv
- How to Create API Keys on Binance binance.com · İngilizce · arşiv
- API Key Types developers.binance.com · İngilizce
- Get API Key Permission (USER_DATA) developers.binance.com · İngilizce
- Binance Spot Test Network testnet.binance.vision · İngilizce · arşiv
- How to Create Your API Key? bybit.com · İngilizce
- Demo Trading Service bybit-exchange.github.io · İngilizce
- How trading bots get drained: the API-key security checklist docs.ccxt.com · İngilizce
- OKX API v5 Overview okx.com · İngilizce
- Malicious Polymarket Bot Hides in Hijacked dev-protocol GitHub Org and Steals Wallet Keys stepsecurity.io · İngilizce
- Common Errors & Rate Limit docs.coingecko.com · İngilizce · arşiv
- GeckoTerminal DEX API geckoterminal.com · İngilizce · arşiv
- DEX Screener API Reference docs.dexscreener.com · İngilizce · arşiv
- Rate Limits developers.jup.ag · İngilizce
- Clusters and Public RPC Endpoints solana.com · İngilizce
- Helius Pricing helius.dev · İngilizce · arşiv
- Paper Trading docs.alpaca.markets · İngilizce · arşiv
- Alpha Vantage Support alphavantage.co · İngilizce · arşiv
- Helius Endpoints helius.dev · İngilizce
- Telegram Bot Features core.telegram.org · İngilizce
- Claude Code Quickstart code.claude.com · İngilizce
- Claude Code Settings code.claude.com · İngilizce
- openai/codex github.com · İngilizce
- Telegram Bot API core.telegram.org · İngilizce
- Telegram usage freqtrade.io · İngilizce
- freqtrade/freqtrade github.com · İngilizce · arşiv
- hummingbot/hummingbot github.com · İngilizce · arşiv
- ccxt/ccxt github.com · İngilizce · arşiv
- jesse-ai/jesse github.com · İngilizce · arşiv
- nautechsystems/nautilus_trader github.com · İngilizce · arşiv
- QuantConnect/Lean github.com · İngilizce · arşiv
- polakowo/vectorbt github.com · İngilizce · arşiv
- mementum/backtrader github.com · İngilizce · arşiv
- Drakkar-Software/OctoBot github.com · İngilizce · arşiv
- MeteoraAg/dlmm-sdk github.com · İngilizce · arşiv
- CryptoGnome/dlmmbot github.com · İngilizce · arşiv
- alpacahq/alpaca-py github.com · İngilizce · arşiv
- ranaroussi/yfinance github.com · İngilizce · arşiv
- Uniswap/v3-core github.com · İngilizce · arşiv
- Concentrated Liquidity developers.uniswap.org · İngilizce · arşiv
- DLMM Strategies and Use Cases docs.meteora.ag · İngilizce · arşiv
- Binance Exchange Adds bStocks Tokenized Securities Trading Pairs binance.com · İngilizce · arşiv
- Binance Adds bStocks to Spot Trading Bots binance.com · İngilizce · arşiv
- bStocks Cash Dividend Distribution (AVGO, QQQ, META, STX) binance.com · İngilizce · arşiv
Bu sayfayı nasıl kaynak gösterirsiniz
Sayıyla (2026), Kripto al-sat ve likidite botu nasıl kurulur? Adım adım rehber.
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.