Finansal piyasalarda tahmin çalışması yapmak geçmişte bana heyecan...

@urazdev
Uraz Akgül@urazdev
10 views Dec 20, 2025 ~6 min read
Advertisement
1
Finansal piyasalarda tahmin çalışması yapmak geçmişte bana heyecan verse de artık pek mantıklı gelmediği için bu tür işleri epey azalttım. Buna karşılık olasılık tabanlı tahmin çalışmaları hala hoşuma gidiyor. Onlardan birini; block bootstrap tabanlı çalışmamı aktarayım.
Media image
Media image
Media image
Media image
2
Konu tahmin olunca çoğu zaman tek bir en iyi sonucun peşine düşüyoruz. Örneğin, endeks nereye gider, kaç olur, yükselir mi düşer mi? Bu çalışma ise bu refleksi tersine çeviriyor ve tek bir değer söylemek yerine endeksin önümüzdeki günlerde izleyebileceği birden fazla yolu, yani farklı fiyat hikayelerini ele alıyor. Üstelik bunu da tamamen geçmiş fiyat hareketlerinden yola çıkarak, sezgisel ama sağlam bir senaryo üretim ve gruplaştırma mekanizmasıyla yapıyor.
3
Geleceği tahmin etmek için klasik bir model (ARIMA, GARCH gibi) kurmaktansa bu yöntem tamamen tarihsel veriyi yeniden karıştırarak yeni yollar yaratıyor.

Kullandığımız yöntem fixed block bootstrap (sabit bloklu bootstrap).

Mantığı şöyle çalışıyor:

Elinizde geçmişe ait uzun bir getiri dizisi var. Bunu tek tek günler halinde değil, belirli uzunlukta bloklara ayırıyorsunuz. Örneğin blok uzunluğu 20 günse, veri 20'şer günlük parçalara bölünüyor. Her blok piyasada gerçekten yaşanmış 20 günlük bir mini senaryo gibi düşünülebilir. Artık küçük ralliler, düzeltmeler, yatay dönemler... ne yaşandıysa.

Sonra gelecekteki örneğin 100 günlük bir ufku simüle etmek için bu 20 günlük bloklardan rastgele seçimler yapılıyor. Kaç blok gerekiyorsa (örneğin 100 gün için 5 blok) o kadar blok çekiliyor, yan yana ekleniyor ve fazlası kesilip tam 100 gün bırakılıyor. Bu işlem bir kere değil, binlerce kez tekrarlanıyor. Böylece tamamen geçmişte gerçekten görülmüş davranış biçimlerini bir araya getirerek binlerce farklı gelecek fiyat yolu üretiliyor.

Bu yaklaşımın güzelliği şu: Ne dağılım varsayımı yapılıyor ne de karmaşık parametreli modeller kuruluyor. Geçmişin yapı taşlarını ya da blokları karıştırarak korelasyonları belli ölçüde koruyan ama farklı kombinasyonlara sahip muhtemel gelecek senaryoları elde ediyorsunuz.

Her simülasyonda aslında getiriler üretiliyor. Daha sonra bu getiriler üst üste toplanıyor ve başlangıçtaki son gerçek fiyata uygulanarak tekrar fiyat seviyesine çevriliyor. Böylece her yol, "bugünden itibaren fiyat şu şekilde hareket edebilir" diyen bir fiyat serisi haline geliyor.
4
Binlerce simüle edilmiş fiyat yolu elinizde duruyor. Bunları tek tek çizip bakmanın bir anlamı yok; göz kararı yorumlamak imkansız. İşte burada işin yenilikçi kısmını devreye alıyoruz. Yani, her bir yolu izlediği yön desenine göre sınıflandırıyoruz.

Deseni çıkarmak için şu fikir kullanılıyor:

Her yolun tamamına bakmak yerine kısa pencereler alınıyor (örneğin 5 günlük). Bu pencerenin içindeki log fiyatlara basit bir doğru (regresyon) oturtuluyor. Doğrunun eğimi pozitifse UP, negatifse DOWN, sıfıra çok yakınsa FLAT etiketi veriliyor. Pencere her gün bir adım kaydırılarak aynı işlem tekrarlanıyor. Böylece her yol için zaman içinde UP-DOWN-FLAT etiketlerinden oluşan bir dizi elde ediliyor.

Sonra bu dizi sıkıştırılıyor. Yani UP, UP, UP, DOWN, DOWN, FLAT, FLAT gibi bir diziden sadece UP-DOWN-FLAT kalıyor. Böylece her yolu karakterize eden kısa bir yön cümlesi çıkıyor: UP (sürekli yukarı), UP-DOWN (önce yükselip sonra düşüyor) gibi.

Bu küçük yön cümlesi o simüle yolun özet hikayesi oluyor.
5
Şimdi sıradaki adım aynı desene sahip yolları bir araya toplamak. Yani UP diyenlerin hepsi bir grup, UP-DOWN diyenler başka grup, DOWN-UP-FLAT diyenler başka grup...

Her grup benzer davranışta birçok simüle senaryo içeriyor. Her grup için şu bilgiler hesaplanıyor:

Önce o gruptaki tüm yolların her günkü median (ortanca) fiyatı bulunuyor. Median, uç değerleri törpüleyen ve o grubun tipik yolunu gösteren bir orta çizgi gibi düşünülebilir.

Ardından her gün için alt ve üst yüzdelik bantları (örneğin %20 ve %80) hesaplanıyor. Bu da o desen altında fiyatın hangi aralıkta sallanma ihtimalinin yüksek olduğunu gösteren bir güven aralığı oluyor.

Bir de medoid kavramı kullanılıyor. Medoid, o grupta gerçekten simüle edilmiş yolların içinden median yola en çok benzeyen senaryoyu seçiyor. Yani ortanca çizgiye en yakın gerçek yol kimse o bizim temsil senaryomuz olsun deniyor. Bu da teorik bir ortalamaya değil, gerçekten ürettiğiniz bir senaryoya dayanmanızı sağlıyor.

Her desen için bir de olasılık hesaplanıyor. O deseni taşıyan yolların sayısı toplam yol sayısına bölünüyor. Örneğin 5000 senaryodan 1200'ü UP-DOWN ise UP-DOWN deseninin olasılığı %24 gibi.

Sonuç olarak elde her biri bir hikayeyi temsil eden birkaç senaryo kümesi var. Her kümenin olasılığı belli, o küme için tipik yol (medoid) belli ve bu yolun etrafında bir belirsizlik bandı var.
6
Şimdi çok kritik bir soru geliyor: Bu senaryo makinesi gerçekten işe yarıyor mu? Bunu ölçmeden sadece bugüne bakmak riskli olurdu. Bu yüzden geçmişte rastgele tarihler seçip o gün sanki bugünmüş gibi davranarak yöntemi test ediyoruz.

Şöyle düşünün: Zaman serisinden belli bir koşulu sağlayan (yeterince geçmiş veri ve yeterince ileriye gerçek veri bırakan) rastgele tarihler seçiliyor. Diyelim ki 20 farklı tarih.

Her bir tarih için süreç şöyle işliyor:

Seçilen tarihe kadar olan tüm geçmiş fiyatlar kullanılarak log getiriler hesaplanıyor. Sadece bu güne kadar olan veri ile fixed block bootstrap çalıştırılıyor ve yine aynı şekilde binlerce gelecek yol simüle ediliyor. Yani geçmişe gidip o günkü ben gibi davranıyorsunuz.

Ardından az önce anlattığım gibi bu simüle yollar desenlerine göre kümeleniyor, her küme için medoid senaryo ve belirsizlik bantları çıkarılıyor ve en olası ilk 3 desen seçiliyor.

Daha sonra gerçek hayata bakılıyor: Seçtiğiniz tarihten sonra gelen 30 veya 100 günlük gerçek fiyat serisi alınıyor. Bu gerçek yol, o gün bilmediğiniz ama bugün bildiğiniz "gerçekte ne olmuştu?" bilgisi.

Her medoid senaryo ile gerçek fiyat yolu arasında hata ölçülüyor. Bunun için klasik RMSE (root mean squared error) kullanılıyor. Yani, tahmin edilen ve gerçekleşen fiyatlar arasındaki farkların karelerinin ortalamasının karekökü. Ayrıca ufkun son günündeki fiyat için yüzde sapma da hesaplanıyor; yani medoidin son fiyatı ile gerçekleşen son fiyat ne kadar farklı.

Bu test şu soruya cevap veriyor: O gün binlerce senaryoyu üretip desenlere göre gruplasaydım en olası kümelerden çıkan medoid senaryolar gerçek geleceği ne kadar ıskalamış olurdu? Başka bir ifadeyle, yöntemin hem genel isabetini (RMSE) hem de uçtaki hedef fiyat yanılgısını ölçmüş oluyorsunuz.

İsterseniz bu geçmiş backtestleri de grafikte görüyorsunuz: Siyah çizgi o güne kadar olan tarihsel fiyat, renkli çizgiler en olası desenlerin medoid senaryoları ve çevrelerindeki bantlar, gri kesik çizgi ise gerçekte ne olduğunun yolu.
7
Backtest tatmin ettiyse artık aynı makineyi bugüne uygulayabilirsiniz.

Bu sefer rastgele bir tarih değil, serinin son günü seçiliyor. Bugüne kadar olan tüm veriden getiriler hesaplanıyor, sabit bloklu bootstrap ile yine binlerce gelecek yolu simüle ediliyor ve tüm senaryolar az önce anlattığım gibi desenlerine göre kümeleniyor.

Yine en olası ilk 3 desen seçiliyor. Her biri için:

* Olasılık (kaç senaryo bu desene sahip?),
* Medoid senaryonun tam yolu,
* Her gün için alt ve üst bantlar,
* Ufkun sonundaki hedef fiyat (medoidin son seviyesi) hesaplanıyor.

Grafikte son 100 günün gerçek fiyatı (göstermek amaçlı) siyah çizgi olarak, gelecek için 3 farklı renkli senaryo ve bu senaryoların belirsizlik bantları gösteriliyor. Zaman ekseni artık "bugünden itibaren 1. gün, 2. gün, ..." şeklinde göreli bir ufuk ekseni olarak kullanılıyor. Böylece, "eğer piyasa şu 3 ana hikayeden birine benzer şekilde hareket ederse, fiyat hangi aralıklara oturabilir?" sorusuna görsel bir cevap alınıyor.

Her senaryo için lejantta olasılık ve hedef fiyat birlikte veriliyor. Örneğin, Direction1 (Prob=7.32%, Target=12572.53) kısmını ele alalım. Anlamı: Bu senaryonun seçilen ufuk boyunca görülme olasılığı simülasyonlara göre %7.32 civarında, bu senaryonun uçtaki hedef seviyesi de yaklaşık 12573.

Örnek amaçlıdır.
Media image
8
Toparlayalım.

Bu çalışma tek bir nokta tahmini üretmekten ziyade gelecek hakkında senaryo kümeleri sunuyor. Her senaryo kümesinin kendi içinde tutarlı bir yolu, olasılığı ve belirsizlik bandı var. Böylece bir portföy yöneticisi veya risk yöneticisi, "Yukarı yönlü güçlü senaryoların olasılığı nedir? Aşağı yönlü sert düzeltme yaşayan senaryolar ne kadar sık çıkıyor? Yatay seyirli zayıf trendler ne kadar baskın?" gibi sorulara yanıt alabilir.

Ayrıca, medoid yaklaşımı sayesinde soyut bir ortalama yerine gerçekten simüle edilmiş bir "temsil senaryo" görüyor. Bu da risk konuşurken daha gerçekçi hikayeler anlatmayı kolaylaştırır.

Bununla birlikte yöntem tamamen tarihsel veriye dayanıyor. Yani büyük rejim değişimlerini, yapısal kırılmaları veya hiç yaşanmamış şokları doğal olarak hesaba katmıyor. Sabit blok uzunluğu seçimi de önemli. Çok kısa bloklar korelasyonları öldürür, çok uzun bloklar ise örneklem sayısını azaltır. Ama temelde karmaşık istatistiksel modellere boğulmadan, geçmiş davranış kalıplarını kullanarak geleceğin olası yollarını görmek için oldukça sezgisel ve güçlü bir çerçeve sunuyor.

Her çalışma için olduğu gibi bu çalışma da geliştirmeye her zaman açıktır.
Actions
What You Can Do
  • Export as PDF or Markdown
  • Batch Export to Notion
  • Bookmark & Highlight
  • Screenshot Tweet
Create Free Account

Includes 7-day Premium trial

Advertisement