محاكاة مونت كارلو لنمذجة نتائج المحفظة

تتيح لك محاكاة مونت كارلو نمذجة أكثر من 100,000 مسار محتمل لمحفظتك، مع قياس مؤشرات المخاطر مثل القيمة المعرضة للخطر (VaR) والخسارة المتوقعة. بدلاً من افتراض نتيجة واحدة، ترى توزيع الاحتمالات.

مثال: قم بتشغيل 100 ألف محاكاة لإستراتيجية التداول الخاصة بك. سترى: 68٪ من النتائج تحقق ربحًا من 10 إلى 50 دولارًا، و25٪ تخسر من 10 إلى 30 دولارًا، و5٪ تخسر من 50 إلى 200 دولار، و2٪ تحقق ربحًا يزيد عن 100 دولار. الآن أنت تفهم ملف المخاطر الخاص بك.

الحركة البراونية الهندسية الأساسية (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)

الخسارة التي قد تتجاوزها في 5٪ فقط من السيناريوهات (ثقة 95٪):

Python — حساب VaR
def calculate_var(simulations, confidence=0.95):
pnl = simulations[:, -1] - simulations[:, 0]
var = np.percentile(pnl, (1 - confidence) * 100)
return var # على سبيل المثال، -2,340 دولار

الخسارة المتوقعة (CVaR)

متوسط الخسارة في أسوأ 5٪ من الحالات:

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 # على سبيل المثال، -3,800 دولار (أسوأ من 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 # إيقاف عند خسارة 50٪
results[sim] = equity
return results

اختبار الضغط باستخدام إشارات Smart Money

نمذجة أسوأ السيناريوهات عندما تنخفض ثقة Smart Money:

Python — سيناريوهات اختبار الضغط
def stress_test_scenarios(base_win_rate):
# السيناريو 1: ظروف طبيعية (ثقة عالية)
scenario_normal = simulate_strategy(10000, win_rate=base_win_rate)
# السيناريو 2: تدهور الإشارات (ثقة متوسطة)
scenario_medium = simulate_strategy(10000, win_rate=base_win_rate * 0.95)
# السيناريو 3: انهيار (حالة 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)}
}

التفسير

من 10 آلاف محاكاة، تتعلم:

اختبر استراتيجيات الضغط باستخدام إشارات Smart Money

افهم مخاطر المحفظة في ظل ظروف Smart Money العادية والمتدهورة وحالة VETO. واجهة برمجة التطبيقات (API) الخاصة بنا تمنحك الإشارات؛ ومونت كارلو تنمذج النتائج.

نموذج المخاطر اليوم →