Learn R Programming

PortfolioTesteR (version 0.1.4)

apply_regime: Apply Market Regime Filter

Description

Applies regime-based filtering. When regime is FALSE (e.g., bear market), all selections become 0, moving portfolio to cash.

Usage

apply_regime(selection_df, regime_condition, partial_weight = 0)

Value

Modified selection matrix respecting regime

Arguments

selection_df

Binary selection matrix

regime_condition

Logical vector (TRUE = trade, FALSE = cash)

partial_weight

Fraction to hold when regime is FALSE (default: 0)

Examples

Run this code
data("sample_prices_weekly")
# Create selection
momentum <- calc_momentum(sample_prices_weekly, 12)
selected <- filter_top_n(momentum, 10)

# Only trade when SPY above 20-week MA
ma20 <- calc_moving_average(sample_prices_weekly, 20)
spy_regime <- sample_prices_weekly$SPY > ma20$SPY
spy_regime[is.na(spy_regime)] <- FALSE

regime_filtered <- apply_regime(selected, spy_regime)

Run the code above in your browser using DataLab