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.
Mapping
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 TradingView.
█ 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.

