Monte Carlo Risk Simulation — Μοντελοποίηση Αποτελεσμάτων Χαρτοφυλακίου
Οι προσομοιώσεις Monte Carlo σας επιτρέπουν να μοντελοποιήσετε 100.000+ πιθανές μελλοντικές τροχιές του χαρτοφυλακίου σας, ποσοτικοποιώντας μετρικές κινδύνου όπως η Αξία σε Κίνδυνο (VaR) και η αναμενόμενη απώλεια. Αντί να υποθέσετε ένα μόνο αποτέλεσμα, βλέπετε την κατανομή των πιθανοτήτων.
Παράδειγμα: Εκτελέστε 100k προσομοιώσεις της στρατηγικής συναλλαγών σας. Θα δείτε: 68% των αποτελεσμάτων κερδίζουν $10-$50, 25% χάνουν $10-$30, 5% χάνουν $50-$200 και 2% κερδίζουν $100+. Τώρα καταλαβαίνετε το προφίλ κινδύνου σας.
Βασική Γεωμετρική Κίνηση Brownian (GBM)
Μοντελοποιήστε τις μελλοντικές τιμές ως τυχαίους περιπάτους με παρέκκλιση και διακύμανση:
import numpy as np
def simulate_price_paths(S0, mu, sigma, T, dt, n_sims=10000):
steps = int(T / dt)
paths = np.zeros((n_sims, steps))
paths[:, 0] = S0
for i in range(1, steps):
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% εμπιστοσύνη):
def calculate_var(simulations, confidence=0.95):
pnl = simulations[:, -1] - simulations[:, 0]
var = np.percentile(pnl, (1 - confidence) * 100)
return var
Αναμενόμενη Απώλεια (CVaR)
Μέση απώλεια στα χειρότερα 5% των περιπτώσεων:
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
Προσομοίωση Ειδικής Στρατηγικής
Προσομοιώστε τους πραγματικούς κανόνες συναλλαγών σας, όχι μόνο τις τροχιές τιμών:
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:
def stress_test_scenarios(base_win_rate):
scenario_normal = simulate_strategy(10000, win_rate=base_win_rate)
scenario_medium = simulate_strategy(10000, win_rate=base_win_rate * 0.95)
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)}
}
Ερμηνεία
Από 10k προσομοιώσεις, μαθαίνετε:
- Διάμεσο αποτέλεσμα (50ο εκατοστημόριο)
- Καλύτερη περίπτωση (95ο εκατοστημόριο)
- Χειρότερη περίπτωση (5ο εκατοστημόριο)
- Πιθανότητα καταστροφής (equity < 0)
- Αναμενόμενη διάρκεια υποχώρησης
Δοκιμάστε στρατηγικές πίεσης με σήματα Smart Money
Κατανοήστε τον κίνδυνο χαρτοφυλακίου υπό κανονικές, εξασθενημένες και VETO συνθήκες Smart Money. Το API μας σας δίνει τα σήματα· το Monte Carlo μοντελοποιεί τα αποτελέσματα.
Risk Model Today →