Kapatmak için ESC'ye basın

CEX DEX Arbitraj Rehberi: Spread ve Kod Kılavuzu

Spread’in Anatomisi: Bu Dengesizlik (Imbalance) Nereden Geliyor?

Piyasa verimsizdir. Özellikle sert hype (FOMO) veya panik satışı (Panic Sell) anlarında bu durum tavan yapar. CEX’lerde (Binance, Bybit, OKX) fiyatı market maker’lar ve emir defterleri (Order Book) yürütür. Orada her şey tahtadaki saniyelik baskıya bakar. DEX’lerde ise fiyat AMM (Automated Market Maker) kurallarına göre yaşar ve havuzun matematiksel formülüne (örneğin sabit ürün formülü $x \times y = k$) katı bir şekilde bağlıdır.

Eğer borsada büyük bir oyuncu (balina) bir tokenı aniden tahtaya boca etmeye başlarsa (dump’larsa), CEX fiyatı anında çakılır. Peki DEX’te durum ne olur? DEX’te, oraya ilk arbitrajcı veya normal bir kullanıcı koşana kadar çıt çıkmaz. İşte CEX’teki emir defterinin güncellenmesi ile DEX havuzundaki token rasyosunun değişmesi arasında geçen bu zaman gecikmesi (Time Lag) bizim ekmek kapımızdır.

Ancak halka açık gruplarda pek yazılmayan bir detaya dikkat edin: Spread genellikle yanıltıcı (illüzyon) olabilir. %3’lük bir fark görürsünüz, sevinip balıklama atlarsınız (ape-in olursunuz) ama bir bakarsınız havuz bomboş. Likidite üç kuruşluktur. Swap butonuna bastığınız an fiyat tersine uçar ve kâr beklerken içeride kalıp devasa bir zararla (terste) çıkarsınız. Buna Price Impact (Fiyat Etkisi) denir.

Risk Haritası: Bakiyenizi (Deposit) Ne Sıfırlar?

Koda ve tarayıcılara (Scanner) dalmadan önce bu tehdit kontrol listesini aklınıza kazıyın. Arbitraj, eğer gizli maliyetleri hesaplamayı bilmiyorsanız, negatif matematiksel beklentiye (Negative EV) sahip bir hız oyunudur.

Maliyet / Risk TürüTuzak Nerede GizliRisk Nasıl Minimize Edilir
CEX Withdrawal LagBorsanın çekim işlemlerini 5-10 dakika askıya alması. Bu süre zarfında spread çoktan kapanır.Likiditeyi önceden her iki tarafta da hazır tutmak. Borsalar arasında fiziksel olarak token koşturmadan "karşılıklı emirlerle" (Hedging) çalışmak.
Price ImpactDEX havuzundaki likiditenin yetersiz olması. Büyük bir emir fiyatı çok sert oynatır.Havuzun derinliğini (Depth) hesaplamak. Pozisyon büyüklüğünüz, havuzun toplam TVL'inin %1-2'sini geçmemeli.
Gas & MEVEVM ağlarında (Ethereum, BSC, Arbitrum) botlar işleminizi mempool'da yakalar ve Front-running ile önünüze geçer.İşlemi genel mempool'da açık etmemek için Flashbots RPC (Mainnet için) veya korumalı güvenli RPC node'ları kullanmak.
CEX FeesMaker/Taker komisyonu + token çekimindeki sabit transfer ücreti.VIP seviyesini düşürmek için CEX'te hacim kasmak. Örneğin EXMON'da Maker/Taker komisyonu tamamen sıfırdır; bu tarz turlar için biçilmiş kaftan.

Manuel Arama Algoritması ve Otomasyon

2026 yılında tamamen elle manuel arbitraj kovalamak mazoşistliktir. Ancak arkadaki mekaniği ezbere bilmek zorundasınız.

Strateji oldukça basit. CoinMarketCap veya CoinGecko’yu açıyoruz. Piyasa değeri düşük olan tokenları (aktif olan ama ortalama hacimli shitcoin’leri) modelliyoruz. "Markets" (Piyasalar) sekmesini açıp fiyat farklarına bakıyoruz. Eğer Gate.io gibi bir borsa ile Arbitrum veya Base ağındaki (buralarda gas ücreti çerez parasıdır) Uniswap/PancakeSwap havuzu arasında bir fark yakalarsak, derinlemesine kazmaya başlıyoruz.

Adım Adım Manuel Kontrol Listesi:

  • CEX’teki tokenın yatırma/çekme (deposit/withdrawal) durumunu kontrol edin. Eğer çekim kapalıysa o spread sahtedir. Arkaya bakmadan geçin.
  • Ağ türünü (Network) kontrol edin. CEX’teki token, DEX havuzunun döndüğü ağ ile tamamen aynı zincirde olmalı. Köprüler (Bridge) hem zamanınızı hem de kârınızı yer bitirir.
  • Slippage (kayma) oranını ölçün. DEX arayüzüne satmak/almak istediğiniz miktarı yazın ve nihai Price Impact’e bakın. Eğer spread’i yutuyorsa o kurulum ölüdür.

Monitoring Scripti: Spread'i Pro'lar Gibi Hesaplıyoruz

Teori yeter. İşin yazılım kısmına geçelim. Bize, hantal ve yavaş front-end’leri bypass ederek CEX fiyatını (CCXT aracılığıyla) çeken ve havuz fiyatını doğrudan DEX’in akıllı sözleşmesinden (Web3.py üzerinden) parse eden bir script lazım.

Aşağıda Bybit (CEX) ve Arbitrum üzerindeki Uniswap v2 havuzu (DEX) için hazır, çalışan bir script var. Kod direkt prod'a alınabilir seviyededir.

Python

import time
from web3 import Web3
import ccxt
# Node'a bağlanıyoruz. Hızlı ve özel (private) RPC kullanın, halka açık olanlar sürekli lagda kalır
RPC_URL = "https://arb1.alpharc.io/v1/your-api-key" # Kendi aktif RPC adresinizle değiştirin
w3 = Web3(Web3.HTTPProvider(RPC_URL))
if not w3.is_connected():
    raise Exception("Node çökmüş, önce onu düzelt")
# CCXT üzerinden borsayı başlatıyoruz
exchange = ccxt.bybit({
    'enableRateLimit': True,
})
# Örnek olarak Arbitrum Uniswap V2 (veya Sushi) havuz adresi (WETH/USDC)
# Buraya herhangi bir shitcoin yazabilirsiniz, önemli olan token çiftinin havuz adresini bilmek
POOL_ADDRESS = "0x905dfCD56492171426f30a7d11d68E1da87ab64B" 
# V2 havuzunun ABI'ı. Bize sadece getReserves fonksiyonu lazım, gerisi kalabalık
POOL_ABI = [
    {
        "constant": True,
        "inputs": [],
        "name": "getReserves",
        "outputs": [
            {"name": "_reserve0", "type": "uint112"},
            {"name": "_reserve1", "type": "uint112"},
            {"name": "_blockTimestampLast", "type": "uint32"}
        ],
        "payable": False,
        "stateMutability": "view",
        "type": "function"
    }
]
pool_contract = w3.eth.contract(address=w3.to_checksum_address(POOL_ADDRESS), abi=POOL_ABI)
def get_dex_price():
    # Rezervleri doğrudan akıllı sözleşmeden çekiyoruz
    reserves = pool_contract.functions.getReserves().call()
    
    # Havuzda token0 ve token1 bulunur. Varsayalım: token0 = USDC (6 decimals), token1 = WETH (18 decimals)
    # Dikkat: Sözleşmede hangi tokenın sıfır, hangisinin bir olduğunu her zaman kontrol edin!
    reserve_usdc = reserves[0] / 10**6
    reserve_weth = reserves[1] / 10**18
    
    # Havuz formülüne göre USDC cinsinden WETH fiyatı
    price_dex = reserve_usdc / reserve_weth
    return price_dex
def get_cex_price():
    # Bybit Spot emir defterini (Order Book) çekiyoruz
    orderbook = exchange.fetch_order_book('ETH/USDC')
    bid = orderbook['bids'][0][0] if len(orderbook['bids']) > 0 else 0
    ask = orderbook['asks'][0][0] if len(orderbook['asks']) > 0 else 0
    return bid, ask
def monitor():
    print("Piyasa verimsizliklerini izleme işlemi başlatılıyor...")
    while True:
        try:
            dex_p = get_dex_price()
            cex_bid, cex_ask = get_cex_price()
            
            if dex_p == 0 or cex_bid == 0:
                continue
                
            # Senaryo 1: DEX'te ucuz, CEX'te pahalı. DEX'ten al, CEX'te dump'la.
            spread_to_cex = ((cex_bid - dex_p) / dex_p) * 100
            
            # Senaryo 2: CEX'te ucuz, DEX'te pahalı. CEX'ten al, DEX'te dump'la.
            spread_to_dex = ((dex_p - cex_ask) / cex_ask) * 100
            
            if spread_to_cex > 0.5: # Komisyonları ve gas maliyetini kurtarması için %0.5 eşiği
                print(f"[!] Sinyal! DEX UCUZ. DEX: {dex_p:.2f} | CEX Bid: {cex_bid:.2f} | Spread: {spread_to_cex:.2f}%")
                
            if spread_to_dex > 0.5:
                print(f"[!] Sinyal! CEX UCUZ. CEX Ask: {cex_ask:.2f} | DEX: {dex_p:.2f} | Spread: {spread_to_dex:.2f}%")
                
            time.sleep(2) # Node'u ve borsayı sürekli spamlemeyin, IP ban yersiniz
            
        except Exception as e:
            print(f"Döngüde hata oluştu: {e}")
            time.sleep(5)
if __name__ == "__main__":
    monitor()

Gelişmiş Taktik: Karşılıklı Emirler (Hedging)

Tokenları borsalar arasında fiziksel olarak transfer etmek geçen yüzyılda kaldı. İşlem zincirde onaylanana ve borsa ağdan 15-30 onay isteyip bakiyenizi yükleyene kadar tren çoktan kaçar. Spread buhar olur. Profesyoneller verimsizliği bambaşka bir yöntemle sömürür.

Bakiyeleri önceden her iki platformda da hazır tutuyoruz.

Örnek: CEX bakiyenizde 1000$ ve 1 ETH var. Aynı miktar Arbitrum ağındaki Metamask cüzdanınızda da hazır bekliyor.

Script sinyal çaktı: DEX’te ETH fiyatı 2900$’a sarktı, CEX’te ise hala 2950$ seviyesinde tutunuyor.

Yapacağınız hamle: Tam aynı saniyede iki tarafta birden işlemi patlatıyorsunuz. DEX’te swap yapıp stablecoin ile 2900$’dan ETH kapıyorsunuz ve tam o an CEX’teki 1 ETH’nizi 2950$’dan elden çıkarıyorsunuz. Borsalar arası tek bir transfer bile yapmadan, varlıklarınızın toplam değeri spread farkı kadar büyüdü. Bakiyeleriniz kendi içinde yer değiştirdi ve kâr stablecoin olarak kilitlendi. Sonrasında piyasa durulduğunda, sıradan bir transferle pozisyonları tekrar eşitlersiniz.

Ve en kritik nokta: "Toxic flow" (zehirli akış) durumundan uzak durun. Eğer CEX’te fiyat adeta bir taş gibi yere çakılıyorsa (nuke oluyorsa), sakın o varlığı DEX’te elinizle toplamaya kalkmayın. Spread gözünüze devasa görünebilir ama bunun tek sebebi DEX havuzunun henüz fiyatı yeniden hesaplamaya zaman bulamamış olmasıdır. Düşen bıçağı ellerinizle tutmuş olursunuz. 5 saniye sonra arbitraj botları o havuzun üzerinden silindir gibi geçip fiyatı daha da aşağı bastırır ve elinizde sürekli eriyen bir çöp token paketiyle kalakalırsınız.

v3 Havuzlarında Sniping: Konsantre Likiditede Donu Kaptırmama Rehberi

Uniswap v2’nin hâlâ evrimin zirvesi olduğunu düşünüyorsanız, 2021 yılında takılıp kalmışsınız demektir. Artık ana hacmin ve o tatlı spread’lerin döndüğü yer Uniswap v3 ve onun fork’larıdır (PancakeSwap v3, QuickSwap v3). Burada AMM mekanikleri tamamen değişiyor. Likiditenin sıfırdan sonsuza kadar dümdüz yayıldığı v2'nin aksine, v3'te likidite belli fiyat aralıklarına, yani tick'lere konsantre edilir.

Peki bu bizim için ne anlama geliyor? Fiyat, likidite sağlanan aralığın dışına çıktığı an çok fena bir Price Impact (fiyat etkisi) yersiniz.

CEX’te bir token pump’lanırken, v3 havuzundaki mevcut tick’in likiditesi tükenirse, DEX içindeki fiyat devasa bir sıçrama (squeeze) yapar. Siz %15 spread görür görmez havuza balıklama (ape in) atlarsınız; fakat o dar aralıkta aslında hiç emir kalmadığı için akıllı sözleşme işleminizi en berbat fiyattan execute eder.

Uniswap v2 Likidite Formülü:  x * y = k (Yumuşak fiyat değişimi)
Uniswap v3 Formülü:            (x + L / √P_b) * (y + L * √P_a) = L^2 (Tick bazlı kademeli değişim)

Bir v3 havuzundaki gerçek spread’i manuel hesaplamak için sadece rezervleri bilmeniz yetmez. Havuzun akıllı sözleşmesindeki slot0 fonksiyonunu parse etmeniz gerekir.

Havüza Girmeden Önce v3 Kontrol Listesi:

  • slot0 fonksiyonundan sqrtPriceX96 değerini çekiyoruz. Bu, mevcut fiyatın kendine has bir formatta encode edilmiş halidir.
  • Mevcut aktif tick’i kontrol ediyoruz.
  • O anki tick'teki likidite derinliğine (liquidity) bakıyoruz. Eğer sıfıra yakınsa spread yapaydır ve sizi en zararlı fiyattan pozisyona mallandırırlar.

İşlemi Göndermek: MEV Botlarını Virajda Nasıl Saf Dışı Bırakırız?

Diyelim ki Ethereum veya Base ağında çok seksi bir spread yakaladınız. İşlemi standart bir MetaMask üzerinden gönderdiniz. Sonra ne mi oluyor? İşleminiz mempool’a (halka açık sıraya) düşüyor. MEV (Maximum Extractable Value) botları mempool’u 7/24 tarar. Sizin işleminizi görüp oradan temiz 100$ kar çıkacağını anladıkları an, aynı işlemin birebir kopyasını oluşturup gas price’ı (gaz ücretini) 1 gwei yüksek yazarlar.

Blockchain validatörü de doğal olarak önce onların işlemini bloğa alır. Bot sizin spread’i çat diye önünüzden tıklar. Sizin işlem hemen arkasından geçer ama ya eksiye çalışır ya da revert (iptal) olur; üstüne bir de gazınız boşa yanar. Az önce temiz bir front-running yediniz. Keyifsiz bir durum ama piyasanın raconu bu.

Nasıl Korunuruz?

  • Private RPC kullanın. Cüzdanın default ayarlarını hemen unutun. Ethereum Mainnet’te Flashbots RPC (https://rpc.flashbots.net) tanımlayın. BNB Chain veya Polygon gibi ağlarda ise özel private node’lar (örneğin MEV-Share veya MevBlocker) bulun. İşleminiz genel mempool’a uğramadan direkt validatörlere gider. Botlar işleminizi ruhu bile duymadan geçer.
  • Slippage Tolerance ayarını çok sıkı tutun. DEX ayarlarında, likiditesi yüksek pariteler için kayma payını %0.5, shitcoin’ler için ise maksimum %1-1.5 yapın. Bot fiyatınızı kaydırmaya çalışırsa işlem direkt revert yer; böylece ana paranız kurtulur (gaz için harcadığınız üç beş kuruş dışında bir şey kaybetmezsiniz).

Pratik Örnek: Gerçek Bir Vakanın Analizi

Şimdi ideal bir arbitrage turunun (loop) hikayesiz, dümdüz nasıl işlediğine bakalım. Token X (merkeziyetsiz bir oyun projesinin tokenı olsun).

  • İzleme (Monitoring): Bybit’te, erken yatırımcılardan birinin yüklü mal boşaltması yüzünden tokenın fiyatı aniden 1.00$’dan 0.90$’a çakılıyor. Alım tarafındaki tahta (bid) gayet kalın.
  • DEX Analizi: PancakeSwap’ta (BNB Chain ağı) fiyat hâlâ geriden geliyor ve 0.98$ seviyesinde direniyor. Likidite havuzu 200.000$.
  • Hacim Hesaplama: 2.000$ döndürmek istiyoruz. PancakeSwap’taki Price Impact’i kontrol ediyoruz. Havuza 2.000$’lık token sattığımızda fiyat sadece %0.3 oynuyor. Yani satışı ortalama 0.977$’dan kapatacağız.

Arbitrage Turunun Matematiği:

  • Bybit’ten Alım: 2.000$ / 0.90$ = 2222.2 adet Token X.
  • CEX Komisyonu (Taker %0.1): eksi 2.2 token. Kalır 2220.
  • Cüzdana Çekim (Withdraw): Sabit ağ ücreti olarak 10 Token X kesildi. Cüzdana net 2210 token ulaştı.
  • DEX'te Satış: 2210 * 0.977$ = 2159.17$.
  • DEX Swap Gaz Ücreti: BNB ağında yaklaşık ~0.15$.
  • Net Kar: 3 dakikalık tek bir turda kılçıksız 159.02$.

Biz turu tamamladıktan yaklaşık 4 dakika sonra Bybit’teki market maker’lar DEX ile fiyatı eşitledi. Fırsat penceresi kapandı. Erken kalkan yol alır.

Profesyonel Spread Farmer’ların Araç Seti

Her şeyi sıfırdan kodlamak istemiyorsanız, piyasadaki orta ölçekli ekiplerin ve alpha kovalayanların kemik tech stack'i şudur:

  • DeXito / Dexscreener / GeckoTerminal — Piyasadaki anomalileri görsel olarak yakalamak için. Bu özel analitik platformlarında gözünüz hep "Arbitrage" sekmesinde olsun.
  • DeBank / Arkham — Top-tier arbitrage yapanların cüzdanlarını dikizlemek için. Mempool’da sürekli para basan bir cüzdan mı buldunuz? Hemen watchlist’e alın ve hangi havuzları sağdığını reverse-engineer ederek çözün.
  • Tenderly — İşlem simülatörü. Eğer yüklü bir hacim döndürüyorsanız ve akıllı sözleşmenin patlamasından korkuyorsanız, işlemi önce Tenderly simülatöründen geçirin. Ne kadar gaz tüketeceğini ve canlıda başarılı olup olmayacağını size birebir gösterir.

Bu piyasada manuel takılmak mümkündür ama en büyük düşmanınız kendi dikkatsizliğiniz olur. Ağları karıştırırsanız, CEX çekim ücretini hesaba katmazsanız veya slippage kontrol etmeden DEX’te swap’a basarsanız, bütün karınız tık diye ağ validatörlerinin cebine gider. Pragmatik olun, maliyetleri mikro centine kadar hesaplayın ve açgözlülük yapmayın.

Martyn Borkowski

I am a crypto trader specializing in digital assets and blockchain markets.

My focus is on identifying opportunities, managing risk, and optimizing strategies to achieve consistent growth in the fast-evolving world of cryptocurrency.

Verification & Professional Profiles: X Profile

...

Yorumunuzu paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlendi *