# Long-horizon Calendar Cycles

Long-horizon Calendar Cycles is an indicator on [Vela](https://vela.luxalgo.com/chart), our next-generation charting platform, written in Pine Script®.

Long-horizon Calendar Cycles buckets completed calendar years by presidential term, decennial digit, the Benner schedule or a custom fixed-year cycle, plotting the current bucket's historical mean return as a tilt line with every year's actual outcome dotted around it. A cycle-map table with small-sample warnings keeps multi-year seasonality honest.

- Indicator in the LuxAlgo Library, by LuxAlgo, published Feb 11, 2026.
- Access: free.
- Concepts: [Long-horizon Calendar Cycles](https://www.luxalgo.com/library/concept/long-horizon-calendar-cycles/) (primary)
- Open on Vela: https://vela.luxalgo.com/chart?pineScriptCodeId=nxffh5pjbx99euntuhmyyobr
- Page: https://www.luxalgo.com/library/indicator/long-horizon-calendar-cycles/

**Long-horizon Calendar Cycles** puts [long-horizon calendar cycles](https://www.luxalgo.com/library/concept/long-horizon-calendar-cycles/) on a statistical footing. Completed calendar years are bucketed by presidential-term position, the year's final digit, the Benner schedule's high/low/panic classes, or a custom fixed-year count, and the pane plots the current bucket's historical mean return as a stepped tilt line with each finished year's actual return dotted beside it. The dot scatter around the tilt shows how loose these tendencies run.

## How to Trade the Long-horizon Calendar Cycles?

- **Positive tilt at a year boundary**: the year just begun belongs to a bucket with a positive historical mean - a calendar tilt to weigh alongside trend and breadth, never a standalone trigger.
- **Benner year lines**: in Benner Schedule mode, dotted verticals mark scheduled high, low and panic years - watch windows, not dates to trade blind.
- **Dimmed cycle-map rows**: buckets with fewer completed years than the warning threshold rest on a handful of observations - background context only.

Every statistic is walk-forward - the year in progress is never included - and the footer states where now sits, with the year-to-date return beside it.

## Long-horizon Calendar Cycles Settings

- **Cycle Model** (default Presidential (4-Year)): the cycle years are bucketed by.
- **Custom Cycle Length (years)** (default 9) and **Custom Anchor Year** (default 2009): the Custom Fixed-Year mode; ignored by the other models.
- **Sample From Year** (default 1800): raise it to test whether a tendency survives in the modern sample.
- **Benner Year Lines On Chart** (default on) and **Project Ahead (years)** (default 12): Benner Schedule mode only.
- **Show Cycle Map** (default on) with **Small-Sample Warning (n below)** (default 10): per-bucket n, mean, median and win rate.
- **Yearly Return Dots** and **Current Position Label** (both default on): style toggles.

## Frequently Asked Questions

### How does this differ from seasonality studies?

Tools like [Asset Class Seasonality](https://www.luxalgo.com/library/indicator/asset-class-seasonality/) average the calendar's rhythm within a year; this build works one level up, comparing whole years by their place in multi-year cycles. The layers stack - each is a small tilt, not a trigger.

### Is a Benner panic year a sell signal?

No. The schedule was published generations ago and lands near some real turns while missing others; the build treats scheduled years as attention windows, fires an alert when one begins, and leaves confirmation to price structure.

### Why does it require a daily or higher timeframe?

The unit of observation is the completed calendar year, so intraday charts have nothing valid to aggregate - the pane asks for a Daily, Weekly or Monthly chart.

## Related indicators

- [Momentum Cycle Sentry](https://www.luxalgo.com/library/indicator/momentum-cycle-sentry/) (Dominant-cycle Detection): markdown at https://www.luxalgo.com/library/indicator/momentum-cycle-sentry.md
- [Astro Cycles](https://www.luxalgo.com/library/indicator/astro-cycles/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/astro-cycles.md
- [Fixed Time Cycles](https://www.luxalgo.com/library/indicator/fixed-time-cycles/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/fixed-time-cycles.md
- [Asia Sweep Reversals](https://www.luxalgo.com/library/indicator/asia-sweep-reversals/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/asia-sweep-reversals.md
- [8AM 1H Range & Breaks](https://www.luxalgo.com/library/indicator/8am-1h-range-breaks/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/8am-1h-range-breaks.md
- [8am Road Map Zone](https://www.luxalgo.com/library/indicator/8am-road-map-zone/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/8am-road-map-zone.md
- [Ultimate Opening Range Breakout](https://www.luxalgo.com/library/indicator/ultimate-opening-range-breakout/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/ultimate-opening-range-breakout.md
- [Sessions](https://www.luxalgo.com/library/indicator/sessions/) (Time, Sessions & Seasonality): markdown at https://www.luxalgo.com/library/indicator/sessions.md

---

Source: https://www.luxalgo.com/library/indicator/long-horizon-calendar-cycles/ (LuxAlgo Library). Free to use with attribution: https://www.luxalgo.com/library/license/
