Polymarket Stratejileri Emir Defteri Üzerinde Nasıl Backtest Edilir
Saatte bir örneklenen son fiyat, emrinizin gerçekleşip gerçekleşmeyeceğini size söyleyemez. İşte Polymarket'i gerçekten karşısında işlem göreceği defterle backtest etmenin yolu.
Bir Polymarket stratejisini doğru şekilde backtest etmek için, stratejinin karşısında işlem göreceği geçmiş emir defterini yeniden oynatırsınız — her değişimdeki tam alış/satış (bid/ask) merdivenini — ve fill'leri gerçekten orada bekleyen likiditeye karşı boyutlandırırsınız. Son fiyat veya tek bir orta fiyat (mid) üzerinden yapılan backtest, gerçek bir emrin ödediği spread ve slippage'ı gizlediği için avantajınızı sistematik olarak olduğundan büyük gösterir.
Son fiyat backtest'leri neden yalan söyler
Serbestçe erişilebilen Polymarket verisinin çoğu, genellikle saatte bir örneklenen son işlem fiyatıdır. Bu, bir grafik çizmeye yeter, fazlasına değil. Bir backtest'in ise daha zor bir soruyu yanıtlaması gerekir: emrim o anda defterde bekliyor olsaydı (ya da spread'i geçmiş olsaydı), gerçekleşir miydi, hangi büyüklükte ve hangi fiyattan?
Bunu yanıtlamak tek bir sayıyı değil, emir defterini gerektirir — her bekleyen alış ve satışı, büyüklüğüyle birlikte. Orta fiyata (mid) karşı backtest edilen bir strateji, her zaman orta fiyattan ve sıfır slippage ile gerçekleştiğini varsayar ki bu asla doğru değildir. Spread'lerin uzlaşmaya yaklaştıkça genişlediği kısa vadeli kripto piyasalarında bu varsayım, kaybeden bir stratejiyi görünüşte kazanan birine çevirebilir.
Adım 1 — Tam derinlikli emir defteri verisi edinin
Sabit bir saat yerine her değişimde yakalanan, her iki taraftaki tüm defteri kaydeden veriyle başlayın. DepthFeed, Polymarket'i doğrudan CLOB websocket'inden olay güdümlü (event-driven) olarak yakalar; böylece her defter ve fiyat değişimi olayı, beş dakikalık bir piyasanın ömrünü atlayan saatlik veya dakikalık bir örnek yerine, tam alış/satış merdiveniyle kaydedilir.
İstediğiniz piyasaları REST API üzerinden çekin: önce GET /v3/{coin}/markets ile keşfedin, ardından /v3/{coin}/markets/{id}/snapshots'tan derinliği çekin. Her snapshot, alış/satış fiyat ve büyüklük dizilerinin yanı sıra epoch-millis cinsinden borsa (exchange) ve alım (receive) zaman damgalarını taşır.
Adım 2 — Defteri her an için yeniden kurun
Snapshot'ları zaman damgası sırasına göre yeniden oynatarak defteri herhangi bir andaki haliyle yeniden inşa edin. Veri olay güdümlü olduğundan, yeniden kurma olaylar arasında tam isabetlidir — interpolasyona dayalı tahmin yoktur. Stratejinizin tepki verdiği durum budur: en iyi alış (best bid), en iyi satış (best ask), her birinin arkasındaki derinlik ve spread.
Adım 3 — Fill'leri gerçek derinliğe karşı modelleyin
Artık gerçekleşmeyi (execution) dürüstçe simüle edin. Piyasa emri (marketable order) defteri yürür: önce en iyi seviyeye karşı, ardından sonrakine karşı, büyüklüğü tükenene dek gerçekleşir — dolayısıyla en üst seviyeden fazlasını tükettiğinde ortalama fiyatı en iyi fiyattan (touch) daha kötü olur. Bekleyen bir emir (resting order) kuyruğa katılır ve yalnızca piyasa, fiyatının arkasında yeterli büyüklükle o fiyatı geçerek işlem görürse gerçekleşir.
Fill'leri kaydedilen merdivene karşı boyutlandırmak işin tüm özüdür: her zaman orta fiyattan işlem yaptığınız kurgusu yerine size gerçekçi slippage ve gerçekleşme olasılığı (fill-probability) verir.
Adım 4 — Dayanak (underlying) fiyatı birleştirin
Polymarket'in kripto yukarı/aşağı (up/down) piyasaları, dayanak varlığın spot hareketiyle yönlenir. Her DepthFeed snapshot'ı, epoch-millis zaman damgasıyla yüksek frekanslı bir Binance referans fiyatına birleşir; böylece defter durumunu, sözleşmeyi yeniden fiyatlayan spot hareketle hizalayabilirsiniz — kripto fiyatı ile piyasanın ima ettiği olasılık arasındaki ilişkiyi işlem yapan herhangi bir strateji için elzemdir.
Adım 5 — Aynı kodla canlıya geçin
Geçmişe yönelik REST API ile canlı WebSocket akışı, birebir aynı JSON snapshot nesnelerini yayar. Bu, geçmişi yeniden oynatmak için yazdığınız yükleyicinin (loader) canlı akışı hiç değiştirmeden okuduğu anlamına gelir — araştırma ile üretim arasında yeniden yazım yok. Backtest yapın, doğrulayın, ardından aynı kodu wss://api.depthfeed.com/v3/stream adresine yöneltin ve işlem yapın.
Sık yapılan hatalar
- Son fiyat verisi kullanmak: spread ve slippage'ı gizler; backtest getirilerini şişirir.
- Sabit aralıklı snapshot'lar: saatlik veya dakikalık bir örnek, 5 dakikalık bir piyasanın ömrünün çoğunu kaçırır.
- Kuyruk pozisyonunu yok saymak: bekleyen emirlerin her zaman gerçekleştiğini varsaymak pasif stratejileri olduğundan iyi gösterir.
- İleriye bakış (look-ahead) yanlılığı: yalnızca alım zaman damgası karar anınızda veya öncesinde olan veriye tepki verin.
- Dayanağı atlamak: kripto yukarı/aşağı avantajı genellikle spot-olasılık ilişkisinde yaşar.
Key takeaways
- 01Son fiyata değil, emir defterine karşı backtest yapın — fill'leri belirleyen derinliktir.
- 02Olay güdümlü veri kullanın: sabit aralıklı örnekler kısa vadeli piyasaların ömrünü kaçırır.
- 03Defteri yürüyen piyasa emirlerini ve kuyrukta bekleyen emirleri modelleyin.
- 04Spot-olasılık ilişkisini yakalamak için dayanak kripto fiyatı birleştirin.
- 05Geçmişi ve canlı akışı tek bir formatı paylaşan veriyi seçin; böylece backtest ettiğiniz kodun aynısını işletirsiniz.
Saatte bir örneklenen son fiyat, emrinizin gerçekleşip gerçekleşmeyeceğini size söyleyemez. İşte Polymarket'i gerçekten karşısında işlem göreceği defterle backtest etmenin yolu.
Ücretsiz başla