Ana sayfa/Backtest/İleriye Bakma Yanlılığı

Backtest'te İleriye Bakma Yanlılığı (Look-Ahead Bias) Nedir?

İleriye bakma yanlılığı (look-ahead bias), bir stratejinin işlem kararı verildiği anda mevcut olmayacak bilgileri kullandığı bir backtest hatasıdır; örneğin sinyali üreten kapanış fiyatından işlem yapmak. Bunu önlemek için bir sonraki barın açılışında işlem yapın, zamana bağlı (point-in-time) veri kullanın ve düzeltilmiş fiyatları yalnızca getiri hesaplamalarında kullanın.

İleriye bakma yanlılığı (look-ahead bias), backtest'teki en sinsi hatalardan biridir, çünkü çoğu zaman görünmezdir. Stratejiniz, işlem anında elinizde olmayacak bilgileri kullanır ve sonuçları canlı piyasada asla tekrarlanamayacak şekilde şişirir. Ciddi her kantitatif analiz için bu yanlılığı anlamak ve ortadan kaldırmak şarttır.

Tanım

İleriye bakma yanlılığı, bir backtest sisteminin işlem kararı verildiği anda bilinemeyecek verileri kullanmasıyla ortaya çıkar. Bugünün işlemlerini yapmak için yarının gazetesini okumakla eşdeğerdir. Gelecek bilgisini içeren her backtest gerçek dışı derecede iyi sonuçlar üretir — ve bu sonuçlar canlı işlemde hiçbir şekilde tekrarlanamaz.

Yanlılık birden fazla düzeyde ortaya çıkabilir: verinin kendisinde (geriye dönük düzeltilmiş fiyatlar), sinyal mantığında (işlem için aynı barın kapanış fiyatını kullanmak), evren seçiminde (hisseleri gelecekteki sonuçlara göre seçmek) veya temel verilerde (bilanço rakamlarını kamuya açıklanmadan önce kullanmak).

Örnek: Aynı Barda İşlem

En yaygın biçim budur. Stratejiniz mevcut barın kapanış fiyatıyla bir indikatör hesaplar ve ardından aynı kapanış fiyatından işlem yapar. Sorun şu: gerçek zamanda, bar kapanana kadar kapanış fiyatını bilemezsiniz. O noktada ancak mevcut barın kapanışından değil, bir sonraki barın açılışından işlem yapabilirsiniz.

Etkisi küçük görünür — yalnızca bir barlık gecikme — ama devasa olabilir. Bir hisse gece boyunca %2 boşlukla açılırsa ve stratejiniz dünkü kapanıştan girmeye güveniyorsa, işlem başına gerçek getiriniz backtest’in gösterdiğinden %2 daha kötüdür. Yüzlerce işlem boyunca bu fark birikerek tamamen farklı bir strateji profiline dönüşür. Aynı barda işlemle kârlı görünen birçok strateji, bir sonraki barda işlemle zarar eder hale gelir.

Örnek: Gelecekteki Bilanço Verileri

Stratejinizin, fiyat/kazanç oranı 10’un altına düştüğünde hisse aldığını varsayalım. F/K oranı bilanço verisi gerektirir — peki bu kazançlar gerçekte ne zaman açıklandı? 15 Mart’ta açıklanan yıllık kazançları 10 Ocak’taki bir işlem kararında kullanırsanız, gelecekten gelen veriyi kullanmış olursunuz.

Bu, temel faktör backtest’lerinde şaşırtıcı derecede yaygındır. Çoğu veritabanı, açıklanan nihai kazanç rakamını açıklandığı tarihe değil, kapsadığı mali döneme bağlar. 4. çeyrek bilanço raporu Ekim-Aralık dönemini kapsar ama Şubat’a kadar açıklanmayabilir. Aralık’taki bir işlem kararı için 4. çeyrek kazanç verisini kullanan her backtest’te ileriye bakma yanlılığı vardır.

Çözüm, zamana bağlı (point-in-time) veri kullanmaktır — yani bugün geriye bakarak bildiklerimizi değil, her belirli tarihte bilinenleri kaydeden veritabanları. Compustat’ın point-in-time veri seti ve benzeri ürünler tam olarak bu sorunu çözmek için vardır.

Örnek: Geriye Dönük Düzeltilmiş Fiyatlar

Bir şirket 2’ye 1 hisse bölünmesi yaptığında, veri sağlayıcılar grafiklerin kesintisiz görünmesi için tüm geçmiş fiyatları geriye dönük olarak yarıya indirir. Bir şirket 1 $ temettü ödediğinde, düzeltilmiş kapanış serileri önceki tüm fiyatları 1 $ düşürür. Bu, getiri hesaplamak için faydalıdır ama tarihi yeniden yazar.

50 günlük SMA belirli bir fiyat seviyesinin üzerine çıktığında alım yapan bir strateji düşünün. Bir bölünme olursa, tüm geçmiş SMA değerleri yeni düzeltilmiş fiyatlarla yeniden hesaplanır ve potansiyel olarak o tarihte var olmayan kesişim sinyalleri oluşur. 2019’daki bir trader düzeltilmemiş fiyatları görüyordu; 2024’teki backtest ise bölünmeye göre düzeltilmiş fiyatları görüyor. Bunlar farklı sinyaller üretebilen farklı serilerdir.

En iyi uygulama: düzeltilmiş fiyatları yalnızca getiri hesaplamaları ve portföy değeri takibi için kullanın. Sinyal üretimi ve indikatör hesaplamaları için düzeltilmemiş fiyatları (veya zamana bağlı düzeltmelerin dikkatle uygulandığı fiyatları) kullanın.

İleriye Bakma Yanlılığı Nasıl Tespit Edilir

Tespit, backtest sürecinizin sistematik olarak denetlenmesini gerektirir:

  • İşlem zamanlaması kontrolü: Her işlem için sinyal üretim zaman damgasını ve işlem zaman damgasını yazdırın. Aynı bardalarsa, ileriye bakma yanlılığınız var demektir.
  • Veri erişilebilirliği denetimi: Sinyal üretiminde kullanılan her veri noktası için o tarihte kamuya açık olduğunu doğrulayın. Bu, özellikle temel veriler (kazançlar, gelir, beklenti açıklamaları) için önemlidir.
  • Duyarlılık testi: Tüm sinyal işlemlerine 1 barlık gecikme ekleyin. Stratejinizin Sharpe oranı %30’dan fazla düşüyorsa, büyük olasılıkla aynı barda işlem sonuçları şişiriyordu.
  • Kağıt üzerinde işlem karşılaştırması: Stratejiyi birkaç hafta boyunca canlı veride ileriye doğru çalıştırın. Backtest’e göre sistematik olarak düşük performans, süreçte bir yerde ileriye bakma yanlılığı olduğunun güçlü bir göstergesidir.

İleriye Bakma Yanlılığı Nasıl Önlenir

Önleme, backtest sürecinin her aşamasında disiplin gerektirir:

  1. Her zaman bir sonraki barda işlem yapın. Sinyal N. barın kapanışında üretiliyorsa, N+1. barın açılışında işlem yapın. Bu tek kural, ileriye bakma yanlılığının en yaygın kaynağını ortadan kaldırır.
  2. Zamana bağlı veri kullanın. Temel faktörler için, geriye dönük olarak revize edilmiş rakamları değil, her geçmiş tarihte mevcut olan haliyle veriyi kullandığınızdan emin olun.
  3. Düzeltmeleri dikkatle ele alın. Bölünme ve temettüye göre düzeltilmiş verileri yalnızca getiri hesaplamalarında kullanın; mutlak fiyat seviyelerinin önemli olduğu sinyal üretiminde kullanmayın.
  4. Evreninizi dondurun. Backtest’e hangi varlıkların dahil edileceğini seçmek için gelecek bilgisini kullanmayın. Bir stratejiyi S&P 500 hisseleri üzerinde test ediyorsanız, bugünkü listeyi geriye dönük uygulamak yerine her geçmiş tarihteki S&P 500 üye listesini kullanın.
  5. İşlem gecikmeleri ekleyin. Gerçekçi emir gerçekleşme gecikmeleri ekleyin — aracı kurumunuz emirleri milisaniyeler içinde gerçekleştirse bile, kazara oluşmuş aynı bar mantığını yakalamak için güvenlik payı olarak 1 barlık gecikme ekleyin.

Zamana Bağlı (Point-in-Time) Veri

Zamana bağlı (PIT) veritabanları, veriyi her geçmiş tarihte bilindiği haliyle saklar. Eski değerlerin üzerine revize edilmiş rakamları yazan standart veritabanlarının aksine, PIT veritabanları tam bir revizyon geçmişi tutar. Bir şirket 28 Ekim’de 3. çeyrek kazancını başlangıçta 1,20 $ olarak açıklayıp 5 Aralık’ta 1,15 $ olarak revize ettiyse, PIT veritabanı her iki değeri de ilgili zaman damgalarıyla kaydeder.

Büyük varlıklar üzerindeki fiyat tabanlı stratejilerde, veri revizyonlarından kaynaklanan ileriye bakma yanlılığı daha az endişe vericidir — fiyatlar kapanışta kesinleşir. Ancak temel veri kullanan her strateji (değer yatırımı, kalite faktörleri, kazanca dayalı sinyaller) için PIT verisi şarttır. PIT ve PIT olmayan veri kullanmak arasındaki fark, 1,5 Sharpe oranına sahipmiş gibi görünen bir strateji ile gerçekte 0,7 Sharpe oranına sahip bir strateji arasındaki fark olabilir.

Kendiniz Deneyin

QuantPrompt, ileriye bakma yanlılığının en yaygın biçimlerini varsayılan olarak önleyecek şekilde tasarlanmıştır. N. barda indikatör kesişimlerinden veya fiyat koşullarından üretilen sinyaller, aynı barın kapanışında değil, otomatik olarak bir sonraki mevcut fiyattan işleme alınır. Bu, herhangi bir özel yapılandırma gerektirmeden aynı barda işlem yanlılığını ortadan kaldırır.

Etkisini kendiniz görmek için bir strateji tarif edin ve aynı barda işlem ile bir sonraki barda işlem sonuçlarını karşılaştırın. Aradaki fark, ileriye bakma yanlılığının tipik backtest getirilerini ne kadar şişirdiğini tam olarak gösterecek — ve gerçek sermayeyle işlem yapmayı düşündüğünüz her strateji için bunu ortadan kaldırmanın neden pazarlık konusu olmadığını ortaya koyacaktır.

Sık sorulan sorular

Kaynaklar