Help & Documentation

← Back to Dashboard

Table of Contents

Overview — What This Dashboard Does

This is a rules-based ETF rotation system for the Israeli market. It analyzes 500+ Israeli ETFs, 10 flexible mutual funds, and US macro signals to answer one question:

"Which 4-5 instruments should I hold right now, and in what proportions?"

The system outputs:

All values are denominated in ILS (Israeli Shekels). USD-denominated benchmarks like QQQ are converted to ILS using the USD/ILS exchange rate.

Data Sources

DataSourceFrequency
Israeli ETFs (504 instruments)Twelve Data catalog + Yahoo Finance pricesDaily OHLCV
Flexible Funds (10 funds)TASE Maya APIDaily NAV
Israeli Pension Funds (983 funds)data.gov.il (Government Open Data)Monthly returns
US Macro SignalsYahoo FinanceDaily close

Macro Signals Used

TickerWhat It IsWhy It Matters
VIXCBOE Volatility Index (S&P 500 implied vol)Primary regime indicator — fear gauge
SPYS&P 500 ETFUS equity trend — trend confirmation
QQQNasdaq 100 ETFTech/growth momentum
GLDGold ETFSafe haven / inflation signal
BTCBitcoinRisk appetite / speculative sentiment
DXYUS Dollar IndexDollar strength — affects foreign exposure
TA-125Tel Aviv 125 IndexIsraeli market momentum & acceleration

Market Regime Detection

The model classifies the current market into one of four regimes based on VIX level, VIX trend (vs 20-day SMA), and SPY trend (vs 50-day SMA):

RegimeVIX LevelConditionsAction
Risk On< 16VIX low and falling, SPY above SMAFull equity — ride the momentum
Cautious16-25VIX rising, or SPY below SMAReduce equity to 60-80%, add bonds
Risk Off25-32VIX elevated30-50% invested, favor bonds & shorts
Crisis> 32VIX spiking0-30% invested, mostly cash or shorts

Override rule: If VIX looks calm (Risk On) but SPY is below its 50-day moving average, the regime is downgraded to Cautious. This catches slow-motion sell-offs that VIX hasn't reacted to yet.

The VIX Gauge

The colored bar shows VIX from 10 (green/calm) to 40+ (red/panic). The white marker shows the current VIX level. Below the gauge: the current VIX value, its 20-day moving average, and whether it's rising or falling.

Signal Engine — How ETFs Are Scored

Every eligible instrument is scored on a composite of:

1. Momentum (70% of score)

Price momentum at three timeframes, weighted and combined:

Composite Momentum = 0.30 x 1-Month + 0.40 x 3-Month + 0.30 x 6-Month

Momentum = (current price / price N days ago) - 1. This captures both short-term trend and longer-term strength.

2. Risk Adjustment

Raw momentum is divided by annualized volatility (21-day rolling). A fund returning 10% with 5% vol scores higher than one returning 10% with 20% vol.

Risk-Adjusted Score = (Composite Momentum / Volatility) x 100

3. Trend Bonus (+5 points)

If the price is above its 50-day Simple Moving Average, the instrument gets a +5 point bonus. This rewards instruments in confirmed uptrends.

4. Volume Confirmation (+2 points)

If recent 21-day average volume is 20%+ higher than the 126-day average, the instrument gets +2 points. Rising volume confirms the move.

5. Regime Adjustments

Asset Class Classification

Each instrument is auto-classified by name keywords:

ClassKeywords
equity_ilTA-35, TA-125, TA-90, Israel Bank, Technology
equity_usS&P 500, Nasdaq, Russell
bondBond, Tel Bond, Shekel Bond
shortShort
leveragedLeveraged, x2, x3
flexibleYour 10 target mutual funds
otherEverything else (renewables, real estate, etc.)

Risk Profiles

The risk slider adjusts how sensitive the model is to volatility, and how much it allocates to equities vs bonds:

ProfileVIX ThresholdsMax EquityPositionsBond Preference
Conservative14 / 20 / 2840%4Yes — bonds get +20 score bonus
Moderate16 / 25 / 3270%5No
Aggressive20 / 30 / 40100%5No

Conservative uses tighter VIX thresholds (gets nervous earlier) and always boosts bond scores. Aggressive has wider thresholds — it takes more pain before going defensive.

Rebalance Frequency & Dynamic Triggers

The rebalance selector controls how often the portfolio is reviewed and changed:

Fixed Intervals

OptionTrading DaysDescription
1W5Weekly — high activity, catches fast moves
2W10Bi-weekly
3W15Three weeks — historically the sweet spot
4W21Monthly — traditional
6W30Six weeks — lower activity

Dynamic (Signal-Driven)

Instead of waiting for a fixed interval, the model triggers a rebalance when it detects significant market events:

TriggerThresholdWhat It Detects
VIX Spike> 4 points in one daySudden fear/panic or sudden calm
Regime ChangeCrosses a boundarye.g., Risk On → Cautious
SPY/QQQ AccelerationZ-score > 2.0Market suddenly speeding up or crashing
TA-125 AccelerationZ-score > 2.0Israeli market momentum shift
Max Interval30 daysSafety net — always rebalance at least monthly
Min Interval3 daysWon't trigger more often than every 3 days

Acceleration is measured as the change in 5-day returns vs the prior 5-day returns, normalized by the 20-day return standard deviation. A z-score above 2.0 means the market is accelerating or decelerating much faster than normal.

Portfolio Allocation Rules

Once ETFs are scored and the regime is known, the allocation engine builds the portfolio:

  1. Budget: The regime determines how much to invest vs hold in cash (e.g., risk-on = 90-100%, crisis = 0-30%)
  2. Filter: Only positive-scoring instruments are candidates
  3. Diversification: Max 2 instruments from the same asset class
  4. Direction: Shorts are excluded in risk-on; longs excluded in crisis
  5. Weighting: Proportional to score, then clamped to 10-35% per position
  6. SPY dial: If SPY composite momentum is strongly positive, push toward max investment; if negative, toward minimum

Output Labels

ActionMeaning
LONGAll positions are long — expecting prices to rise
SHORTAll positions are short/inverse — expecting decline
HEDGE (LONG+SHORT)Mix of long and short positions
MOSTLY CASH70%+ in cash — waiting for clarity
CASH100% cash — no instrument scores positive

Flexible Funds (Israeli Mutual Funds)

The dashboard tracks 10 specific flexible mutual funds (not traded on TASE as ETFs). Daily NAV data comes from the TASE Maya API:

FundManagerMaya Fund ID
Sigma FlexibleSigma5125679
More Flexible 4DMore5109731
Yelin Lapidot FlexibleYelin Lapidot5114087
Analyst FlexibleAnalyst5120795
Kesem Active Flexible FLEXKesem5125380
Meitav Sky 4D InvestmentsMeitav5520044
Porta 4D InvestmentsSigma5124995
Diamond 4D FlexibleAyalon5123609
Investor 360 FlexibleAyalon5136262
More 4D InvestmentsMore5127725

These appear in the scoring as FLEX:<fund_id>. They compete alongside ETFs on the same momentum/risk-adjusted basis. Since they have no volume data, they use a dummy volume figure and are classified as "flexible" asset class.

Universe Filter

The Universe selector restricts which instruments the model can pick from:

UniverseInstrumentsUse Case
All504 ETFs + 10 flexible fundsDefault — picks the best from everything
Flexible Funds10 target mutual funds onlySee how the model rotates between your specific flexible funds
Leveraged ETFsLeveraged & short/inverse ETFs onlyAggressive study — higher risk, higher potential

Each universe is backtested independently across all risk profiles and rebalance frequencies.

Backtest Methodology

Performance Statistics

StatFormula
Total Return(Final Value / Initial Value) - 1
Annual ReturnTotal return annualized: (1 + total)^(1/years) - 1
Max DrawdownLargest peak-to-trough decline
Sharpe Ratio(Avg daily return / Std daily return) x sqrt(252)
Win Rate# winning rebalance periods / total periods

Understanding the Charts

Portfolio Performance vs Benchmarks

Shows your portfolio's cumulative % return compared to three benchmarks:

All lines start at 0% and show cumulative gain/loss from the start of the visible range.

Interval Buttons (3M / 6M / 1Y / 2Y / ALL)

Filter the chart to show only the selected time period. The % returns re-normalize from the start of the visible window.

Drag to Zoom

Click and drag on any chart to zoom into a specific date range. Double-click to reset.

Hover Highlight

Hover over a line to thicken it and grow its legend label, making it easy to identify which line you're looking at.

Recommended ETFs Chart

Shows the historical % return of each currently recommended ETF, plus the QQQ benchmark (dashed line). Useful for seeing how your current picks have behaved.

Cumulative Decision Chart

Green/red bars show each rebalance period's return. The line shows cumulative return across all decisions.

Decision History

Every rebalance decision is logged with full detail:

Click any decision card to expand and see per-position detail: entry/exit price, individual return, weight, and direction.

The color on the left border indicates: Win Loss Flat

Forward Projection

The dashed line shows a 6-month forward projection based on the recent 3-month trend. The trend is decayed linearly to 50% by the end of the projection — meaning the model assumes the current momentum fades over time rather than continuing forever.

This is a simple extrapolation, not a prediction. It shows "if recent trends continue at a decaying rate, where would the portfolio end up?"

Glossary

NAVNet Asset Value — the price of one unit of a mutual fund
OHLCVOpen, High, Low, Close, Volume — daily price bar data
SMASimple Moving Average — average of the last N closing prices
VIXCBOE Volatility Index — measures expected 30-day volatility of the S&P 500. Often called the "fear gauge"
RegimeThe model's classification of the current market environment
MomentumRate of price change over a period — positive = rising, negative = falling
Sharpe RatioRisk-adjusted return: return per unit of volatility. Above 1.0 is good, above 2.0 is excellent
Max DrawdownWorst peak-to-trough decline — measures the deepest loss you'd have experienced
AlphaReturn above what the market benchmark delivered
AccelerationChange in the rate of returns — detects when markets are speeding up or slowing down
Z-ScoreNumber of standard deviations from the mean — a z-score of 2.0 means the value is unusually high
ILSIsraeli New Shekel
TASETel Aviv Stock Exchange
4D / 4A / 4BIsraeli fund tax classification codes. 4D = unhedged foreign currency, 4A = currency-hedged, 4B = Israeli-focused

Updating the Data

To refresh the dashboard with the latest data, run these scripts in order:

python scripts/02_fetch_macro_signals.py # Update VIX, SPY, QQQ, etc.
python scripts/03_fetch_israeli_etfs.py # Update ETF prices
python scripts/06_fetch_flexible_funds.py # Update flexible fund NAVs
python scripts/05_backtest.py # Regenerate all dashboard data
npx wrangler pages deploy web/ --project-name etf-rotation # Deploy

Scripts are incremental — they only fetch data newer than what's already in the database.

This is a quantitative model for educational purposes, not financial advice. Past performance does not guarantee future results. Always do your own research before investing.