PatternFoundry
← Back to Docs

Chart Designer

Overview & Purpose

The Chart Designer lets you create custom Chart Characters - parameterized profiles that define how synthetic price action behaves. Each character controls everything from macro regime behavior (trending vs. choppy) down to individual tick-level microstructure (spread dynamics, agent behavior, order clustering).

Use the Chart Designer to:

The designer is split into two main sections: Chart Character (historical candle generation) and Microstructure (real-time tick engine parameters).

Volatility Parameters

Volatility parameters control the magnitude of price movement within each market regime. The system uses a regime-switching model where the market transitions between four states: Chop, Trend, Impulse, and Gap Hold.

ParameterRangeDefaultDescription
Chop Volatility0.1 – 3.00.8Standard deviation of returns during choppy/ranging periods. Higher values create wider ranges with more noise. Realistic: 0.5–1.2 for most instruments.
Trend Volatility0.5 – 5.01.5Standard deviation during trending periods. Controls how "noisy" the trend is - lower values create cleaner trends, higher values create volatile trends with deeper pullbacks.
Impulse Volatility2.0 – 15.05.0Standard deviation during impulse/spike moves. These are sudden, violent price moves (news events, stop cascades). Realistic: 3.0–8.0.
Gap Hold Volatility0.1 – 2.00.4Volatility during the consolidation period after a gap. Low values create tight post-gap ranges; higher values allow the gap to partially fill.
Note

Volatility values are expressed as multiples of the instrument's base tick size. A volatility of 1.0 means the typical candle body is approximately 1 tick in size at the given timeframe.

Drift Parameters

Drift parameters control the directional bias of price movement within each regime. They determine whether price tends to move up, down, or sideways.

ParameterRangeDefaultDescription
Chop Sigma0.0 – 1.00.1Random drift noise during chop. Near-zero creates perfectly flat ranges; higher values allow the range to slowly migrate up or down.
Trend Sigma0.0 – 1.00.2Noise added to the trend direction. Higher values make trends less linear and more "wobbly" with frequent minor reversals.
Trend Magnitude0.5 – 5.02.0Strength of the directional bias during trends. Higher values create steeper, more aggressive trends. This is the "slope" of the trend.
Impulse Magnitude3.0 – 20.08.0Strength of impulse moves. Controls how far price travels during a spike event. Higher values create larger news-style moves.
Global Bias-2.0 – 2.00.0Overall directional bias applied to all regimes. Positive = bullish tendency, negative = bearish. Zero = no bias. Subtle values (±0.1–0.3) create realistic drift without obvious direction.

Wick Parameters

Wick parameters control the wick-to-body ratio of generated candles. They determine how much price explores beyond the open/close range within each candle.

ParameterRangeDefaultDescription
Chop Wick Ratio0.5 – 4.01.8Wick length relative to body during chop. Higher values create doji-like candles with long wicks - typical of indecisive, ranging markets.
Trend Wick Ratio0.2 – 2.00.6Wick ratio during trends. Lower values create "clean" trend candles with small wicks in the trend direction. Higher values add more rejection wicks.
Impulse Wick Ratio0.1 – 1.50.3Wick ratio during impulses. Low values create strong marubozu-style candles (all body, no wick). Higher values add V-shaped rejection after the impulse.
Gap Hold Wick Ratio0.5 – 3.01.5Wick ratio during post-gap consolidation. Higher values create candles that probe toward gap fill but close back in the new range.
Asymmetry-1.0 – 1.00.0Wick direction bias. Positive values create longer upper wicks (selling pressure); negative values create longer lower wicks (buying pressure). Zero = symmetric.

Regime Durations (Markov Chain)

The market regime system uses a Markov chain to transition between states. Each regime has a configurable expected duration (in candles), and transitions between regimes are probabilistic.

ParameterRangeDefaultDescription
Chop Duration10 – 20050Expected number of candles spent in choppy/ranging state before transitioning. Longer durations create extended consolidation periods.
Trend Up Duration10 – 15030Expected candles in an uptrend before regime change. Longer = more sustained rallies.
Trend Down Duration10 – 15025Expected candles in a downtrend. Often slightly shorter than up-trends to model the "stairs up, elevator down" phenomenon.
Impulse Duration1 – 103Expected candles in an impulse state. Impulses are brief by nature - typically 1–5 candles of extreme movement.
How the Markov Chain Works

At each candle, the system checks whether to transition to a new regime. The probability of leaving the current regime is 1 / duration per candle, creating a geometric distribution. When a transition occurs, the next regime is selected based on transition probabilities that favor realistic sequences (e.g., impulse → chop is more likely than impulse → impulse).

Volume Parameters

Volume parameters shape the volume profile of generated candles, creating realistic intraday patterns.

ParameterRangeDefaultDescription
Base Volume100 – 1000005000Average volume per candle during normal trading. Scaled by timeframe.
Open Multiplier1.0 – 5.02.5Volume boost during the first 30 minutes of the session. Models the opening auction and initial positioning.
Midday Multiplier0.3 – 1.00.6Volume reduction during midday lull. Lower values create more pronounced "lunch hour" dead zones.
Close Multiplier1.0 – 4.02.0Volume boost in the final 30 minutes. Models end-of-day positioning and MOC orders.
Spike Probability0.0 – 0.30.05Probability per candle of a random volume spike (3–10x normal). Models sudden institutional activity or news events.

Gap Parameters

Gaps model price discontinuities - jumps between sessions or intraday gaps from news events.

ParameterRangeDefaultDescription
Session Gap Probability0.0 – 1.00.7Probability of a gap at session open (overnight gap). Most instruments gap daily; set lower for 24-hour markets like forex.
Min Gap Size0.5 – 5.01.0Minimum gap size in ATR multiples. Ensures gaps are meaningful when they occur.
Max Gap Size1.0 – 20.05.0Maximum gap size in ATR multiples. Caps extreme gaps for realism.
Intraday Gap Probability0.0 – 0.10.005Probability per candle of an intraday gap (news event, circuit breaker). Very rare in reality - keep this low.

Event Parameters

Events model specific price action patterns that occur within candles.

ParameterRangeDefaultDescription
Wick Stab Probability0.0 – 0.30.08Probability per candle of a "wick stab" - a sudden spike that immediately reverses (stop hunt / liquidity grab). Creates long-wick candles at key levels.
Wick Stab Magnitude1.0 – 10.03.0Size of wick stabs in ATR multiples. Higher values create more dramatic stop hunts.

Microstructure (Tick Engine) Parameters

The Microstructure section controls the tick engine - the real-time order book simulation that generates individual ticks during live playback. These parameters define how the simulated market participants behave.

Spread

ParameterRangeDefaultDescription
Base Spread (ticks)1 – 202Normal bid-ask spread in tick units. 1 tick = tightest possible spread (highly liquid). Higher values model less liquid instruments.
Volatility Multiplier1.0 – 5.01.5How much the spread widens during volatile periods. At 2.0, spread doubles when volatility spikes. Models real market maker behavior of widening quotes during uncertainty.

Institutional Orders

ParameterRangeDefaultDescription
Rate0.0 – 5.00.8Average institutional orders per second. These are large, persistent orders that move price directionally.
Size Min10 – 50050Minimum size of institutional orders (contracts/lots).
Size Max50 – 5000500Maximum size of institutional orders.
Persistence0.0 – 1.00.7How likely an institutional agent is to continue trading in the same direction on the next order. High persistence creates sustained directional pressure (iceberg orders, TWAP execution).

Retail Orders

ParameterRangeDefaultDescription
Rate0.5 – 20.05.0Average retail orders per second. These are small, random orders that add noise and liquidity. Higher rates create more active tape.

Momentum Orders

ParameterRangeDefaultDescription
Rate0.0 – 10.02.0Average momentum-chasing orders per second. These agents buy when price is rising and sell when falling, creating positive feedback loops and trend acceleration.

Hawkes Process

The Hawkes process models self-exciting order flow - the tendency for trades to cluster in time (one trade triggers more trades).

ParameterRangeDefaultDescription
Base Intensity (λ₀)0.1 – 5.01.0Background rate of order arrivals when no excitation is present. The "quiet" baseline activity level.
Alpha (Excitation)0.0 – 2.00.8How much each trade increases the arrival rate of subsequent trades. Higher alpha = more clustering / burst behavior. Must be less than Beta for stability.
Beta (Decay)0.5 – 5.01.2How quickly the excitation decays after a trade. Higher beta = faster return to baseline. Lower beta = longer-lasting bursts of activity.
Stability Condition

For a stable Hawkes process, Alpha < Beta must hold. If Alpha ≥ Beta, the process becomes explosive (infinite intensity). The UI enforces this constraint.

Liquidity Pools

ParameterRangeDefaultDescription
Strength0.0 – 2.00.5Attractive force of liquidity pools. Higher values make price more strongly attracted to pool levels, creating support/resistance behavior.
Count0 – 205Number of liquidity pools in the visible price range. These act as S/R levels where resting orders accumulate.

Mean Reversion

ParameterRangeDefaultDescription
Strength0.0 – 1.00.3Tendency for price to revert toward a moving average. Higher values create more mean-reverting behavior (good for range-bound characters). Lower values allow trends to develop more freely.

Generating & Previewing

After configuring parameters, use the preview tools to evaluate your character:

Tip

Use the Tick Engine Preview to verify that your microstructure parameters produce realistic-looking tape. Watch for: natural spread behavior, realistic trade clustering, and appropriate price impact from large orders.

Saving & Using Custom Characters

Once satisfied with your character:

  1. Click Save Character and give it a descriptive name (e.g., "ES Morning Chop", "NQ Trend Day", "Low Liquidity Gaps")
  2. The character appears in your saved characters list
  3. In the Simulator, select your custom character from the "Chart Character" dropdown when generating a new session

Characters are saved to your account and available across devices. You can edit, duplicate, or delete saved characters from the Chart Designer.