Why usFeaturesTemplatesBlogGlossary

Watchlist: Select Monthly, Re-Risk Weekly

Two schedules on one canvas. Once a month it picks the eight strongest names from a fixed twelve-stock watchlist; every week it re-sizes what it already holds to equal risk contribution without changing the constituents. Costed against Zerodha's real charge stack, with an in-app alert on every order.

Why this is expected to work

Selection and sizing decay at different speeds, and running them on the same clock forces a bad compromise. Which companies deserve to be in the portfolio changes slowly — that is a question about businesses. How much risk each position contributes changes quickly, because volatility clusters and correlations move. Run both monthly and the weights drift stale for weeks at a time. Run both weekly and the constituents churn for no reason, paying costs to re-derive a selection that has not changed. Splitting them lets each run at its own cadence: the slow component reads the universe, the fast one reads the book the slow one established and only adjusts sizes. The fixed watchlist is the point of the universe here — this is the shape for someone who has already decided what they are willing to own and wants the system to handle timing and sizing rather than discovery.

watchlisttwo-speedrisk-parityalertszerodha
Universe
Core Watchlist Global markets
Rebalance
Monthly Risk parity

How the pipeline works

Calculate

50-day average

Computes sma_50 = @SMA(close, 50)

@SMA(close, 50)
Filter

Above its 50-day average

Keeps rows where close > sma_50

close > sma_50
Calculate

Price 3 months ago

Computes price_3m_ago = @shift(close, 63)

@shift(close, 63)
Calculate

3-month momentum

Computes momentum_3m = close / price_3m_ago

close / price_3m_ago
Rank

8 strongest on the watchlist

Selects the top 8 by momentum_3m

Size

Weekly re-risk

Sizes positions: Risk parity

What this template teaches

  • portfolio_source — a component that reads the held book, not a universe
  • Two components on one canvas, firing on different schedules
  • An explicit `tickers` universe
  • Broker charge stack (broker='zerodha') instead of flat commission
  • Alert node on the order stream
Read the full write-up

Selection and Sizing Decay at Different Speeds

Which companies deserve to be in the portfolio changes slowly. How much risk each position contributes changes quickly. Running both on the same clock forces a bad compromise.