← Back to list

Python ile Risk Analizi: Monte Carlo Simülasyonu Kullanarak Geleceği Öngörmek

Markowitz ile portföyümüzü optimize ettik, peki ya belirsiz gelecek? BIST 100 verileriyle 1000 farklı gelecek senaryosu oluşturuyoruz.

Deü Ybs Fintech Gündem · 2025-12-13 11:06 · 160 claps · 3.1 min read
#python #finance #monte-carlo-simulation #data-science #deuybs
Open on Medium ↗
Wiki topics: ML · Machine Learning ECO · Economy · General 🔬 · Science · General

Python ile Risk Analizi: Monte Carlo Simülasyonu Kullanarak Geleceği Öngörmek

Markowitz ile portföyümüzü optimize ettik, peki ya belirsiz gelecek? BIST 100 verileriyle 1000 farklı gelecek senaryosu oluşturuyoruz.

1. Giriş

Daha önceki yazımızda Markowitz Portföy Teorisi ile “geçmiş verileri” kullanarak risk ve getiri dengesini nasıl optimize edeceğimizi konuşmuştuk. Ancak finans dünyasında geçmiş, geleceğin garantisi değildir.

Yatırımcıların en büyük kâbusu “belirsizliktir”. Yarın ne olacağını bilemeyiz, ama “ne olabileceğine” dair binlerce senaryo üretebiliriz. İşte burada devreye Monte Carlo Simülasyonu giriyor. Adını Monako’daki ünlü kumarhaneden alan bu yöntem, rastgelelik içeren sistemlerin (borsa gibi) gelecekteki davranışlarını tahmin etmek için kullanılır.

Bu yazıda, Python kullanarak Türk Hava Yolları (THYAO) hissesinin önümüzdeki 1 yıl içinde izleyebileceği binlerce farklı fiyat yolunu simüle edeceğiz.

2. İşin Matematiği: Geometrik Brown Hareketi

Hisse fiyatlarının gelecekteki hareketini modellemek için finans dünyasında standart olarak kabul edilen Geometric Brownian Motion (GBM) formülünü kullanacağız. Korkmayın, Python bizim için hesaplayacak ama mantık şu:

Hisse Fiyatı = (Geçmiş Trend) + (Rastgele Şoklar)

Formülde iki ana bileşenimiz var:

  1. Drift (Sürüklenme — $\mu$): Hissenin geçmişteki ortalama getirisi. (Hisse genel olarak yukarı mı gidiyor?)
  2. Volatility (Oynaklık — $\sigma$): Hissenin ne kadar riskli olduğu. (Rastgele şoklar ne kadar büyük?)

3. Python ile Uygulama

Adım 1: Kütüphaneler ve Veri Çekme

Öncelikle gerekli kütüphaneleri yüklüyoruz ve yfinance ile veriyi çekiyoruz.

import numpy as np
import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
# Veriyi çekelim (Örn: Türk Hava Yolları)
hisse = "THYAO.IS"
veri = yf.download(hisse, start="2023-01-01", end="2024-01-01")
# Sadece kapanış fiyatlarını alalım
fiyatlar = veri['Close']

Adım 2: Getiri ve Volatilite Hesabı

Formülümüz için gerekli olan logaritmik getirileri hesaplıyoruz.

# Logaritmik getiriler
log_getiriler = np.log(1 + fiyatlar.pct_change())
# Ortalama Getiri (Drift için gerekli)
u = log_getiriler.mean()
# Varyans
var = log_getiriler.var()
# Drift (Sürüklenme) Hesabı: Ortalama - (Varyans / 2)
drift = u - (0.5 * var)
# Standart Sapma (Volatilite)
stdev = log_getiriler.std()

Adım 3: Simülasyonu Kurmak

Burada sihir gerçekleşiyor. Önümüzdeki 250 işlem günü (yaklaşık 1 yıl) için 1000 farklı senaryo üreteceğiz.

# Parametreler
t_intervals = 250 # Tahmin edilecek gün sayısı
iterations = 1000 # Kaç farklı senaryo üretilsin?
# Günlük getirileri simüle et (Drift + Şok)
daily_returns = np.exp(drift.values + stdev.values * norm.ppf(np.random.rand(t_intervals, iterations)))
# İlk fiyatı al (Bugünkü son kapanış)
S0 = fiyatlar.iloc[-1]
# Fiyat listesi oluştur (Sıfırlarla dolu bir matris)
price_list = np.zeros_like(daily_returns)
price_list[0] = S0
# Döngü ile fiyatları oluştur: Bugün = Dün * Günlük Getiri
for t in range(1, t_intervals):
    price_list[t] = price_list[t - 1] * daily_returns[t]

4. Sonuçları Görselleştirme

plt.figure(figsize=(10,6))
plt.plot(price_list)
plt.title(f"{hisse} İçin Monte Carlo Simülasyonu (1000 Senaryo)")
plt.xlabel("Gün")
plt.ylabel("Fiyat (TL)")
plt.show()

THYAO.IS hissesi için 250 işlem günü (yaklaşık 1 yıl) sonrasını öngören 1000 farklı Monte Carlo simülasyonu senaryosu. Her bir çizgi, olası bir gelecek fiyat yolunu temsil etmektedir.

THYAO.IS hissesi için 250 işlem günü (yaklaşık 1 yıl) sonrasını öngören 1000 farklı Monte Carlo simülasyonu senaryosu. Her bir çizgi, olası bir gelecek fiyat yolunu temsil etmektedir.

5. Analiz ve Yorum

Yukarıdaki grafiğe (THYAO.IS) baktığımızda, ilk bakışta kaotik bir “spaghetti” yumağı görüyoruz. Ancak bu karmaşa, geleceğin belirsizliğinin en net resmidir. Gelin, bu grafiği bir veri bilimci gözüyle okuyalım:

  1. Ortak Başlangıç, Farklı Sonlar: Dikkat ederseniz, 1000 senaryonun tamamı 0. günde aynı noktadan (son kapanış fiyatı olan yaklaşık 275 TL seviyesinden) başlıyor. Ancak zaman ilerledikçe (sağa doğru gittikçe), çizgiler bir yelpaze gibi açılıyor. Bu durum, zaman geçtikçe belirsizliğin ve riskin nasıl arttığını görsel olarak kanıtlıyor.
  2. Olasılıkların Yoğunlaştığı Bölge: Çizgilerin en yoğun olduğu, rengin en koyu göründüğü orta bölge (kabaca 300 TL ile 500 TL arası), istatistiksel olarak en olası senaryoları temsil eder. Simülasyonumuza göre, hisse fiyatının 1 yıl sonra bu aralıkta bir yerde olma ihtimali, uç noktalarda olma ihtimalinden çok daha yüksektir.
  3. Uç Senaryolar (En İyi ve En Kötü):
  • Grafiğin en tepesindeki birkaç çizgi, her şeyin yolunda gittiği “en iyi durum” senaryolarını gösteriyor. Bu senaryolarda fiyat 800–900 TL bandına kadar çıkabiliyor.
  • En alttaki çizgiler ise “en kötü durum” senaryolarıdır. Burada fiyatın 150 TL’nin altına gerilediğini görüyoruz. Yatırımcı için bu çizgiler, potansiyel riskin boyutunu gösterir.

Özetle: Bu grafik bize THYAO’nun 1 yıl sonra kesin olarak kaç TL olacağını söylemez. Ancak bize fiyatın hangi aralıkta, hangi olasılıkla bulunabileceğine dair çok değerli bir harita sunar. Bir yatırımcı bu haritaya bakarak, “En kötü senaryoda kaybım ne olur?” sorusuna yanıt arayabilir ve risk yönetimini buna göre yapabilir.

6. Kapanış

Bu çalışmada, finansal veriyi ve istatistiksel olasılığı Python gücüyle birleştirdik. Unutmayın, bu bir yatırım tavsiyesi değil, bir veri bilimi çalışmasıdır. Modeller geçmiş veriye dayanır ve “Siyah Kuğu” (beklenmedik olaylar) risklerini her zaman barındırır.

Bir sonraki yazıda görüşmek üzere!


메타데이터
post_id
cb0d914dff65
slug
python-ile-risk-analizi-monte-carlo-simülasyonu-kullanarak-geleceği-öngörmek-cb0d914dff65
url
https://medium.com/@ybsdeu232/python-ile-risk-analizi-monte-carlo-sim%C3%BClasyonu-kullanarak-gelece%C4%9Fi-%C3%B6ng%C3%B6rmek-cb0d914dff65
canonical_url
https://medium.com/@ybsdeu232/python-ile-risk-analizi-monte-carlo-sim%C3%BClasyonu-kullanarak-gelece%C4%9Fi-%C3%B6ng%C3%B6rmek-cb0d914dff65
author_url
https://medium.com/@ybsdeu232
status
ok
fetched_at
2026-07-14 06:20:57