Monte Carlo Risk Simülasyonu — Portföy Sonuçlarını Modelleme

Monte Carlo simülasyonları, portföyünüzün 100.000'den fazla potansiyel gelecek yolunu modellemenizi sağlar ve Value at Risk (VaR) ve beklenen açık gibi risk metriklerini nicelendirir. Tek bir sonuç varsaymak yerine, olasılıkların dağılımını görürsünüz.

Örnek: Ticaret stratejinizin 100k simülasyonunu çalıştırın. Şunları göreceksiniz: Sonuçların %68'i $10-$50 kâr, %25'i $10-$30 zarar, %5'i $50-$200 zarar ve %2'si $100+ kâr elde eder. Artık risk profilinizi anlıyorsunuz.

Temel Geometrik Brown Hareketi (GBM)

Gelecek fiyatları drift ve volatilite ile rastgele yürüyüşler olarak modelleyin:

Python — Monte Carlo fiyat yolları
import numpy as np
def simulate_price_paths(S0, mu, sigma, T, dt, n_sims=10000):
# S0: mevcut fiyat, mu: drift, sigma: volatilite
# T: zaman ufku (gün), dt: zaman adımı, n_sims: simülasyonlar
steps = int(T / dt)
paths = np.zeros((n_sims, steps))
paths[:, 0] = S0
for i in range(1, steps):
# dS = mu*S*dt + sigma*S*sqrt(dt)*Z
Z = np.random.normal(0, 1, n_sims)
dS = mu * paths[:, i-1] * dt + sigma * paths[:, i-1] * np.sqrt(dt) * Z
paths[:, i] = paths[:, i-1] + dS
return paths

Portföy Risk Metrikleri

Value at Risk (VaR)

Yalnızca %5 senaryoda aşacağınız kayıp (%95 güven):

Python — VaR Hesapla
def calculate_var(simulations, confidence=0.95):
pnl = simulations[:, -1] - simulations[:, 0]
var = np.percentile(pnl, (1 - confidence) * 100)
return var # ör., -$2,340

Expected Shortfall (CVaR)

En kötü %5 durumdaki ortalama kayıp:

Python — CVaR Hesapla
def calculate_cvar(simulations, confidence=0.95):
pnl = simulations[:, -1] - simulations[:, 0]
var_threshold = np.percentile(pnl, (1 - confidence) * 100)
worst_5_pct = pnl[pnl <= var_threshold]
cvar = np.mean(worst_5_pct)
return cvar # ör., -$3,800 (VaR'dan daha kötü)

Stratejiye Özel Simülasyon

Sadece fiyat yollarını değil, gerçek ticaret kurallarınızı simüle edin:

Python — Strateji Monte Carlo
def simulate_strategy(capital, win_rate, avg_win, avg_loss, trades_per_day=10, days=30, n_sims=10000):
results = np.zeros(n_sims)
for sim in range(n_sims):
equity = capital
n_trades = trades_per_day * days
for _ in range(n_trades):
if np.random.rand() < win_rate:
pnl = np.random.normal(avg_win, avg_win * 0.2)
else:
pnl = -np.random.normal(avg_loss, avg_loss * 0.2)
equity += pnl
if equity < capital * 0.5:
break # %50 kayıpta durdur
results[sim] = equity
return results

Smart Money Sinyalleri ile Stres Testi

Smart Money güveninin düştüğü en kötü senaryoları modelleyin:

Python — Stres testi senaryoları
def stress_test_scenarios(base_win_rate):
# Senaryo 1: Normal koşullar (YÜKSEK güven)
scenario_normal = simulate_strategy(10000, win_rate=base_win_rate)
# Senaryo 2: Bozulan sinyaller (ORTA güven)
scenario_medium = simulate_strategy(10000, win_rate=base_win_rate * 0.95)
# Senaryo 3: Çöküş (VETO koşulu)
scenario_veto = simulate_strategy(10000, win_rate=0.45) # negatif edge
return {
'normal': {'var': np.percentile(scenario_normal, 5), 'mean': np.mean(scenario_normal)},
'medium': {'var': np.percentile(scenario_medium, 5), 'mean': np.mean(scenario_medium)},
'veto': {'var': np.percentile(scenario_veto, 5), 'mean': np.mean(scenario_veto)}
}

Yorumlama

10k simülasyondan şunları öğrenirsiniz:

Smart Money sinyalleri ile stratejileri stres testi yapın

Normal, bozulan ve VETO Smart Money koşullarında portföy riskini anlayın. API'miz size sinyalleri verir; Monte Carlo sonuçları modeller.

Risk Modeli Bugün →