شبیه‌سازی ریسک مونت‌کارلو — مدل‌سازی نتایج پرتفوی

شبیه‌سازی‌های مونت‌کارلو به شما امکان می‌دهند تا بیش از ۱۰۰,۰۰۰ مسیر احتمالی آینده پرتفوی خود را مدل کنید و معیارهای ریسک مانند ارزش در معرض خطر (VaR) و کسری مورد انتظار را کمّی کنید. به جای فرض یک نتیجه واحد، توزیع احتمالات را مشاهده می‌کنید.

مثال: ۱۰۰ هزار شبیه‌سازی از استراتژی معاملاتی خود اجرا کنید. خواهید دید: ۶۸٪ از نتایج ۱۰ تا ۵۰ دلار سود دارند، ۲۵٪ ۱۰ تا ۳۰ دلار ضرر می‌کنند، ۵٪ ۵۰ تا ۲۰۰ دلار ضرر می‌کنند و ۲٪ ۱۰۰ دلار+ سود دارند. اکنون پروفایل ریسک خود را درک می‌کنید.

حرکت براونی هندسی پایه (GBM)

قیمت‌های آینده را به عنوان راه‌های تصادفی با رانش و نوسان مدل کنید:

Python — مسیرهای قیمت مونت‌کارلو
import numpy as np
def simulate_price_paths(S0, mu, sigma, T, dt, n_sims=10000):
# S0: قیمت فعلی, mu: رانش, sigma: نوسان
# T: افق زمانی (روزها), dt: گام زمانی, n_sims: شبیه‌سازی‌ها
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

معیارهای ریسک پرتفوی

ارزش در معرض خطر (VaR)

ضرری که فقط در ۵٪ از سناریوها از آن فراتر می‌روید (اطمینان ۹۵٪):

Python — محاسبه VaR
def calculate_var(simulations, confidence=0.95):
pnl = simulations[:, -1] - simulations[:, 0]
var = np.percentile(pnl, (1 - confidence) * 100)
return var # مثلاً، -۲,۳۴۰ دلار

کسری مورد انتظار (CVaR)

میانگین ضرر در بدترین ۵٪ موارد:

Python — محاسبه CVaR
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 # مثلاً، -۳,۸۰۰ دلار (بدتر از VaR)

شبیه‌سازی ویژه استراتژی

قوانین معاملاتی واقعی خود را شبیه‌سازی کنید، نه فقط مسیرهای قیمت:

Python — مونت‌کارلو استراتژی
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 # توقف در ضرر ۵۰٪
results[sim] = equity
return results

تست استرس با سیگنال‌های Smart Money

بدترین سناریوها را زمانی که اعتماد Smart Money کاهش می‌یابد مدل کنید:

Python — سناریوهای تست استرس
def stress_test_scenarios(base_win_rate):
# سناریو ۱: شرایط عادی (اعتماد HIGH)
scenario_normal = simulate_strategy(10000, win_rate=base_win_rate)
# سناریو ۲: سیگنال‌های در حال تخریب (اعتماد MEDIUM)
scenario_medium = simulate_strategy(10000, win_rate=base_win_rate * 0.95)
# سناریو ۳: فروپاشی (شرایط VETO)
scenario_veto = simulate_strategy(10000, win_rate=0.45) # لبه منفی
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)}
}

تفسیر

از ۱۰ هزار شبیه‌سازی، یاد می‌گیرید:

استراتژی‌های تست استرس با سیگنال‌های Smart Money

ریسک پرتفوی را در شرایط عادی، در حال تخریب و VETO Smart Money درک کنید. API ما سیگنال‌ها را به شما می‌دهد؛ مونت‌کارلو نتایج را مدل می‌کند.

مدل ریسک امروز →