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:
- Year-over-year quarterly revenue growth > 5% -- The company is growing its top line, indicating improving fundamentals or rising rental income.
- 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_profileprovides sector classification for each US stock. Filtering bysector == '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.