Temporal Bias Architect [JOAT]Temporal Bias Architect
Introduction
Temporal Bias Architect is an open-source time-structure indicator that maps price action onto three nested cycle frameworks simultaneously: weekly, daily, and 90-minute. Each framework divides its period into four sequential phases — Accumulation (A), Manipulation (M), Distribution (D), and Continuation/Reversal (X) — derived from Daye Quarterly Theory. These phases correspond to observable behavioral patterns at each time level: accumulation of position, engineered moves against the dominant bias, distribution of that position, and the resulting continuation or reversal.
The resonance score adds a second analytical layer: when all three timeframe levels are in the same phase simultaneously, the market context is most aligned and the behavioral pattern is most likely to produce a tradeable move.
Core Concepts
1. Quarterly Theory Phase Mapping
Each trading week is divided into four days (Monday through Thursday). Each trading day is divided into four six-hour blocks. Each six-hour block is divided into four 90-minute segments. The indicator assigns each division the same four-phase labels in order (A, M, D, X), creating a fractal structure where the same behavioral sequence repeats at every time scale.
The phase for each level is derived directly from time to ensure accuracy:
int dIdx = math.min(3, hour / 6) // daily 6H phase
int qIdx = math.min(3, int((hour % 6) * 60 + minute) / 90) // 90-min phase
Each phase is rendered as a color-coded box at its corresponding price row in the indicator pane.
2. Three-Row Visual Layout
The indicator displays three horizontal rows of phase boxes: Weekly (top), Daily (middle), and 90-Minute (bottom). Each row is independently togglable. The boxes are sized proportionally and colored using configurable per-phase colors. Phase labels (A, M, D, X) are centered within each box.
3. Resonance Scoring
When two or more timeframe levels are in the same phase simultaneously, the resonance score increments. Score of 3/3 means weekly, daily, and 90-minute phases all show the same letter — a maximum alignment event. The background shading activates at 3/3 alignment to flag the condition visually.
4. Fibonacci Time Zone Projection
From the start of each new trading day, the indicator projects Fibonacci time ratios (1.0, 1.272, 1.618, 2.0, 2.618) forward using a configurable time unit (90-minute, daily 6H block, or full day). These projections appear as vertical dotted lines with ratio labels. They mark the temporal points where price structure has historically been more likely to change character.
5. Historical Phase Visibility
A toggle controls whether prior days' boxes remain visible or are hidden as each new period begins. With history enabled, the full phase map is visible across the visible chart range, providing context for how phases have sequenced in the past.
Features
Three-level phase mapping: Weekly, daily, and 90-minute Quarterly Theory phases displayed simultaneously
Configurable phase colors: Accumulation, Manipulation, Distribution, and X colors independently adjustable
Resonance score (1-3): Counts how many timeframe levels are in the same phase
3/3 alignment background: Gold background tint when all three levels align
Fibonacci time zone projection: Five Fibonacci ratios projected forward from session open
Configurable Fib time unit: 90-min, 6H, or daily unit for projection scaling
Historical phase boxes: Toggle to show or hide prior periods' phase mapping
Row labels: Left-edge labels identifying each horizontal row
Dashboard: Current weekly, daily, and 90-min phase, resonance score, and Fib time unit
Three alerts: Full resonance (3/3), new daily quarter, new weekly quarter
Input Parameters
General:
Show Historical Quarters: Toggle past period box visibility (default: false)
Auto-Detect Border Color: Adapts box border to chart background luminosity
Quarterly Cycles:
Show Weekly / Daily / 90-Min toggles
Show Phase Labels toggle
Label Size: Tiny, Small, Normal, or Large
Per-phase color inputs (A, M, D, X)
Fibonacci Time Zones:
Show Fibonacci Time Zones toggle
Fib Time Source: 0 = 90-min unit, 1 = daily 6H unit, 2 = weekly day unit
How to Use This Indicator
Step 1: Identify the Current Phase at Each Level
Check the dashboard rows for weekly, daily, and 90-minute phase. Each phase has a behavioral implication in Quarterly Theory: A = ranging accumulation, M = engineered spike against the prior move, D = directional distribution, X = reversal or continuation.
Step 2: Use the Resonance Score
A 3/3 resonance reading means all three time levels are in the same phase. The background shading triggers at this condition. Cross-timeframe alignment amplifies the behavioral tendency associated with that phase.
Step 3: Watch Fibonacci Time Projections
Fibonacci time ratios project when structural turning points may occur based on elapsed session time. Price approaching a projected Fib line while also in a key phase provides temporal context for setup timing.
Indicator Limitations
Quarterly Theory describes observed behavioral tendencies, not mechanical guarantees — the same phase can produce different outcomes depending on higher-timeframe context
Fibonacci time projections are probabilistic reference zones, not precise reversal targets
The three-level phase structure works best on liquid instruments during regular trading hours; crypto markets with no session boundaries produce less distinct phase behavior
Originality Statement
The simultaneous three-level Quarterly Theory phase renderer with a resonance scoring system and Fibonacci time zone projection in a single Pine Script v6 publication is the original contribution. The resonance score — quantifying cross-timeframe phase alignment from 1 to 3 — adds an analytical layer not present in standalone ADMX or ICT quarterly theory tools.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Quarterly Theory phase labels are observational frameworks and do not predict price direction. Trading involves substantial risk of loss.
-Made with passion by jackofalltrades
Indicator

ALN Sessions [NQ Stats x CantoLab]A statistical tool for NQ intraday traders built around research from NQ Stats (NQStats on twitter / nqstats.com ). Credit to NQ Stats for the original concept and data — published here as an open source indicator with permission.
Introduction
This indicator visualizes Asia and London session ranges on NQ (NASDAQ futures), then overlays statistically-derived probability levels showing how likely price is to sweep each session's high or low — based on historical pattern data compiled by NQ Stats.
How to Read the Probability Numbers
When London session closes, two horizontal lines appear — one above (London High) and one below (London Low) — each labeled with a percentage like 81.1% or 74.9%.
These numbers answer: "Historically, how often does price return to sweep this level after London closes?"
For example, if you see 81.1% on the high line, it means: in roughly 8 out of 10 historical sessions matching this pattern, price eventually traded back up to or through the London High
What happens when a level is hit?
The label updates to show in blue — confirming that level was reached
The other line's probability updates to a new conditional probability, e.g. 46% , shown in brackets
This delta tells you how the odds of sweeping the second level changed now that the first was reached
The Four Patterns (Asia vs London relationship)
The probabilities change depending on how London's range relates to Asia's range that day. The indicator detects four patterns automatically:
London Engulfs Asia — London trades both above AND below Asia's range. The most expansive session structure.
Asia Engulfs London — Asia's range fully contains London's range. London consolidates inside the prior overnight range.
London High Break — London breaks only above Asia's high, leaving Asia's low intact.
London Low Break — London breaks only below Asia's low, leaving Asia's high intact.
Each pattern has its own set of historical probabilities, so the percentages you see are always contextual to that day's Asia/London relationship — not a fixed number.
Settings
Asia Session — color, session time window, and label text
London Session — color, session time window, and label text
Label Size — Tiny / Small / Normal / Large
Border — toggle, style (Solid/Dashed/Dotted), and width for session boxes
Probability Lines — toggle, Auto color or manual color pick, style (Solid/Dashed/Dotted), and width
Daily Dividers — toggle, color, style (Solid/Dashed/Dotted), and width
Notes
Built for NQ Futures. Behaviour on other instruments is untested
All times are New York time
Probability data is derived from 10 years of NQ historical data by nqstats.com
This indicator does not provide financial advice or a complete strategy. You are responsible for how you build around and execute on this data
⚠️ Important
This is a statistical study indicator. It does not guarantee that the London high or low will be hit. Over a large sample, this is the expected behaviour based on 10 years of NQ data. It is best combined with other confluences to confirm direction — this indicator alone is not a strategy.
Indicator

Initial Balance Breaks [NQ stats x CantoLab]An open source indicator built around the Initial Balance break statistics from NQ Stats (nqstats.com). Credit to NQ Stats for the original research — published here with permission.
⚠️ Important
This is a statistical study indicator. It does not guarantee that the IB high or low will be hit. Over a large sample, this is the expected behaviour based on 10 years of NQ data. It is best combined with other confluences to confirm direction — this indicator alone is not a strategy.
What is the Initial Balance?
The Initial Balance (IB) is the price range established during the first hour of the New York equity session — 09:30 to 10:30 ET. The high and low set within this window become key levels for the rest of the trading day.
Based on 10 years of NQ data, IB breaks 83% of the time before noon and 96% of the time before 4:00 PM. The stat alone doesn't give you direction — but combined with where the IB closes relative to its own midpoint, you get a directional edge:
IB closes in the upper half → high breaks 82% of the time
IB closes in the lower half → low breaks 76% of the time
What it does
Once the IB window closes at 10:30, the indicator plots the IB High, Low and Mid as levels on the chart and automatically determines the directional bias based on where price closed within the IB range.
The expected break side is labelled with its probability and a tracking line extends forward tracking whether that level gets hit. When the level is breached the label updates to show Success or Failed in real time.
IB High — upper boundary of the initial balance range
IB Low — lower boundary of the initial balance range
IB Mid — equilibrium of the range, plotted in orange.
When price closes above mid, high break is expected.
When price close below mid, low break is expected.
Probability line — extends from IB close forward on the expected side, updates to Success or Failed when hit
Settings
IB Time — configurable session window, default 09:30–10:30 NY time
Label Size — Tiny / Small / Normal / Large / Huge
Per-level line style and width — IB High, Low, Mid and vertical markers
Auto color — IB High and Low auto-adapt to chart theme, or set manually
Notes
Built for NQ Futures. Behaviour on other instruments is untested
All times are New York time
Current version tracks directional bias from IB close relative to midpoint. The 83% before noon and 96% before 4PM time-based breach tracking and IB formation order confluence are not yet implemented
Probability data derived from 10 years of NQ historical data by NQ Stats.
This indicator does not provide financial advice or a complete strategy. You are responsible for how you build around and execute on this data
Indicator

Round Number Scale📌 A clean round-number scale that adapts to your chart, your zoom, and your market.
▌WHY IT'S USEFUL
Round numbers matter.
They often act as visual anchors for price reading, execution planning, reaction zones, and overall chart structure. But the native price scale does not always make these levels obvious enough, especially when you zoom in, zoom out, switch timeframes, or work on instruments with very different price behaviors.
This indicator builds a dedicated round-number scale directly on the chart and automatically adapts its density to the visible range, so the display stays readable instead of becoming overcrowded or too sparse.
It is designed to help you read price structure faster, keep important psychological levels visible, and maintain a cleaner visual framework across multiple chart conditions.
▌QUICK START
1. Add the indicator to your chart.
2. If the scale seems hidden, right-click the indicator name.
3. Go to Visual order → Bring to front.
4. Choose whether the scale is displayed on the left or right side.
5. Adjust the Size and Offset settings if you want a wider, tighter, or shifted display.
6. Optionally enable short numbers, labels, ruled lines, or a different visual theme.
▌MAIN SETTINGS
• Scale
Choose the side of the chart, the visual theme, the wall size, and the horizontal offset.
• Labels
Show or hide labels, increase or reduce their size, and switch to short number formatting such as 1K / 1M / 1B.
• Lines
Show or hide grid lines, adjust line thickness, and enable ruled lines for a lighter alternating visual structure.
• Themes
The indicator includes multiple visual styles and automatically adapts to the chart background for better contrast.
▌HOW IT WORKS
The script detects the currently visible chart window and computes an adaptive round-number grid based on the instrument, the timeframe, and the visible price range.
It then:
- builds a dedicated side scale,
- selects visible round-number levels,
- highlights the strongest levels,
- draws matching horizontal guide lines on the chart,
- and filters label density automatically to keep the display readable.
On lower timeframes, it can also display finer subdivisions of the round-number structure when relevant.
▌WARNINGS & LIMITS
If the scale is not visible, this is usually only a display-order issue:
Visual order → Bring to front.
The indicator automatically adjusts round-number density to the visible chart range, but no fully dynamic layout can be perfect in every possible situation.
In particular, adaptation may be less precise when combining:
- very high timeframes,
- very large historical ranges,
- strong volatility,
- or logarithmic scaling.
If needed, try one of the following:
- switch back to a linear scale,
- zoom slightly in or out,
- use a lower timeframe,
- adjust the Scale size parameter.
This indicator is mainly designed as a visual chart-reading tool. It does not generate trading signals or alerts by itself. Indicator

GridMap PRO by TradeAkademiGridMap PRO – Structural Price Mapping Framework
GridMap PRO is a price-mapping framework designed to visualize repeatable price reaction zones, based on the observation that price tends to evolve within specific percentage-based bands over time.
Despite its name, GridMap PRO is not a traditional grid trading indicator; it does not generate signals, predict direction, or provide automated trade execution. Its purpose is to segment price into logical and structurally consistent zones, offering a map that supports the decision-making process rather than replacing it.
This framework is not built on randomly drawn support and resistance levels, but on long-term observations, reverse-engineering studies, and the analysis of recurring price behavior across different market conditions.
Core Concept: Percentage-Based Scaling and Structural Bands
At the core of GridMap PRO lies a percentage-based scaling model centered around a 33% expansion ratio.
This ratio was not selected as a theoretical or mathematical constant. Instead, it emerged empirically through extensive analysis across multiple asset classes (including cryptocurrencies and traditional market instruments), by examining the percentage moves from significant price lows to areas where major price reactions frequently occurred.
Long-term observations have highlighted the following patterns:
In many upward price movements originating from a low, the first major price reaction often occurs within the 30–35% range
The midpoint of this range, 33%, has shown a recurring tendency to produce meaningful price reactions
Similar behavior can be observed not only when projecting from local lows, but also when applying the same ratio from the asset’s historical low
These findings suggest that the 33% ratio may reflect an aspect of price’s intrinsic scaling behavior, rather than representing a singular or “special” level.
Why the Historical Low (All-Time / Structural Low)?
GridMap PRO does not rely on dynamic or constantly shifting reference points when performing its calculations. Instead, it uses the historical lowest price as the most objective and indisputable anchor point available.
This design choice is intentional:
Dynamic lows:
introduce visual noise
require frequent redrawing of levels
reduce long-term structural consistency
The historical low:
is singular and fixed
does not repaint
preserves long-term perspective
By anchoring calculations to this structural low, GridMap PRO prioritizes stability and consistency over attempting to identify the “perfect” level at every moment. The goal is not precision through constant adjustment, but a coherent and durable price map.
Calculation Logic
The historical lowest price is used as the reference point
From this level, price levels are projected upward using a 33% multiplicative expansion
The resulting levels form long-term structural reference zones
Calculations are logarithmic, preserving the proportional nature of price scaling
Unlike traditional horizontal support and resistance tools, this approach allows price to expand while maintaining consistent relative distances as it grows.
Map Resolution: Long Term & Short Term
GridMap PRO offers two map resolution options, both derived from the same underlying structure and calculations.
Long Term
Displays only the primary 33% levels
Produces wider, more spaced structural bands
Suitable for macro structure analysis, swing trading, and position trading
Provides a clean and simplified view in high-volatility environments
Short Term
Retains the same primary levels
Adds logarithmic sub-levels between them
Produces denser and more precise reaction zones
Suitable for intraday analysis, short-term trade planning, and micro-structure evaluation
The underlying calculations remain unchanged; only the visual resolution and level density differ.
Visual Context & Supporting Tools
GridMap PRO also provides several optional visual tools that are not included in the core level calculations and are intended purely for visual support. These elements are designed to help interpret the price map more clearly and to provide additional contextual awareness.
The available visual components may include:
Moving Averages (EMA)
Used to provide contextual insight into the general price direction. They do not generate any entry or exit signals.
RSI Overbought / Oversold Zones
Displayed solely as background shading based on RSI values from the current timeframe and, optionally, from higher timeframes (e.g., 4H).
RSI Divergence Zones
Visual markers used to highlight potential momentum discrepancies, incorporating filters to limit repetitive signals.
None of these visual elements affect GridMap PRO’s level calculations, nor are they designed to serve as standalone trading signals. All visual settings are optional and can be enabled or disabled by the user.
What GridMap PRO Does – and Does Not Do
What It Does
Segments price into meaningful structural zones
Visualizes areas where price reactions are statistically more likely to occur
Provides reference regions for limit orders, grid-based approaches, or DCA planning
Helps identify whether price is trading within an active zone or moving through low-interaction space
What It Does Not Do
Generate long or short trade signals
Predict future price direction
Provide standalone buy or sell decisions
Offer any form of performance or outcome guarantee
GridMap PRO is not a signal generator, but a decision-support map.
Relationship to DCA and Grid Approaches
GridMap PRO is not a grid or DCA strategy by itself. However, when price fails to react at a given level, the next calculated percentage band naturally becomes a potential area of interest, offering a logical framework for DCA or layered position management.
In this context, GridMap PRO is particularly suitable for traders who favor process-driven and structured position management, rather than relying on single-point entries.
Final Note
Although the levels displayed by GridMap PRO have historically produced meaningful price reactions across many markets, no level can guarantee future price behavior. Market conditions, volatility, liquidity, and news flow should always be taken into account.
This tool is not designed to suggest that “price will definitely reverse here,” but rather that “price may pause, struggle, or change direction in this area.”
Because each market exhibits its own unique dynamics, the relevance of individual levels may vary by asset. Users are encouraged to validate all levels through their own historical observation and analysis. Indicator

CommonUtils█ OVERVIEW
This library is a utility tool for Pine Script™ developers. It provides a collection of helper functions designed to simplify common tasks such as mapping user-friendly string inputs to Pine Script™ constants and formatting timeframe strings for display. The primary goal is to make main scripts cleaner, more readable, and reduce repetitive boilerplate code. It is envisioned as an evolving resource, with potential for new utilities to be added over time based on community needs and feedback.
█ CONCEPTS
The library primarily focuses on two main concepts:
Input Mapping
Pine Script™ often requires specific constants for function parameters (e.g., `line.style_dashed` for line styles, `position.top_center` for table positions). However, presenting these technical constants directly to users in script inputs can be confusing. Input mapping involves:
Allowing users to select options from more descriptive, human-readable strings (e.g., "Dashed", "Top Center") in the script's settings.
Providing functions within this library (e.g., `mapLineStyle`, `mapTablePosition`) that take these user-friendly strings as input.
Internally, these functions use switch statements or similar logic to convert (map) the input string to the corresponding Pine Script™ constant required by built-in functions.
This approach enhances user experience and simplifies the main script's logic by centralizing the mapping process.
Timeframe Formatting
Raw timeframe strings obtained from variables like `timeframe.period` (e.g., "1", "60", "D", "W") or user inputs are not always ideal for direct display in labels or panels. The `formatTimeframe` function addresses this by:
Taking a raw timeframe string as input.
Parsing this string to identify its numerical part and unit (e.g., minutes, hours, days, weeks, months, seconds, milliseconds).
Converting it into a more standardized and readable format (e.g., "1min", "60min", "Daily", "Weekly", "1s", "10M").
Offering an optional `customSuffix` parameter (e.g., " FVG", " Period") to append to the formatted string, making labels more descriptive, especially in multi-timeframe contexts.
The function is designed to correctly interpret various common timeframe notations used in PulseWire.
█ NOTES
Ease of Use: The library functions are designed with simple and understandable signatures. They typically take a string input and return the corresponding Pine Script™ constant or a formatted string.
Default Behaviors: Mapping functions (`mapLineStyle`, `mapTablePosition`, `mapTextSize`) generally return a sensible default value (e.g., `line.style_solid` for `mapLineStyle`) in case of a non-matching input. This helps prevent errors in the main script.
Extensibility of Formatting: The `formatTimeframe` function, with its `customSuffix` parameter, allows for flexible customization of timeframe labels to suit the specific descriptive needs of different indicators or contexts.
Performance Considerations: These utility functions primarily use basic string operations and switch statements. For typical use cases, their impact on overall script performance is negligible. However, if a function like `formatTimeframe` were to be called excessively in a loop with dynamic inputs (which is generally not its intended use), performance should be monitored.
No Dependencies: This library is self-contained and does not depend on any other external Pine Script™ libraries.
█ EXPORTED FUNCTIONS
mapLineStyle(styleString)
Maps a user-provided line style string to its corresponding Pine Script™ line style constant.
Parameters:
styleString (simple string) : The input string representing the desired line style (e.g., "Solid", "Dashed", "Dotted" - typically from constants like LS1, LS2, LS3).
Returns: The Pine Script™ constant for the line style (e.g., line.style_solid). Defaults to line.style_solid if no match.
mapTablePosition(positionString)
Maps a user-provided table position string to its corresponding Pine Script™ position constant.
Parameters:
positionString (simple string) : The input string representing the desired table position (e.g., "Top Right", "Top Center" - typically from constants like PP1, PP2).
Returns: The Pine Script™ constant for the table position (e.g., position.top_right). Defaults to position.top_right if no match.
mapTextSize(sizeString)
Maps a user-provided text size string to its corresponding Pine Script™ size constant.
Parameters:
sizeString (simple string) : The input string representing the desired text size (e.g., "Tiny", "Small" - typically from constants like PTS1, PTS2).
Returns: The Pine Script™ constant for the text size (e.g., size.tiny). Defaults to size.small if no match.
formatTimeframe(tfInput, customSuffix)
Formats a raw timeframe string into a more display-friendly string, optionally appending a custom suffix.
Parameters:
tfInput (simple string) : The raw timeframe string from user input or timeframe.period (e.g., "1", "60", "D", "W", "1S", "10M", "2H").
customSuffix (simple string) : An optional suffix to append to the formatted timeframe string (e.g., " FVG", " Period"). Defaults to an empty string.
Returns: The formatted timeframe string (e.g., "1min", "60min", "Daily", "Weekly", "1s", "10min", "2h") with the custom suffix appended. Library
