Gürültülü veride doğru ölçmek
Düşük sinyal/gürültü oranında asıl risk kötü bir model değil, iyi görünen kötü bir ölçüm. Bu sayfa, sonuçlara güvenebilmek için uyduğumuz kuralları, her fikrin geçtiği doğrulama hattını ve yol boyunca öğrendiğimiz ölçüm tuzaklarını anlatıyor.
Her sonucun geçtiği kurallar
- 01
Sızıntı yok
Her özellik karar anında bilinebilir olmalı. Karar t gününde veriliyor, pozisyon t+1'de uygulanıyor; bu sıra testlerle kilitli.
- 02
Maliyet sonrası
Komisyon, ölçülmüş spread ve emir defterinden tahmin edilen piyasa etkisi düşülmeden hiçbir sonuç sayılmıyor.
- 03
Survivorship yok
Evren her gün o günün bilgisiyle kuruluyor; sonradan listeden çıkan coinler de öldükleri güne kadar içeride.
- 04
Ön-kayıt
Hipotez, ölçüt, geçme eşiği ve beklenen etki test koşulmadan önce yazılıyor ve sonradan değiştirilmiyor.
- 05
Bağımsız tekrar
Karara giren her sayı ikinci kez, bağımsız olarak üretiliyor. Tutmayan sayı karara giremez.
- 06
Mutasyon testi
Kritik kontrollerin hatayı gerçekten yakaladığı, kod bilerek bozularak sınanıyor. Hiçbir şeyi yakalamayan test, test sayılmıyor.
- 07
Önce istatistiksel güç
Beklenen etkiyi yakalama olasılığı yeterince yüksek olmayan bir test koşulmuyor. Zayıf bir testin “geçmedi” sonucu bilgi taşımaz.
- 08
Serbestlik bütçesi
Modelin etkin serbestlik derecesi, verideki bilginin taşıyabileceğiyle sınırlı tutuluyor.
- 09
Tek istatistik çekirdeği
Sharpe, güven aralığı ve güç hesapları tek bir ortak modülden geliyor; aynı sayı iki farklı yöntemle hesaplanmıyor.
- 10
Dejenere çözüm denetimi
Her dayanıklılık tekniği, modelin sabit ya da nötr bir tahmine çökmediği kontrol edilerek değerlendiriliyor.
- 11
Basit getiriyle kâr/zarar
Kâr/zarar logaritmik getirilerin toplamıyla değil, basit getiriyle hesaplanıyor.
Bir fikir nasıl test ediliyor
Her fikir aynı yolu izliyor. Bir adımı geçemeyen fikir bir sonrakine ilerlemiyor; geçen her sonuç kayda giriyor.
- 01
Hipotez
Neyin, neden çalışması gerektiği ve beklenen etkinin büyüklüğü.
- 02
Ön-kayıt
Ölçüt, eşik ve güç hesabı, veri görülmeden önce yazılıyor.
- 03
Sentetik laboratuvar
Sinyali bilinen veride, model gerçekten bilgi yakalıyor mu?
- 04
İleri yürüyen test
Gerçek veride, yalnızca geçmişle eğitilip ileriye doğru ölçülerek.
- 05
Bağımsız tekrar
Karara giren sayılar ikinci bir koşuyla, bağımsız olarak yeniden üretiliyor.
- 06
Canlı ileri test
Gerçek zamanlı piyasa verisiyle, sonuçlar önceden belirlenmiş bir pencerede okunuyor.
Bir sonucu olduğundan iyi gösteren hatalar
Gürültülü veride bir sonucu şişiren hatalar çoğu zaman modelde değil, ölçümdedir. Aşağıdakiler bu programda karşılaştığımız ve artık otomatik testlerle engellediğimiz hatalardan bir seçki; her kartta görünen değer ile düzgün ölçülmüş değer yan yana.
- Sharpe +1,176 → −0,437
Dengeleme hileleri modeli nötre çökertebilir
Label smoothing ile sınıf ağırlığı birlikte kullanıldığında model her gün “nötr” demeyi öğrendi. Raporda iyi görünen sonuç, düzgün ölçüldüğünde negatifti.
- t +23,5 → +1,0
Örtüşen pencereler t istatistiğini şişirir
Çok günlük getiriler her gün örneklenince gözlemler bağımsızmış gibi sayılıyor. Örtüşmesiz ölçümde etki ortadan kalktı.
- t 3,0 → 0,8
Log getirilerin toplamı kâr/zarar değildir
Log getirileri toplamak short tarafını sistematik olarak olduğundan iyi gösterir. Basit getiriyle hesaplanınca aynı sinyal anlamlılığını yitirdi.
- 20–50×
Her varlığı bağımsız bir bahis saymak
Varlıklar birlikte hareket ettiği için kesitteki her ismi bağımsız bir bahis saymak bilgi oranını 20 ila 50 kat şişiriyor.
- IC t = 22 → brüt −0,21
Sıra korelasyonu kârlılık demek değildir
İstatistiksel olarak çok güçlü bir sıralama sinyali, getiriler uçlarda yoğunlaştığı için maliyetten önce bile negatif sonuç verdi. Bu yüzden dolar ağırlıklı ölçüm ve decile profili zorunlu.
- Sharpe 12,3 → 1,25
Kararı aynı günün getirisiyle değerlendirmek
Bir günlük kaydırma yapılmadığında sonuç imkânsız derecede iyi çıktı. Tek günlük gecikme eklenince gerçek tablo ortaya çıktı.
- skor 0,80 → 0,51
Çapraz doğrulamada satır sırası sızıntısı
Katlar zaman yerine satır sırasına göre bölününce komşu tarihler eğitimde kaldı. Zaman bloklarıyla bölününce skor düştü.
- Sharpe farkı ≤ 1,36
Donanım da sonucu değiştirir
Aynı model CPU ve GPU (MPS) üzerinde farklı sonuçlar verdi. Karara giren sayılar artık tek cihazda ve sabit tohumlarla üretiliyor.
- |z| = 158
Ölçeklenmemiş girdi üstel kapıyı zehirler
Winsorize edilmemiş bir özellikte 158 standart sapmalık bir değer görüldü. Üstel kapılı bir modelde tek böyle bir gözlem belleği ele geçirir; girdiler bu yüzden kesitsel sıraya çevriliyor.
155 deney, 10 aile
Denenen her fikir, sonucu ne olursa olsun bir deney kataloğuna işleniyor. Bu, aynı fikrin farkında olmadan tekrar denenmesini önlüyor ve çoklu karşılaştırma etkisinin hesaba katılmasını sağlıyor. Sentetik laboratuvardaki 1.583 model ölçümü bu sayıya dahil değil.
Nokta-zamanlı, survivorship'siz bir evren
Bir backtest'in en sessiz hatası evrenin kendisidir: bugün hâlâ işlem gören varlıklarla geçmişi test etmek, batanları görmezden gelmek demektir. Bu yüzden vadeli işlem arşivlerinden listeden çıkanlar dahil bütün USDT perpetual sembollerini topladık; 4.013 dosyalık checksum örneklemesi uyuşmazlıksız çıktı. Evren her gün, yalnızca o gün bilinen likidite verisiyle yeniden seçiliyor.
Bu verinin kullanıldığı sistem- USDT perpetual sembolü, listeden çıkanlar dahil
- 832
- arşiv dosyası; checksum örneklemesi uyuşmazlıksız
- 40.137
Kullanılan veri türleri
- Günlük ve saatlik mumlar
- Funding oranları
- İşlem akışı (agresif alış/satış)
- Açık pozisyon ve trader metrikleri
- Emir defteri derinliği
- İşaret fiyatı ve tasfiyeler