Indicators Reference · 0 indicators · May 2026

Indicators.
The math, drawn clearly.

A technical indicator catalog documented the same way: the formula, the chart it draws, the edge cases that bite, and a concise path into StratForge validation.

stratcraft / indicators / rsi.md
№ 07 / 0 · MOMENTUM · RELATIVE STRENGTH INDEX

RSI(14) · price above, oscillator below · divergence highlighted

SPY · 2024-01 → 2026-04 · daily
price ↗ higher highRSI(14)7030RSI ↘ lower high · bearish divergence
RSI = 100 − 100 / (1 + RS)
formula
14
default period
9
playbooks use this
1-line
express the signal

The reference at a glance.

A broad indicator reference across trend, momentum, volatility, moving-average, oscillator, and statistical families. Each entry emphasizes the derivation, visual behavior, and implementation assumptions.

Indicators
0
From SMA to Hurst exponent. Each documented to the same depth.
Families
6
Trend, momentum, volatility, volume, oscillators, statistical.
Wired into
23
Playbooks that compose these primitives into real, backtestable strategies.
{ } Reference code
100%
Every indicator ships with Python + C++23 reference implementations.

Anatomy of an indicator entry.

Each reference page is built the same way: the formula in math, the picture on a chart, the failure modes that bite, and code you can paste in.

1 Layer 1 · The formula

The math, written the way Wilder wrote it.

Original definitions, not paraphrased blog versions. With the smoothing nuance (SMMA vs EMA vs SMA) that determines whether your numbers match a Bloomberg terminal.

def RSI(close, n=14):
  Δ = close.diff()
  up = Δ.clip(lower=0).ewm(α=1/n)
  dn = (−Δ).clip(lower=0).ewm(α=1/n)
  RS = up / dn
  return 100100 / (1 + RS)
2 Layer 2 · The visual

One chart shows what it sees.

A purpose-drawn picture, not a screenshot of TradingView. Levels, divergences, and smoothing artifacts, annotated where they matter.

7030overboughtoversold
3 Layer 3 · The edge cases

What breaks it. When to ignore it.

Every indicator lies in some regime. Sideways markets, gaps, holiday data, log returns vs simple. We list the failure modes so they can be tested before a signal is trusted.

! Flat / sideways: RSI flips noisily between 40–60
! First N bars: warm-up undefined, do not signal
! Overnight gaps: Δ spike inflates RS asymmetrically
! Strong uptrends: 70 is not overbought, it is the floor
Wire into StratForge

One line of logic, then validate it.

Every indicator is a research primitive. Reference snippets show how to express the logic, then validate it against data before relying on the signal.

# StratCraft DSL
rsi14 = rsi(close, 14)
# Python
from stratcraft import rsi

Why this beats a Wikipedia entry.

Most online indicator references are surface-level. Ours are written by the people who implement them, with the smoothing pitfalls and edge cases included, not glossed.

Wikipedia / blog entryStratCraft · indicator reference
FormulaListed once, vague on smoothingSMMA / EMA / SMA variants spelled out, all three
VisualA screenshot of TradingViewPurpose-drawn chart with annotated signals
Edge cases"May generate false signals in choppy markets"Listed by name with specific regimes and remedies
Reference codePseudocode that won't compileWorking Python + C++23, vetted against the engine
Cross-linksStatic "See also" listLive links to every playbook that uses this indicator
An indicator reference should leave you able to re-derive it from first principles, recognise where it lies, and call it from your code with one import. That is the only bar we hold ourselves to.

Three steps from formula to signal.

An indicator is just a feature. Three steps to take it from a math line on a page to a backtested signal in your portfolio.

1 Step 1 · Learn

Read the formula. Once.

Every page opens with the math and the visual side by side. Six minutes to internalise what the indicator measures and what it doesn't.

FormulaVisualSmoothingEdge cases
2 Step 2 · Wire

One line in the strategy logic.

Define the indicator, set the period, and make the signal rule explicit. StratForge can then evaluate the behavior against market data.

DSLPythonC++23No glue
3 Step 3 · Combine

Stack them into a strategy.

Indicators compose. RSI + ATR + Donchian becomes a complete trend-following framework, the same way the 23 playbooks are built.

ComposeBacktestWalk-forwardValidate

The reference, all 0.

Featured entries are shown below, followed by the full catalog. Each entry documents formula, chart behavior, edge cases, and reference code where available.

EMASMA
TREND№ 01

SMA / EMA

Simple and exponential moving averages, the smoothing primitives underneath everything else.

USED IN
Read →
ATR × 2
VOLATILITY№ 14

ATR: Average True Range

The volatility unit Wilder built. The sizing primitive behind every Turtle-style system.

USED IN
Read →
20D HIGH
TREND№ 02

Donchian Channel

The N-period highest high and lowest low. The original Turtle breakout primitive.

USED IN
Read →
8020
MOMENTUM№ 08

Stochastic Oscillator

Where is close, relative to the recent range? %K and %D, bounded 0–100. Lane, 1950s.

USED IN
Read →
TREND№ 05

Ichimoku Cloud

Five lines, one chart. Trend, momentum, support: the kumo reads the regime at a glance.

USED IN
Read →
VWAP
VOLUME№ 21

VWAP

Volume-weighted average price. The intraday fair-value line that desks actually trade against.

USED IN
Read →
OBV
VOLUME№ 20

OBV: On-Balance Volume

Cumulative signed volume. Granville's 1963 classic: volume confirmation in one line.

USED IN
Read →
+100−100
MOMENTUM№ 10

CCI: Commodity Channel Index

Lambert's 1980 oscillator, unbounded. ±100 are not limits, they are alert lines.

USED IN
Read →
−20−80
MOMENTUM№ 11

Williams %R

The reverse of Stochastic, on a −100 to 0 scale. Larry Williams, 1970s: fast, raw, useful.

USED IN
Read →
ADX 25
TREND№ 06

ADX + DI

Wilder's directional movement system. ADX measures strength; +DI/−DI measure direction.

USED IN
Read →
VOL PROFILE
VOLUME№ 23

Volume Profile

Volume by price level. The point of control reveals where everyone agrees on fair value.

USED IN
Read →
+2σ−2σ
STATISTICAL№ 37

Z-Score

How many standard deviations from the mean. The math primitive behind every mean-reversion signal.

USED IN
Read →
Showing 15 of 0. The full reference is filterable by family, smoothing scheme, and citation.
View all 0 indicators

Go deeper.

Two threads to pull on next: see the indicators in action, or step up to the algorithm primitives.

Pick an indicator. Validate it next.

Use the catalog to choose an indicator, define the signal logic, and validate the behavior in StratForge before treating it as part of a strategy workflow.

Explore other projects.

StratCraft is one of three engines we build. Same philosophy: open-source where possible, performance-first, no lock-in.