Important: an indicator is a rule for organizing historical prices, not a prediction. TickRun tests one long position at a time and applies a signal to the following session’s close-to-close return. Results do not include taxes, bid–ask spreads, slippage, or market impact.

How to read these strategies

TickRun converts each indicator into a buy event and a sell event. A buy opens a 100% long position; a sell closes it. While a position is open, repeated buy signals are ignored. While no position is open, sell signals are ignored.

A crossover requires the indicator to move from one side of a level to the other. Optional signal delay and minimum holding-period controls are then applied. Transaction costs are deducted on entry and exit.

Strategy index

Momentum and oscillator strategies

1. Relative Strength Index (RSI)

RSI compares recent upward and downward price changes on a 0–100 scale. TickRun buys when RSI crosses below the lower threshold and sells when it crosses above the upper threshold, testing a mean-reversion interpretation: weakness triggers entry and later strength triggers exit.

Defaults: 14-session lookback, 30 lower threshold, 70 upper threshold.

2. Moving Average Convergence Divergence (MACD)

MACD subtracts a slow exponential moving average from a fast one. TickRun buys when the MACD line crosses above its signal EMA and sells when it crosses below. It follows changes in trend momentum but can switch repeatedly in sideways markets.

Defaults: 12-session fast EMA, 26-session slow EMA, 9-session signal EMA.

3. Stochastic Oscillator

The oscillator places the close inside its recent high–low range. TickRun buys when %K crosses above its smoothed %D line while still below the lower threshold. It sells when %K crosses below %D while above the upper threshold.

Defaults: 14-session %K, 3-session %D, thresholds 20 and 80.

4. Williams %R

Williams %R expresses where the close sits within the recent range on a scale from −100 to 0. TickRun buys when it crosses upward through −80 and sells when it crosses downward through −20, looking for recovery from an oversold region and reversal from an overbought region.

Defaults: 14-session lookback, entry −80, exit −20.

5. Commodity Channel Index (CCI)

CCI measures how far typical price has moved from its recent average relative to mean deviation. TickRun buys on an upward cross of −100 and sells on a downward cross of 100.

Defaults: 20-session lookback, entry −100, exit 100.

6. Rate of Change (ROC)

ROC measures the percentage price change over a selected lookback. TickRun buys when ROC crosses above the entry level and sells when it crosses below the exit level. With both levels at zero, it follows positive versus negative momentum.

Defaults: 12-session lookback, entry 0%, exit 0%.

7. Awesome Oscillator

This oscillator subtracts a slow simple average of median price from a fast one. TickRun buys above the entry level and sells below the exit level. A zero threshold treats positive short-term momentum as bullish.

Defaults: 5-session fast average, 34-session slow average, zero entry and exit.

8. TRIX

TRIX applies three exponential smoothings to price and measures the one-session rate of change of the result. TickRun buys when TRIX crosses above its entry level and sells when it crosses below its exit level.

Defaults: 14-session smoothing, zero entry and exit.

9. Ultimate Oscillator

The Ultimate Oscillator blends buying pressure across short, medium, and long windows. TickRun buys when it crosses upward through the lower level and sells when it crosses downward through the upper level.

Defaults: 7, 14, and 28 sessions; entry 30; exit 70.

10. Detrended Price Oscillator (DPO)

DPO removes a shifted moving average from price to emphasize cycles rather than the long trend. TickRun buys when DPO crosses above the entry level and sells when it crosses below the exit level.

Defaults: 20-session lookback, zero entry and exit.

11. True Strength Index (TSI)

TSI double-smooths price changes and divides them by double-smoothed absolute changes. TickRun buys on an upward cross of the entry level and sells on a downward cross of the exit level.

Defaults: 13-session fast smoothing, 25-session slow smoothing, zero entry and exit.

Trend and moving-average strategies

12. SMA Crossover

Two simple moving averages represent shorter- and longer-term price trends. TickRun buys when the fast SMA crosses above the slow SMA and sells when it crosses below. Simple averages react evenly to every observation in their windows.

Defaults: 20-session fast SMA, 50-session slow SMA.

13. EMA Crossover

This uses the same crossover rule as the SMA strategy, but exponential averages weight recent observations more heavily. That makes signals more responsive and potentially more sensitive to noise.

Defaults: 20-session fast EMA, 50-session slow EMA.

14. ADX / Directional Movement

ADX estimates trend strength while +DI and −DI estimate direction. TickRun buys when +DI crosses above −DI and ADX exceeds the minimum strength threshold. It sells when +DI crosses below −DI.

Defaults: 14-session lookback, minimum ADX 25.

15. Ichimoku Cloud

Ichimoku combines recent high–low midpoints into conversion, base, and cloud boundaries. TickRun buys when closing price crosses above the cloud’s upper boundary and sells when it crosses below the lower boundary.

Defaults: conversion 9, base 26, Span B 52 sessions.

16. Parabolic SAR

Parabolic SAR creates a trailing level that accelerates as a trend develops. TickRun buys when price crosses above SAR and sells when price crosses below it. The acceleration settings control how quickly the level approaches price.

Defaults: acceleration step 0.02, maximum 0.20.

17. Aroon

Aroon Up and Aroon Down measure how recently the period’s high and low occurred. TickRun buys when Aroon Up crosses above Aroon Down while Up meets its minimum. It sells on the reverse cross while Down meets its minimum.

Defaults: 25-session lookback; minimum Up 50 and Down 50.

18. Know Sure Thing (KST)

KST combines four smoothed rate-of-change components with increasing weights. TickRun buys when KST crosses above its signal average and sells when it crosses below.

Defaults: fixed KST components and a 9-session signal smoothing.

19. Double Exponential Moving Average (DEMA)

DEMA combines a single and double EMA to reduce lag. TickRun buys when price crosses above DEMA and sells when it crosses below.

Defaults: 20-session window.

20. Triple Exponential Moving Average (TEMA)

TEMA combines single, double, and triple exponential averages to reduce lag further. TickRun buys when price crosses above TEMA and sells when it crosses below.

Defaults: 20-session window.

21. Vortex Indicator

The positive and negative Vortex lines compare directional movement with true range. TickRun buys when the positive line crosses above the negative line and sells on the reverse cross.

Defaults: 14-session lookback.

22. Zero-Lag Exponential Moving Average (ZLEMA)

ZLEMA adjusts the price input before applying an EMA to reduce apparent delay. TickRun buys when price crosses above ZLEMA and sells when it crosses below.

Defaults: 20-session window.

Volatility and channel strategies

23. Bollinger Bands

Bollinger Bands place upper and lower standard-deviation envelopes around a simple moving average. TickRun buys when price crosses below the lower band and sells when it crosses above the upper band, using a mean-reversion rule.

Defaults: 20-session average, two standard deviations.

24. Donchian Channel

The Donchian boundaries are the prior period’s highest high and lowest low. TickRun buys when price breaks above the previous upper boundary and sells when it breaks below the previous lower boundary.

Defaults: 20-session channel.

25. Keltner Channel

A Keltner Channel surrounds an EMA with Average True Range envelopes. TickRun’s mean-reversion version buys when price crosses above the lower channel after being below it and sells when price crosses below the upper channel after being above it.

Defaults: 20-session center EMA, 10-session ATR, multiplier 2.

26. Average True Range (ATR) breakout

ATR measures range-based volatility. TickRun builds ATR envelopes around an EMA, then buys when price crosses above the upper envelope and sells when it crosses below the lower envelope. Unlike Keltner’s rule here, this is a breakout strategy.

Defaults: 20-session center EMA, 10-session ATR, multiplier 2.

Price-and-volume strategies

27. Money Flow Index (MFI)

MFI combines typical price and volume into a bounded oscillator. TickRun buys when MFI crosses above the lower threshold and sells when it crosses below the upper threshold, looking for recovery from weak money flow and reversal from strong money flow.

Defaults: 14-session lookback, thresholds 30 and 70.

28. On-Balance Volume (OBV)

OBV cumulatively adds volume on non-declining sessions and subtracts it on declining sessions. TickRun buys when OBV crosses above its signal EMA and sells when it crosses below.

Defaults: 20-session signal EMA.

29. Volume-Weighted Average Price

TickRun uses a rolling VWAP based on typical price and daily volume. It buys when closing price crosses above VWAP and sells when price crosses below it. This is a rolling daily-data interpretation, not an intraday institutional VWAP.

Defaults: 14-session rolling window.

30. Chaikin Money Flow (CMF)

CMF estimates accumulation or distribution from the close’s location within each range, weighted by volume. TickRun buys when CMF crosses above the entry level and sells when it crosses below the exit level.

Defaults: 20-session lookback, zero entry and exit.

31. Accumulation/Distribution Index (ADI)

ADI accumulates range-positioned volume. TickRun compares the cumulative line with its signal EMA, buying on an upward crossover and selling on a downward crossover.

Defaults: 20-session signal EMA.

32. Ease of Movement

Ease of Movement relates movement in the high–low midpoint to volume and trading range. TickRun smooths it, buys when it crosses above the entry level, and sells when it crosses below the exit level.

Defaults: 14-session smoothing, zero entry and exit.

33. Force Index

Force Index multiplies price change by volume, then smooths the result. TickRun buys when it crosses above the entry level and sells when it crosses below the exit level.

Defaults: 14-session EMA, zero entry and exit.

34. Negative Volume Index (NVI)

NVI changes only on sessions when volume declines from the previous session. TickRun buys when NVI crosses above its signal EMA and sells when it crosses below.

Defaults: 20-session signal EMA.

35. Volume–Price Trend (VPT)

VPT cumulatively adds volume multiplied by percentage price change. TickRun buys when VPT crosses above its signal EMA and sells when it crosses below.

Defaults: 20-session signal EMA.

Experimental strategies

36. Moon Phases

This deliberately experimental calendar rule divides each lunation into ten numbered stages. Stage 0 is New Moon, stage 5 is Full Moon, and stages 1–4 and 6–9 describe the intervening waxing and waning portions. Choose one Buy phase and a different Sell phase. TickRun holds continuously between them. The indicator plot steps through stages 0–9 on a numeric 0–10 y-axis; 10 is the cycle endpoint before it wraps to 0.

The saved ten-year database contains exact New Moon, First Quarter, Full Moon, and Last Quarter timestamps from the U.S. Naval Observatory in Universal Time. USNO does not publish ten separate event instants. TickRun assigns the four anchors coordinates 0, 2.5, 5, and 7.5, interpolates between consecutive timestamps, and rounds to the nearest numbered stage. The intermediate subdivisions are therefore an explicit TickRun research convention, not independently measured events.

The phase is sampled at 00:00 UTC for each date-only stock row, so an event later that day cannot affect the same row. If a weekend skips a stage, the next session still detects that the selected boundary was crossed. The following close-to-close return is the first return attributed to the updated position.

This rule has no established causal market mechanism and should be treated as a falsifiable research example, not evidence that lunar cycles predict returns. Multiple-testing and overfitting risks are especially important when comparing stage pairs.

Defaults: Buy phase 0 (New Moon); Sell phase 5 (Full Moon).

37. Weather in Wall Street

This experimental rule buys after one completed Manhattan weather category and sells after another. The five choices are Sunny / clear, Cloudy / dry, Rain / drizzle, Snow / ice, and Fog / haze. The indicator chart shows the category available to the strategy for each market session.

The information comes from the U.S. National Oceanic and Atmospheric Administration’s National Centers for Environmental Information, specifically Local Climatological Data Version 2 for station USW00094728 — NY City Central Park. The station is at 40.77898, −73.96925, approximately 8.8 km (5.5 miles) in a straight line from the New York Stock Exchange at 11 Wall Street. It provides a stable Manhattan record, but it is a proxy: localized rain and clouds can differ in Lower Manhattan.

TickRun derives precipitation categories from NOAA daily precipitation, snowfall, and weather codes. On dry days, hourly sky observations from 09:00 through 16:59 NOAA local standard time distinguish sunny/mostly clear from cloudy. A dry day needs at least four sky observations and at least half must report clear, sky clear, or few clouds to be called Sunny / clear; insufficient sky coverage falls conservatively into Cloudy / dry. Snow/ice takes precedence over rain, rain over fog/haze, and then the dry sky rule applies.

Report-day bias is explicitly prevented. A complete daily summary includes observations that were not known at the market open and may include conditions after the close. Therefore weather dated on day D can never affect market day D. TickRun uses only the newest completed weather date strictly before a session and maps it to the first later trading session. Monday normally uses Sunday’s report. If NOAA’s newest report is delayed, the old report may remain visible but is not emitted repeatedly as a new signal. TickRun’s usual convention then applies the resulting position to the following close-to-close return.

Weather has no established causal relationship with broad stock returns. The strategy should be treated as a research exercise, and its relatively small snow and fog samples make optimized results especially vulnerable to chance and multiple testing.

Defaults: Buy Sunny / clear; Sell Rain / drizzle.

Calendar strategies

These rules schedule a nominal calendar boundary, then execute its signal on the first saved market session on or after that boundary. This makes weekends, exchange holidays, and missing calendar dates explicit instead of silently dropping them. Buy and sell values must differ. At the beginning of a dataset, TickRun reconstructs whether the most recent boundary was a buy or sell boundary, so the initial position does not depend on the file starting at a convenient date.

38. Day of the Week

Choose Monday through Friday for the Buy day and a different trading weekday for the Sell day. Saturday and Sunday are not offered. If the selected weekday is absent from the saved data because of an exchange holiday, its signal maps forward to the next available session. For example, a Monday signal appears on Tuesday when Monday is a market holiday. The stepped indicator reports the actual session weekday from Monday through Friday.

This strategy can test recurring weekly holding windows, but apparent weekday effects can be unstable and sensitive to transaction costs, market regime, and the exact sample period.

Defaults: Buy Monday; Sell Friday.

39. Day of the Month

Choose calendar days 1–31 for Buy day and Sell day. Each target maps to the first saved session on or after it. When a selected number does not exist in a month—such as day 31 in February—the nominal target becomes the first calendar day of the following month, then moves forward again if that day is not a session. This exact rule prevents short months from disappearing from the test.

The strategy is suitable for examining turn-of-month and mid-month hypotheses. Results can be distorted by a small number of month boundaries, distributions, or large overnight moves, so inspect individual trades as well as the aggregate return.

Defaults: Buy day 1; Sell day 15.

40. Month of the Year

Choose a Buy month and a different Sell month. The signal is scheduled for the first calendar day of the selected month and maps to the first saved session on or after that date. The position may cross the year boundary; with the default settings, TickRun enters in November and exits in May.

This rule can test broad seasonal windows, but ten years of data contains only about ten observations of each annual boundary. Treat results as a small sample and check whether performance depends on one exceptional year.

Defaults: Buy November; Sell May.

How to use the results responsibly

  • Compare a strategy with Buy & Hold and inspect drawdown, not return alone.
  • Include realistic transaction costs.
  • Treat optimized parameters as hypotheses; optimization can overfit the same history it measures.
  • Prefer rules that remain reasonable across different assets, periods, and nearby parameter values.
  • Remember that corporate actions, liquidity, spreads, taxes, and execution constraints can change real outcomes.

Before optimizing a rule, read why the best backtest can be misleading. Then open the TickRun backtester, or consult the user manual.