Synthetic Indexes

Live composite indexes โ€” currencies, equities, commodities, bonds & risk sentimentUpdated 5m ago

Timeframe

Currency Strength

G10 currencies ranked by cross-pair performance

Synthetic Asset Indexes

Basket composites ranked by average % change

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.