Synthetic Indexes

Live composite indexes — currencies, equities, commodities, bonds & risk sentimentUpdated 3m ago

Timeframe

Currency Strength

G10 currencies ranked by cross-pair performance

Currency Strength Index — How It Works

Base / Quote Logic

Each G10 currency's strength is calculated by averaging its contribution across all 7 pairs where it appears. The key rule: when a currency is the base (first in the pair), the pair's % change applies directly. When it's the quote (second in the pair), the change is inverted.

Why Inversion Matters — Example

If AUD/NZD drops −0.75%, this means AUD weakened against NZD. For AUD (base): the contribution is −0.75% (pair fell = AUD got weaker). For NZD (quote): the contribution is +0.75% (pair fell = NZD got stronger). This is correct because AUD/NZD falling means each AUD buys fewer NZD — AUD lost value, NZD gained.

Reading the Expanded View

When you expand a currency bar, each pair row shows:

  • Pair symbol — the forex pair (e.g. AUD/NZD)
  • Role badge — base or quote for this currency
  • % change — the actual pair price change (what you'd see on a chart)
  • Arrow indicator — whether this pair's movement helps (↑) or hurts (↓) the currency's index score

The overall index score is the simple average of all 7 contributions. A currency that is weak across all its pairs will have a strongly negative score; one that is strong across all pairs will be strongly positive.

Formula

Index(CCY) = Avg( Σ pair_change × (CCY is base ? +1 : −1) )
Risk Sentiment Index — MethodologyVIX-Correlated Basket Construction

1. Data-Driven, Not Assumption-Based

Traditional risk-on/risk-off classifications rely on textbook assumptions (e.g. "Gold is always a safe haven"). We reject this approach. Instead, we measure how each asset actually co-moves with VIX (the CBOE Volatility Index) over a rolling 90-day window using Pearson correlation of daily returnssourced from our own internal CorrelationCache database. VIX is the market's real-time fear gauge — if an asset truly acts as a risk-off instrument, it must measurably rise when VIX rises. The baskets auto-rebalance every time our correlation matrix is refreshed.

2. Classification Rules

Risk-OnVIX correlation ρ ≤ −0.30. Asset falls when fear rises, rallies when fear subsides.
Risk-OffVIX correlation ρ ≥ +0.20. Asset rises when fear rises.
Excluded−0.30 < ρ < +0.20. Not statistically meaningful for risk classification — excluded from both baskets.

3. Measured VIX Correlations (90-Day Rolling)

No correlation data available in CorrelationCache. Using static fallback baskets. Run the correlation matrix calculation to enable dynamic basket rebalancing.

4. Mathematical Framework

Step 1: Daily Returns

For each trading day t, we calculate the simple daily return:

Rt = (Pt / Pt-1) − 1

Where Pt is the closing price on day t and Pt-1 is the closing price on the previous trading day. Weekend days (Saturday/Sunday) are excluded for cross-asset calendar alignment.

Step 2: Pearson Correlation Coefficient (ρ)

Given n overlapping trading days between VIX and Asset X, with return vectors x = [RVIX,1, ..., RVIX,n] and y = [RX,1, ..., RX,n]:

ρ(x, y) = [n·Σ(xi·yi) − Σxi·Σyi]
√[(n·Σxi² − (Σxi)²) · (n·Σyi² − (Σyi)²)]

Result ranges from −1.0 (perfect inverse) to +1.0 (perfect co-movement). A value near 0 indicates no linear relationship. Minimum 5 overlapping data points required.

Step 3: Worked Example — VIX vs S&P 500

Using 5 hypothetical trading days to illustrate the math:

DayVIX Return (x)S&P Return (y)x·yx²y²
1+0.050−0.020−0.0010000.0025000.000400
2−0.030+0.015−0.0004500.0009000.000225
3+0.080−0.035−0.0028000.0064000.001225
4−0.040+0.025−0.0010000.0016000.000625
5+0.020−0.010−0.0002000.0004000.000100
Σ+0.080−0.025−0.0054500.0118000.002575
n = 5
Numerator = 5 × (−0.005450) − (0.080)(−0.025) = −0.027250 + 0.002000 = −0.025250
Denominator = √[(5 × 0.011800 − 0.0064) × (5 × 0.002575 − 0.000625)]
= √[(0.0526) × (0.01225)] = √(0.000644) = 0.025386
ρ = −0.025250 / 0.025386 = −0.9946

This near-perfect −1.0 confirms the strong inverse relationship: when VIX rises (fear increases), S&P 500 falls. Our actual 90-day measured ρ reflects real-world noise and non-linear dynamics that reduce perfect correlation.

Step 4: Risk Sentiment Score Calculation

Once baskets are established, the Risk Sentiment Score for any timeframe is:

Score = Avg(%Δ Risk-On basket) − Avg(%Δ Risk-Off basket)
Positive score → Risk-On assets outperforming → Bullish / greed sentiment
Negative score → Risk-Off assets outperforming → Bearish / fear sentiment
Near zero → No dominant sentiment — market is balanced

5. Data Pipeline

1.EODHD API → Daily closing prices for all 72+ assets ingested into DailyPriceHistory
2.calculateCorrelationMatrix backend function → Computes full Pearson ρ matrix → Stored in CorrelationCache
3.assetIndexEngine.js (this module) → Reads VIX row from CorrelationCache → Classifies each candidate asset → Builds Risk-On/Risk-Off baskets dynamically
4.Live MarketData → Current % changes applied to dynamic baskets → Real-time Risk Sentiment Score

6. Limitations & Caveats

  • Correlations are regime-dependent. A 90-day window captures the current market regime but may miss structural shifts. During a sovereign debt crisis, assets could switch baskets.
  • Pearson ρ measures linear relationships only. Non-linear tail-risk behavior (e.g., gold spiking during black swan events) is not captured.
  • Baskets auto-rebalance when CorrelationCache is refreshed, but there is a lag between market regime changes and the 90-day window reflecting them.
  • The correlation matrix uses end-of-day closing prices. Intraday dynamics may differ significantly.
  • Asymmetric basket sizes (more Risk-On than Risk-Off) reflect the reality of current market structure, not a bias in methodology.
Methodology v2.1 — Dynamic VIX-correlation baskets from internal CorrelationCache. Baskets auto-rebalance on each correlation matrix refresh.