Tactical allocation methodology: how the eleven tactical models work
This tactical allocation methodology describes the eleven models on the Tactical allocation page: how a signal is derived from prices up to the end of the month, which defaults apply, where the money goes when a model exits, and how the result is compared with buy-and-hold.
Ground rules for all models
- Monthly basis: all models set their target weights at month-ends for the securities of a portfolio from the grid; its weights are the base weights. Most signals use month-end prices; adaptive allocation also uses daily returns for the covariance, and the regime model uses weekly returns.
- No look-ahead: the target weights at a month-end use only prices up to that date.
- Execution: at the closing price of the same month-end (default, as in most studies) or, optionally, one month later; after that, reset monthly to the target weights in force at the time.
- Cash: whatever a model does not invest sits in the fallback asset. This is a ticker of your choice or, without a ticker, interest-bearing cash: a time-varying money market rate (default) or a fixed rate (default 2% p.a.).
- Comparison: buy-and-hold of the base weights, rebalanced monthly, from the first execution. The model's metrics use this variant as the benchmark.
- Trading costs: optionally a rate per order as a percentage of the amount traded (0 to 2%, default 0), the same for the model and the comparison, including the initial purchase. A note shows the total for both runs.
The Tactical page does not calculate taxes, and it includes trading costs only at the rate you set. The number of switches shows how often the target allocation has changed, which gives an indication of costs and taxes in practice.
Moving average
Each security stays invested at its base weight as long as its month-end closing price is above the average of the last N month-end closing prices (default 10 months, selectable from 2 to 24). If it is below, exactly that part moves into cash. The ten-month rule was popularised by Faber (2007).
Dual momentum and relative strength
Dual momentum (Antonacci 2014) compares the return of each security over the last 12 months (selectable from 1 to 24). The best N (default 1) are held at 1/N each. With absolute momentum (the default), a slot only counts if the security has returned more than the fallback asset over the same period; otherwise this share goes into cash. The absolute criterion corresponds to the time-series momentum of Moskowitz et al. (2012).
Relative strength averages returns over several windows, by default 1, 3, 6 and 12 months (selectable from 1, 3, 6, 9, 12), and holds the best two, without an absolute filter. Using several windows smooths the signal compared with a single lookback.
Target volatility
The model measures the volatility of the base portfolio over the last 6 monthly returns (selectable from 3 to 36) and scales the invested share so that the volatility matches the target (default 10% p.a.). The share is capped by the maximum invested share (default 100%; up to 200% means borrowing at the cash rate). The idea is studied by Moreira and Muir (2017).
Share = min(target / (SD of the last L monthly returns × √12); max. share)Adaptive allocation
Following Butler et al. (2012): each month the model picks the best three securities by momentum over 6 months (selectable from 1 to 12) and weights them by risk, by default with minimum variance (no short selling), alternatively by inverse volatility or equally. The covariance comes from the last 60 daily returns (20 to 250) if daily prices are available, otherwise from the last 12 monthly returns. With the absolute filter, the weight of a selected security that does not beat cash goes into cash.
Valuation by Shiller CAPE
The valuation model puts only part of the money into the base portfolio, depending on the percentile of the Shiller CAPE within its history to date: the share of all months up to then with a CAPE no higher than today's (at the earliest after 120 months of history). The signal is lagged by one month, because company earnings only become known later. The CAPE of the S&P 500 is used, also as an approximation for other markets. Campbell and Shiller (1998) show the link between valuation and subsequent returns; see Shiller P/E.
Share = 1 − (percentile − 50%) / (90% − 50%) × (1 − 30%), capped at 30% to 100%Rotation models with breadth momentum
Four models rotate between the securities of the portfolio and a defensive part. Three come from Wouter Keller and Jan Willem Keuning and rely on breadth momentum, i.e. market breadth as a signal: what counts is not only the momentum of individual markets, but also how many markets are weak at the same time. The more there are, the more money goes into the defensive part. The fourth, accelerating dual momentum, is a variant of dual momentum from a blog post. All four use month-end prices up to the signal date and, like the other models, rebalance at the closing price of the same month-end or one month later.
| Model | Signal per security | Defensive share | Defaults |
|---|---|---|---|
| Protective asset allocation (PAA) after Keller and Keuning (2016) | Price / SMA(L) − 1 | min(1; (N − n) / (N − a·N/4)), n = securities with momentum > 0 | L = 12 months, protection factor a = 2, top 6 |
| Vigilant asset allocation (VAA) after Keller and Keuning (2017) | 13612W | min(1; b/B), b = securities with 13612W ≤ 0 | Top 1, breadth B = 1 |
| Defensive asset allocation (DAA) after Keller and Keuning (2018) | 13612W | min(1; b/B), b = canaries with 13612W ≤ 0 | Top 6, B = number of canaries, canaries EEM and AGG |
| Accelerating dual momentum after Engineered Portfolio (2018) (blog) | Average of the returns over 1, 3 and 6 months | 100% if no score is positive | No parameters |
“Top” is at most the number of securities in the portfolio; for a small portfolio, the page lowers the value accordingly.
Protective asset allocation (PAA)
Following Keller and Keuning (2016), the model measures the momentum of each of the N securities as the distance between its price and its moving average: price / SMA(L) − 1. SMA(L) averages the last L + 1 month-end prices including the current one (so 13 prices for L = 12), which is how Keller (2022) describe the SMA(12). If n counts the securities with positive momentum, the protection factor a (0 low, 1 medium, 2 high; default 2) determines the bond fraction BF that goes into the fallback asset. The rest is split equally among the best min(n; top) securities with positive momentum. You can choose the lookback L from 1 to 24 months.
BF = min(1; (N − n) / (N − n1)) with n1 = a · N / 4- N
- number of securities in the portfolio
- n
- securities with a price above their SMA (momentum > 0)
- a
- protection factor 0, 1 or 2
The higher a, the earlier the model protects: with a = 0, the equity share falls linearly with each weak security; with a = 2 and twelve securities, everything is already in bonds as soon as only six are still trading above their average.
Vigilant asset allocation (VAA)
Keller and Keuning (2017) replace the moving average with the faster 13612W momentum: a weighted sum of the returns over 1, 3, 6 and 12 months with the weights 12, 4, 2 and 1. This scales each return up to a year, and the last month counts the most; the formula appears in the same form in Keller (2022). A security with 13612W ≤ 0 counts as bad. With the default breadth B = 1, this means: if all securities are positive, the model holds the best one (top 1, selectable); if even one is bad, everything goes into the defensive part. With a larger B, the defensive share rises by 1/B for each bad security, and the rest goes in slices of 1/T into the best T securities.
13612W = 12 · r1 + 4 · r3 + 2 · r6 + 1 · r12- r1, r3, r6, r12
- returns over the last 1, 3, 6 and 12 months up to the signal month-end
Defensive asset allocation (DAA)
Keller and Keuning (2018) separate the signal from the selection: a separate canary universe of signal tickers, called canaries here, decides on the defensive share. In the paper, these are emerging market equities and a bond aggregate (VWO and BND, or alternatively EEM and AGG). b counts the canaries with 13612W ≤ 0, and the defensive share is b/B. By default, B equals the number of canaries; with two canaries, the defensive share is therefore 0, 50 or 100%. The rest goes in slices of 1/T into the best securities by 13612W (default T = 6). The canaries are only watched, not held; the page loads their prices in addition. According to the abstract, the average cash share of DAA is often less than half that of VAA.
Accelerating dual momentum (blog post)
This variant of dual momentum does not come from an academic publication but from a blog post by Engineered Portfolio (2018); the page therefore labels it as a blog rule. Each security's score is the average of its returns over 1, 3 and 6 months (in the post, the sum, which gives the same ranking and the same sign). The security with the highest score is held if that score is positive, otherwise the fallback asset. Unlike dual momentum after Antonacci (2014), the absolute threshold is therefore zero rather than the fallback asset, and the shorter windows react faster. In the post, the model switches between the S&P 500 and international small caps, with long-term US Treasuries as the fallback asset.
Defensive part, rounding and deviations from the original
- Where the defensive part goes: for PAA, into the fallback asset. For VAA and DAA, into the candidate with the highest 13612W. Candidates are the fallback asset or up to six defensive assets that you specify in addition (in the original, short- and intermediate-term US Treasuries and corporate bonds: SHY, IEF and LQD). If you specify none, the fallback asset is the only candidate.
- Rounding: if (1 − b/B) · T is not a whole number, the page rounds the number of risk slots down; the defensive share then rises to the next multiple of 1/T. This does not occur with the defaults.
- Bad means ≤ 0: a 13612W of exactly zero counts as bad for VAA and DAA; for PAA, only positive momentum counts as good.
- Currency: the page converts all prices, including those of the canaries, into the base currency. A US fund has different momentum in euros than in dollars; the signals may therefore differ from the original.
- History: canaries and defensive assets shorten the period if their prices start later than those of the portfolio. Before the first signal, PAA needs L + 1 month-end prices, VAA and DAA need 13, and accelerating dual momentum needs 7.
Regime (hidden Markov model)
The regime model estimates a Gaussian hidden Markov model after Hamilton (1989) on the log returns of the base portfolio or of a signal ticker: two or three regimes differ in mean and volatility, and “Turbulent” is the regime with the highest volatility. The estimation uses no look-ahead: first at the first month-end with 260 weekly returns (five years) or 120 monthly returns (ten years), then re-estimated at every 12th month-end with all data up to that point. In between, the model only runs the Hamilton filter forward, i.e. the probability of the turbulent regime using returns up to the month-end. This filtered probability P(Turbulent) controls the share in the base portfolio; the rest sits in the fallback asset.
| Setting | Default | Options |
|---|---|---|
| Number of regimes | 2 (Calm, Turbulent) | 2 or 3 (with Normal) |
| Returns | Weekly, from daily prices | Weekly or monthly |
| Rule | Threshold: 0% in the base portfolio if P(Turbulent) is above the threshold, otherwise 100% | Threshold, or share by probability: 1 − P(Turbulent) in the base portfolio |
| Threshold for P(Turbulent) | 50% | 30 to 90% |
| Signal from | Base portfolio, reset monthly to the base weights | Base portfolio or own ticker (signal only, not held) |
If only monthly prices are available, the model uses monthly returns and says so. There is no signal before the first estimate; the model and buy-and-hold therefore only start after five or ten years of price history in the selected period. With the proportional rule, the allocation changes almost every month. Trading costs are then incurred correspondingly often. Estimation, starting values, filter and limitations are described in the regime methodology; in hindsight, using the whole history, the Regime page shows the same model for a single price series.
Reading the results
- Metrics: as in the backtest, with buy-and-hold as the benchmark. Beta, alpha and capture ratios show how much of the market's movement the model captures (definitions in the metrics methodology).
- Performance and drawdowns: both variants from the first signal; trend models are above all meant to shorten the deep declines.
- Allocation: the target weights per month as a stacked area chart; a share above 100% (target volatility with leverage) appears as a negative cash share.
- Current signal: the allocation at the last month-end and over the last twelve months. If the month is still running, the signal is provisional: it uses prices up to today and only becomes final at month-end.
- Signal in detail (rotation models): the score of each security, of the defensive candidates and of the canaries at the last month-end, plus the number of positive values, the breadth B and the defensive share.
- Regime (regime model): P(Turbulent) at each month-end with the threshold; the regimes at the last month-end with mean and volatility p.a., expected duration and probability; the transition matrix; and the number and dates of the estimates.
What research shows
Trend rules have a long history: Hurst et al. (2017) find positive results for trend following over more than a century and across many markets in almost every decade, especially in crises. Faber (2007) shows for five asset classes that the ten-month rule markedly reduced drawdowns. For volatility management, Moreira and Muir (2017) find higher Sharpe ratios for many factors, and Harvey et al. (2018) find above all fewer extreme losses for equities. Momentum across securities, on the other hand, can crash badly after bear markets when the market recovers quickly (Daniel and Moskowitz 2016). None of these results is a guarantee. The page shows how a rule would have behaved with your securities and your period.
Limitations
- Signal and execution at the same month-end closing price (default) are slightly optimistic: in practice, you can enter the market on the next trading day at the earliest. “One month later” is the cautious cross-check: a model that loses a lot under it depends on precise timing.
- The page does not deduct taxes on realised gains, and it includes fees only as a fixed rate. Test a model in the backtest with a schedule from a file, where order fees, spread and taxes are included.
- Parameters that were best in hindsight are usually the product of overfitting (backtest overfitting).
- Trend models lose money in sideways markets through false signals; their benefit shows mainly in long downturns.
- Their authors developed and tuned the rotation models on broad universes of many markets. With a handful of securities in your own portfolio, the breadth momentum rule behaves differently: a single weak security then carries a lot of weight.
- The regime model only recognises a turbulent regime after a few weak or highly volatile weeks, and its regimes are named after volatility, not after the business cycle. Re-estimates can shift the parameters noticeably (limitations of the regime model).
Frequently asked questions
When are trades made?
By default at the closing price of the month-end on which the signal arises, optionally one month later; in between, the portfolio is reset monthly to the target weights.
Where does the money go when a model exits?
Into the fallback asset: a ticker of your choice, or cash earning the money market rate or a fixed rate.
Are costs and taxes included?
Trading costs, yes, if you set a rate per order, and they apply equally to the model and the comparison. Taxes, no; the number of switches helps you estimate them.
What is the model compared with?
With buy-and-hold of the base weights, rebalanced monthly, from the model's first execution.
Why is the CAPE signal lagged?
Because a month's earnings are only published later; without the lag, the model would use knowledge that was not available at the time.
What is the difference between VAA and DAA?
Both use 13612W momentum. With VAA, the portfolio's own securities decide on the defensive share; with DAA, a separate canary universe that is only watched (by default EEM and AGG).
How much does PAA put into bonds?
BF = (N − n) / (N − a·N/4), at most 100%. With the default protection factor of 2, it is 100% as long as at most half of the securities are above their moving average.
How does the regime model decide?
Based on the filtered probability P(Turbulent) at month-end, estimated only with data up to that point. With the default threshold of 50%, the entire base portfolio moves into the fallback asset as soon as P(Turbulent) is above it; with the proportional rule, 1 − P(Turbulent) is held in the base portfolio.
Why is accelerating dual momentum labelled as a blog rule?
The rule comes from a blog post (Engineered Portfolio, 2018) and not from a peer-reviewed study; the result therefore shows a note.
Literature
- Antonacci, Gary (2014): Dual Momentum Investing: An Innovative Strategy for Higher Returns with Lower Risk. McGraw-Hill Education.
- Butler, Adam; Philbrick, Mike; Gordillo, Rodrigo (2012): Adaptive Asset Allocation: A Primer. SSRN. doi:10.2139/ssrn.2328254
- Campbell, John Y.; Shiller, Robert J. (1998): Valuation Ratios and the Long-Run Stock Market Outlook. The Journal of Portfolio Management 24 (2), pp. 11–26. doi:10.3905/jpm.24.2.11
- Daniel, Kent; Moskowitz, Tobias J. (2016): Momentum crashes. Journal of Financial Economics 122 (2), pp. 221–247. doi:10.1016/j.jfineco.2015.12.002
- Engineered Portfolio (2018): Accelerating Dual Momentum Investing. Blogbeitrag, Engineered Portfolio, 02.05.2018; keine begutachtete Veröffentlichung; abgerufen am 25.10.2026. Source
- Faber, Mebane T. (2007): A Quantitative Approach to Tactical Asset Allocation. The Journal of Wealth Management 9 (4), pp. 69–79. doi:10.3905/jwm.2007.674809
- Hamilton, James D. (1989): A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle. Econometrica 57 (2), pp. 357–384. doi:10.2307/1912559
- Harvey, Campbell R.; Hoyle, Edward; Korgaonkar, Russell; Rattray, Sandy; Sargaison, Matthew; Hemert, Otto Van (2018): The Impact of Volatility Targeting. The Journal of Portfolio Management 45 (1), pp. 14–33. doi:10.3905/jpm.2018.45.1.014
- Hurst, Brian; Ooi, Yao Hua; Pedersen, Lasse Heje (2017): A Century of Evidence on Trend-Following Investing. The Journal of Portfolio Management 44 (1), pp. 15–29. doi:10.3905/jpm.2017.44.1.015
- Keller, Wouter J.; Keuning, Jan Willem (2016): Protective Asset Allocation (PAA): A Simple Momentum-Based Alternative for Term Deposits. SSRN Working Paper 2759734, 05.04.2016. doi:10.2139/ssrn.2759734
- Keller, Wouter J.; Keuning, Jan Willem (2017): Breadth Momentum and Vigilant Asset Allocation (VAA): Winning More by Losing Less. SSRN Working Paper 3002624, eingestellt 19.07.2017. doi:10.2139/ssrn.3002624
- Keller, Wouter J.; Keuning, Jan Willem (2018): Breadth Momentum and the Canary Universe: Defensive Asset Allocation (DAA). SSRN Working Paper 3212862, 12.07.2018, überarbeitet 2021. doi:10.2139/ssrn.3212862
- Keller, Wouter J. (2022): Relative and Absolute Momentum in Times of Rising/Low Yields: Bold Asset Allocation (BAA). SSRN Working Paper 4166845, eingestellt 25.07.2022. doi:10.2139/ssrn.4166845
- Moreira, Alan; Muir, Tyler (2017): Volatility-Managed Portfolios. The Journal of Finance 72 (4), pp. 1611–1644. doi:10.1111/jofi.12513
- Moskowitz, Tobias J.; Ooi, Yao Hua; Pedersen, Lasse Heje (2012): Time series momentum. Journal of Financial Economics 104 (2), pp. 228–250. doi:10.1016/j.jfineco.2011.11.003
This page describes how Portfolio Lab calculates; past results are not a forecast. All terms in the glossary.