IC Markets

Simulation Monte Carlo on corelation gold/silver price

Discuss 1-minute to 15-minute price action setups, fading intraday momentum, key support/resistance zones, and proven short-term trading methodologies.
Post Reply
PTScalper
Site Admin
Posts: 210
Joined: Mon Jul 20, 2026 1:28 pm

Simulation Monte Carlo on corelation gold/silver price

Post by PTScalper »

Hi scalpers,

i prepared for you simulation of corelation on gold/silver price scalping.

Its written in Python.

Code: Select all

 import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import qmc, norm

def generate_data(iterations: int = 2_000_000):
    """Zkrácená verze QMC simulace z předchozího kroku pro získání dat."""
    S0_gold, S0_silver = 2350.0, 30.0
    mu_gold, vol_gold = 0.05, 0.15
    mu_silver, vol_silver = 0.07, 0.28
    correlation, T = 0.82, 1.0

    corr_matrix = np.array([[1.0, correlation], [correlation, 1.0]])
    L = np.linalg.cholesky(corr_matrix)

    sampler = qmc.Sobol(d=2, scramble=True)
    uniform_samples = sampler.random(n=iterations)
    z_independent = norm.ppf(uniform_samples)
    
    z_correlated = (L @ z_independent.T).T
    x_gold, x_silver = z_correlated[:, 0], z_correlated[:, 1]

    prices_gold = S0_gold * np.exp((mu_gold - 0.5 * vol_gold**2) * T + vol_gold * np.sqrt(T) * x_gold)
    prices_silver = S0_silver * np.exp((mu_silver - 0.5 * vol_silver**2) * T + vol_silver * np.sqrt(T) * x_silver)
    
    return prices_gold, prices_silver

# 1. Vygenerování dat
prices_gold, prices_silver = generate_data(2_000_000)

# 2. Nastavení vizuálního stylu Seaborn
sns.set_theme(style="darkgrid")
plt.figure(figsize=(10, 8))

# 3. Vykreslení 2D histogramu
# Používáme bins=150 pro detailní rozlišení. 
# cmap="inferno" nebo "magma" poskytuje skvělý kontrast pro teplotní mapy (od tmavé po světlou)
sns.histplot(
    x=prices_gold, 
    y=prices_silver, 
    bins=150, 
    cmap="magma", 
    cbar=True,
    cbar_kws={'label': 'Hustota výskytu (počet iterací v sektoru)'}
)

# 4. Přidání metadat grafu
plt.title("QMC Simulace: Korelace ceny Zlata a Stříbra (2 000 000 iterací)", fontsize=14, pad=15)
plt.xlabel("Cena Zlata (USD)", fontsize=12)
plt.ylabel("Cena Stříbra (USD)", fontsize=12)

# Vykreslení přímky lineární regrese (volitelné, ukazuje směr korelace)
# Kreslíme ji tenkou, aby nepřekryla samotný histogram
sns.regplot(
    x=prices_gold, 
    y=prices_silver, 
    scatter=False, 
    color="cyan", 
    line_kws={"linewidth": 1, "linestyle": "--"}
)

plt.tight_layout()
plt.show()
Please let me know, what do you think :-)
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Post Reply