Skip to content

Real Estate & REIT Sector Strategy

Sector-specific strategies exploit financial metrics that are uniquely meaningful within a particular industry. In the US market, Real Estate Investment Trusts (REITs) and real estate companies have distinctive financial characteristics -- steady rental income, high dividend yields, and sensitivity to interest rate cycles -- that make them well-suited for targeted fundamental screening.

This strategy filters the universe to Real Estate sector stocks, then applies a revenue growth quality signal combined with a moving average trend filter.

Strategy Logic

The strategy restricts the investment universe to companies classified under the "Real Estate" sector, avoiding cross-sector comparisons where financial metrics may not be directly comparable.

The core selection criteria are:

  1. Year-over-year quarterly revenue growth > 5% -- The company is growing its top line, indicating improving fundamentals or rising rental income.
  2. Price above the 50-day moving average -- The stock is in a technical uptrend, confirming that the market agrees with the fundamental improvement.

Stocks meeting both conditions are ranked by revenue growth, and the top 10 are held in an equal-weight portfolio.

Code

from finlab import data
from finlab.backtest import sim
from finlab.market import USMarket

data.set_market('us')

close = data.get('price:adj_close')
close = close[close.index.dayofweek < 5]  # remove weekends

# Filter to Real Estate sector using company profile
profile = data.get('us_company_profile')
real_estate = profile[profile['sector'] == 'Real Estate']['symbol'].tolist()
close_re = close[[c for c in close.columns if c in real_estate]]

# Revenue growth as quality signal
revenue = data.get('us_income_statement:revenue')
rev_growth = revenue / revenue.shift(4) - 1  # YoY quarterly growth

position = (rev_growth > 0.05) & (close_re > close_re.average(50))
position = position.is_largest(10)

report = sim(position, resample='M', market=USMarket(), fee_ratio=0.001, tax_ratio=0)
report.display()

Strategy Characteristics

  • us_company_profile provides sector classification for each US stock. Filtering by sector == 'Real Estate' captures REITs, real estate developers, and real estate service companies.
  • revenue.shift(4) computes year-over-year growth using quarterly data (4 quarters back), removing seasonality effects common in real estate revenue recognition.
  • close_re.average(50) computes the 50-day simple moving average, acting as a trend confirmation filter that avoids buying fundamentally improving companies that are still in a price downtrend.
  • is_largest(10) selects the top 10 stocks by the combined signal, creating a concentrated but diversified-within-sector portfolio.
  • resample='M' rebalances monthly, aligning with the quarterly cadence of fundamental data updates while still allowing the trend filter to adapt.
  • fee_ratio=0.001: Commission rate of 0.1%, a reasonable estimate for US brokerage fees.
  • tax_ratio=0: No transaction tax on US stock trades.

Why Sector-Specific Strategies

Comparing a REIT's revenue growth to a technology company's revenue growth is misleading -- REITs typically grow at 3-8% annually while tech companies may grow at 20-50%. By restricting the universe to a single sector, the relative ranking becomes meaningful: a REIT growing revenue at 10% YoY is a standout within its peer group.

The us_company_profile data table makes sector filtering straightforward. The same pattern can be adapted for any sector (e.g., 'Technology', 'Healthcare', 'Financial Services') by changing the sector filter string.