FiniteStateMachine🟩 OVERVIEW
A flexible framework for creating, testing and implementing a Finite State Machine (FSM) in your script. FSMs use rules to control how states change in response to events.
This is the first Finite State Machine library on TradingView and it's quite a different way to think about your script's logic. Advantages of using this vs hardcoding all your logic include:
• Explicit logic : You can see all rules easily side-by-side.
• Validation : Tables show your rules and validation results right on the chart.
• Dual approach : Simple matrix for straightforward transitions; map implementation for concurrent scenarios. You can combine them for complex needs.
• Type safety : Shows how to use enums for robustness while maintaining string compatibility.
• Real-world examples : Includes both conceptual (traffic lights) and practical (trading strategy) demonstrations.
• Priority control : Explicit control over which rules take precedence when multiple conditions are met.
• Wildcard system : Flexible pattern matching for states and events.
The library seems complex, but it's not really. Your conditions, events, and their potential interactions are complex. The FSM makes them all explicit, which is some work. However, like all "good" pain in life, this is front-loaded, and *saves* pain later, in the form of unintended interactions and bugs that are very hard to find and fix.
🟩 SIMPLE FSM (MATRIX-BASED)
The simple FSM uses a matrix to define transition rules with the structure: state > event > state. We look up the current state, check if the event in that row matches, and if it does, output the resulting state.
Each row in the matrix defines one rule, and the first matching row, counting from the top down, is applied.
A limitation of this method is that you can supply only ONE event.
You can design layered rules using widlcards. Use an empty string "" or the special string "ANY" for any state or event wildcard.
The matrix FSM is foruse where you have clear, sequential state transitions triggered by single events. Think traffic lights, or any logic where only one thing can happen at a time.
The demo for this FSM is of traffic lights.
🟩 CONCURRENT FSM (MAP-BASED)
The map FSM uses a more complex structure where each state is a key in the map, and its value is an array of event rules. Each rule maps a named condition to an output (event or next state).
This FSM can handle multiple conditions simultaneously. Rules added first have higher priority.
Adding more rules to existing states combines the entries in the map (if you use the supplied helper function) rather than overwriting them.
This FSM is for more complex scenarios where multiple conditions can be true simultaneously, and you need to control which takes precedence. Like trading strategies, or any system with concurrent conditions.
The demo for this FSM is a trading strategy.
🟩 HOW TO USE
Pine Script libraries contain reusable code for importing into indicators. You do not need to copy any code out of here. Just import the library and call the function you want.
For example, for version 1 of this library, import it like this:
import SimpleCryptoLife/FiniteStateMachine/1
See the EXAMPLE USAGE sections within the library for examples of calling the functions.
For more information on libraries and incorporating them into your scripts, see the Libraries section of the Pine Script User Manual.
🟩 TECHNICAL IMPLEMENTATION
Both FSM implementations support wildcards using blank strings "" or the special string "ANY". Wildcards match in this priority order:
• Exact state + exact event match
• Exact state + empty event (event wildcard)
• Empty state + exact event (state wildcard)
• Empty state + empty event (full wildcard)
When multiple rules match the same state + event combination, the FIRST rule encountered takes priority. In the matrix FSM, this means row order determines priority. In the map FSM, it's the order you add rules to each state.
The library uses user-defined types for the map FSM:
• o_eventRule : Maps a condition name to an output
• o_eventRuleWrapper : Wraps an array of rules (since maps can't contain arrays directly)
Everything uses strings for maximum library compatibility, though the examples show how to use enums for type safety by converting them to strings.
Unlike normal maps where adding a duplicate key overwrites the value, this library's `m_addRuleToEventMap()` method *combines* rules, making it intuitive to build rule sets without breaking them.
🟩 VALIDATION & ERROR HANDLING
The library includes comprehensive validation functions that catch common FSM design errors:
Error detection:
• Empty next states
• Invalid states not in the states array
• Duplicate rules
• Conflicting transitions
• Unreachable states (no entry/exit rules)
Warning detection:
• Redundant wildcards
• Empty states/events (potential unintended wildcards)
• Duplicate conditions within states
You can display validation results in tables on the chart, with tooltips providing detailed explanations. The helper functions to display the tables are exported so you can call them from your own script.
🟩 PRACTICAL EXAMPLES
The library includes four comprehensive demos:
Traffic Light Demo (Simple FSM) : Uses the matrix FSM to cycle through traffic light states (red → red+amber → green → amber → red) with timer events. Includes pseudo-random "break" events and repair logic to demonstrate wildcards and priority handling.
Trading Strategy Demo (Concurrent FSM) : Implements a realistic long-only trading strategy using BOTH FSM types:
• Map FSM converts multiple technical conditions (EMA crosses, gaps, fractals, RSI) into prioritised events
• Matrix FSM handles state transitions (idle → setup → entry → position → exit → re-entry)
• Includes position management, stop losses, and re-entry logic
Error Demonstrations : Both FSM types include error demos with intentionally malformed rules to showcase the validation system's capabilities.
🟩 BRING ON THE FUNCTIONS
f_printFSMMatrix(_mat_rules, _a_states, _tablePosition)
Prints a table of states and rules to the specified position on the chart. Works only with the matrix-based FSM.
Parameters:
_mat_rules (matrix)
_a_states (array)
_tablePosition (simple string)
Returns: The table of states and rules.
method m_loadMatrixRulesFromText(_mat_rules, _rulesText)
Loads rules into a rules matrix from a multiline string where each line is of the form "current state | event | next state" (ignores empty lines and trims whitespace).
This is the most human-readable way to define rules because it's a visually aligned, table-like format.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_rulesText (string)
Returns: No explicit return. The matrix is modified as a side-effect.
method m_addRuleToMatrix(_mat_rules, _currentState, _event, _nextState)
Adds a single rule to the rules matrix. This can also be quite readble if you use short variable names and careful spacing.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_currentState (string)
_event (string)
_nextState (string)
Returns: No explicit return. The matrix is modified as a side-effect.
method m_validateRulesMatrix(_mat_rules, _a_states, _showTable, _tablePosition)
Validates a rules matrix and a states array to check that they are well formed. Works only with the matrix-based FSM.
Checks: matrix has exactly 3 columns; no empty next states; all states defined in array; no duplicate states; no duplicate rules; all states have entry/exit rules; no conflicting transitions; no redundant wildcards. To avoid slowing down the script unnecessarily, call this method once (perhaps using `barstate.isfirst`), when the rules and states are ready.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_a_states (array)
_showTable (bool)
_tablePosition (simple string)
Returns: `true` if the rules and states are valid; `false` if errors or warnings exist.
method m_getStateFromMatrix(_mat_rules, _currentState, _event, _strictInput, _strictTransitions)
Returns the next state based on the current state and event, or `na` if no matching transition is found. Empty (not na) entries are treated as wildcards if `strictInput` is false.
Priority: exact match > event wildcard > state wildcard > full wildcard.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_currentState (string)
_event (string)
_strictInput (bool)
_strictTransitions (bool)
Returns: The next state or `na`.
method m_addRuleToEventMap(_map_eventRules, _state, _condName, _output)
Adds a single event rule to the event rules map. If the state key already exists, appends the new rule to the existing array (if different). If the state key doesn't exist, creates a new entry.
Namespace types: map
Parameters:
_map_eventRules (map)
_state (string)
_condName (string)
_output (string)
Returns: No explicit return. The map is modified as a side-effect.
method m_addEventRulesToMapFromText(_map_eventRules, _configText)
Loads event rules from a multiline text string into a map structure.
Format: "state | condName > output | condName > output | ..." . Pairs are ordered by priority. You can have multiple rules on the same line for one state.
Supports wildcards: Use an empty string ("") or the special string "ANY" for state or condName to create wildcard rules.
Examples: " | condName > output" (state wildcard), "state | > output" (condition wildcard), " | > output" (full wildcard).
Splits lines by , extracts state as key, creates/appends to array with new o_eventRule(condName, output).
Call once, e.g., on barstate.isfirst for best performance.
Namespace types: map
Parameters:
_map_eventRules (map)
_configText (string)
Returns: No explicit return. The map is modified as a side-effect.
f_printFSMMap(_map_eventRules, _a_states, _tablePosition)
Prints a table of map-based event rules to the specified position on the chart.
Parameters:
_map_eventRules (map)
_a_states (array)
_tablePosition (simple string)
Returns: The table of map-based event rules.
method m_validateEventRulesMap(_map_eventRules, _a_states, _a_validEvents, _showTable, _tablePosition)
Validates an event rules map to check that it's well formed.
Checks: map is not empty; wrappers contain non-empty arrays; no duplicate condition names per state; no empty fields in o_eventRule objects; optionally validates outputs against matrix events.
NOTE: Both "" and "ANY" are treated identically as wildcards for both states and conditions.
To avoid slowing down the script unnecessarily, call this method once (perhaps using `barstate.isfirst`), when the map is ready.
Namespace types: map
Parameters:
_map_eventRules (map)
_a_states (array)
_a_validEvents (array)
_showTable (bool)
_tablePosition (simple string)
Returns: `true` if the event rules map is valid; `false` if errors or warnings exist.
method m_getEventFromConditionsMap(_currentState, _a_activeConditions, _map_eventRules)
Returns a single event or state string based on the current state and active conditions.
Uses a map of event rules where rules are pre-sorted by implicit priority via load order.
Supports wildcards using empty string ("") or "ANY" for flexible rule matching.
Priority: exact match > condition wildcard > state wildcard > full wildcard.
Namespace types: series string, simple string, input string, const string
Parameters:
_currentState (string)
_a_activeConditions (array)
_map_eventRules (map)
Returns: The output string (event or state) for the first matching condition, or na if no match found.
o_eventRule
o_eventRule defines a condition-to-output mapping for the concurrent FSM.
Fields:
condName (series string) : The name of the condition to check.
output (series string) : The output (event or state) when the condition is true.
o_eventRuleWrapper
o_eventRuleWrapper wraps an array of o_eventRule for use as map values (maps cannot contain collections directly).
Fields:
a_rules (array) : Array of o_eventRule objects for a specific state.
Educational
Magic Phoenix By Azam JaniThe indicator is best used for swing entries on lower timeframes (e.g., 5m/1m charts with 15m HTF signals) and can trigger alerts for automation.
SP2L Pour Samadi Indicator [TradingFinder] Spike 2 Legs PA🔵 Introduction
The SP2L (Spike–2Leg) strategy, designed by Mohammad Ali Poursamadi, an international Iranian trader, is a simple yet powerful price action setup developed to identify precise entry points following sharp market movements.
A Spike refers to a sudden and rapid move in the market, usually triggered by a heavy flow of orders in one direction. This sharp movement creates an Imbalance between buyers and sellers. Since the market does not have time to trade evenly during such moves, it generates Inefficiency on the chart.
The direct result of a spike is usually the formation of a Fair Value Gap (FVG) — a space between candles indicating that trades were not distributed fairly. In simple terms, the spike is the cause, while Imbalance, Inefficiency, and FVG are its consequences.
🟣 How is a Spike formed?
Big Movement : A spike begins with a sharp and powerful move caused by heavy order flow in one direction.
Imbalance : This move disrupts the balance between buyers and sellers.
Inefficiency : Due to the speed of the move, the market fails to trade efficiently, leaving inefficiency on the chart.
Fair Value Gap (FVG) : The final outcome is a price gap between candles, highlighting unfair distribution of trades.
In SP2L, entries occur right after a spike. The entry logic is based on the structure of each candle’s Higher Lows (HLs) or Lower Highs (LHs).
When a spike occurs and candles consecutively form higher lows or lower highs :
In bullish conditions, each previous low becomes a potential Buy Entry.
In bearish conditions, each previous high becomes a potential Sell Entry.
🔵 How to Use
In the SP2L strategy, entries occur directly within the ongoing strong movement (the spike). A spike forms when heavy order flow pushes the market strongly in one direction, creating several large candles in sequence. This disrupts balance and leaves patterns such as Imbalance and FVG on the chart.
During such moves, the market does not necessarily retrace; instead, it continues strongly in the direction of the spike. The key principle in SP2L is that candles begin forming Higher Lows (HLs) in a bullish spike or Lower Highs (LHs) in a bearish spike. Each HL or LH acts as a potential entry level, but the actual entry only triggers once price returns to retest that level. This allows the trader to enter within a powerful wave while keeping stop-losses clear and risk controlled.
🟣 Bullish SP2L
When a bullish spike occurs, candles consecutively form Higher Lows. Each HL marks a potential entry. The entry is activated when price returns to that HL.
Stop-Loss (SL) : Placed below the candle where the spike originated, usually the lowest point before the sharp move.
Take-Profit (TP) : Defined based on classic risk-to-reward ratios, commonly TP1 = 1:1 and TP2 = 1:2. Stronger trends may allow extended targets.
🟣 Bearish SP2L
When a bearish spike occurs, candles consecutively form Lower Highs. Each LH marks a potential sell entry. The entry is triggered when price returns to retest that LH.
Stop-Loss (SL) : Placed above the candle where the bearish spike started, usually the highest point before the sharp drop.
Take-Profit (TP) : Similar to bullish setups, typically TP1 = 1:1 and TP2 = 1:2, with extended targets possible if bearish momentum continues.
🔵 Settings
🟣 Spike Filter | Movement
Minimum Spike Bars : Defines the minimum number of consecutive candles required for a valid spike.
Movement Power : Enables or disables the momentum-based spike filter.
Movement Power Level : Sets the strength threshold; higher values filter out weaker moves and only detect strong spikes.
🟣 Spike Filter | Gap
Gap Filter : Enables or disables the gap filter.
Gap Type : Selects which type of gap should be detected (All Gaps, Significant, Structural, Major).
🟣 Spike Filter | Doji
Doji Tolerance : Defines whether doji candles are allowed within a spike.
Max Doji Body Ratio : Maximum ratio of body-to-total candle size for classifying a candle as a doji.
Max Doji in Spike Ratio : Maximum percentage of doji candles allowed within a spike.
🟣 Trend Detection
Trend Detection : Enables or disables the trend detection module using dojis.
Max Doji Body Ratio : Maximum body-to-candle ratio used to classify a doji in trend calculations.
Candle Lookback : Number of candles used to calculate doji percentage for trend evaluation.
Max Doji in Trend Ratio : Maximum percentage of doji candles allowed within the lookback window for the trend to be valid.
🟣 Position Management
Stop-Loss Threshold : Enables or disables the stop-loss threshold feature.
Stop-Loss Threshold Value : Defines the value of the stop-loss threshold for risk management.
Risk-Reward Ratio : Sets the desired risk-to-reward ratio (e.g., 1:1 or 1:2).
Include SL Threshold in R:R : Determines whether the stop-loss threshold is included in risk-to-reward calculations.
🟣 Display Settings
Display Mode : Chooses between Setup (showing setups) or Signal (showing trade signals).
Only Display the Last Position : Displays only the most recent position on the chart when enabled.
🔵 Conclusion
The SP2L (Spike–2Leg) strategy, designed by Mohammad Ali Poursamadi, offers a simple yet effective framework for trading strong market flows. Built on the logic of spikes and candle structures (HLs and LHs), it identifies precise entry points directly within the main movement of the market, where risk is clear and reward is logical.
With transparent rules, defined stop-loss placement, and flexible risk management, SP2L proves especially effective in volatile markets such as forex, gold, and indices. Its simplicity makes it practical for both beginner traders and seasoned professionals.
In summary, SP2L helps traders avoid unnecessary complexity by focusing on spikes and consecutive HL/LH formations to capture accurate, low-risk entries.
EMA / WMA RibbonMomentum Flow Ribbon
Unlock a clear, visual edge in identifying short-term momentum shifts with the Momentum Flow Ribbon.
This indicator was born from a simple yet powerful concept: to visually represent the dynamic relationship between a fast-reacting Exponential Moving Average (EMA) and the smoother, more methodical Wilder's Moving Average (WMA). While both moving averages use the same length, their unique calculation methods cause them to separate and cross, creating a "ribbon" that provides an immediate and intuitive gauge of market momentum.
This tool is designed for the disciplined trader who values clean charts and actionable signals, helping you to execute your strategies with greater confidence and precision.
How It Works
The script plots an EMA and a Wilder's Moving Average (referred to as rma in Pine Script) of the same length. The space between these two lines is then filled with a colored ribbon:
Bullish Green/Teal: The ribbon turns bullish when the faster EMA crosses above the slower Wilder's MA, indicating that short-term momentum is strengthening to the upside.
Bearish Red: The ribbon turns bearish when the EMA crosses below the Wilder's MA, signaling that short-term momentum is shifting to the downside.
The inherent "lag" of the Wilder's MA, a feature designed by J. Welles Wilder Jr. himself, acts as a steady baseline against which the more sensitive EMA can be measured. The result is a simple, zero-lag visual that filters out insignificant noise and highlights meaningful changes in trend direction.
Key Features
Customizable Length and Source: Easily adjust the moving average length and price source (close, hl2, etc.) to fit your specific trading style and the instrument you are trading, from futures like MES and MNQ to cryptocurrencies and forex.
Customizable Colors: Tailor the ribbon's bullish and bearish colors to match your personal chart aesthetic.
Built-in Alerts: The script includes pre-configured alerts for both bullish (EMA crosses above WMA) and bearish (EMA crosses below WMA) signals. Never miss a potential momentum shift again.
Clean & Lightweight: No clutter. Just a simple, effective ribbon that integrates seamlessly into any trading system.
Practical Application for the Discerning Trader
For a futures trader, timing is everything. This ribbon is not just another indicator; it's a tool for confirmation.
Imagine you've identified a key level—a Volume Profile POC, the previous day's low, or a critical accumulation zone. As price approaches this level pre-London session, you're watching for a sign of institutional activity. A flip in the ribbon's color at that precise moment can provide the powerful confirmation you need to enter a trade, trusting that you are aligning with the building liquidity and momentum heading into the New York open.
This is a tool for those who aspire to greatness in their trading—who understand that the edge is found not in complexity, but in the flawless execution of a simple, well-defined plan.
Add the Momentum Flow Ribbon to your chart and start seeing momentum in a clearer light.
Auto Fibonacci - First Hour Lockedthis gives the accurate fibonnacci based on the day's first hour high/low values, and the extension values as well.
TPO Levels [VAH/POC/VAL] with Poor H/L, Single Prints & NPOCs### 🎯 Advanced Market Profile & Key Level Analysis
This script is a unique and comprehensive technical analysis tool designed to help traders understand market structure, value, and key liquidity levels using the principles of **Auction Market Theory** and **Market Profile**.
This script is unique (and shouldn't be censored) because :
It allows large history of levels to be displayed
Accurate as possible tick size
Doesn't draw a profile but only the actual levels
Supports multi-timeframe levels even on the daily mode giving macro context
There is no indicator out there that does it
While these concepts are universal, this indicator was built primarily for the dynamic, 24/7 nature of the **cryptocurrency market**. It helps you move beyond simple price action to understand *why* the market is moving, which is especially crucial in the volatile crypto space.
### ## 📊 The Concepts Behind the Calculations
To use this script effectively, it's important to understand the core concepts it is built upon. The entire script is self-contained and does not require other indicators.
* **What is Market Profile?**
Market Profile is a unique charting technique that organizes price and time data to reveal market structure. It's built from **Time Price Opportunities (TPOs)**, which are 30-minute periods of market activity. By stacking these TPOs, the script builds a distribution, showing which price levels were most accepted (heavily traded) and which were rejected (lightly traded) during a session.
* **What is the Value Area (VA)?**
The Value Area is the heart of the profile. It represents the price range where **70%** of the session's trading volume occurred. This is considered the "fair value" zone where both buyers and sellers were in general agreement.
* **Point of Control (POC):** The single price level with the most TPOs. This was the most accepted or "fairest" price of the session and acts as a gravitational line for price.
* **Value Area High (VAH):** The upper boundary of the 70% value zone.
* **Value Area Low (VAL):** The lower boundary of the 70% value zone.
VAH and VAL are dynamic support and resistance levels. Trading outside the previous session's value area can signal the start of a new trend.
***
### ## 📈 Key Features Explained
This script automatically calculates and displays the following critical market-generated information:
* **Multi-Timeframe Market Profile**
Automatically draws Daily, Weekly, and Monthly profiles, allowing you to analyze market structure across different time horizons. The script preserves up to 20 historical sessions to provide deep market context.
* **Naked Point of Control (nPOC)**
A "Naked" POC is a Point of Control from a previous session that has **not** been revisited by price. These levels often act as powerful magnets for price, representing areas of unfinished business that the market may seek to retest. The script tracks and displays Daily, Weekly, and Monthly nPOCs until they are touched.
* **Single Prints (Imbalance Zones)**
A Single Print is a price level where only one TPO traded during the session's development. This signifies a rapid, aggressive price move and an imbalanced market. These areas, like gaps in a traditional chart, are frequently revisited as the market seeks to "fill in" these thin parts of the profile.
* **Poor Structure (Unfinished Auctions)**
A **Poor High** or **Poor Low** occurs when the top or bottom of a profile is flat, with two or more TPOs at the extreme price. This suggests that the auction in that direction was weak and inconclusive. These weak structures often signal a high probability that price will eventually break that high or low.
***
### ## 💡 How to Use This Indicator
This tool is not a signal generator but an analytical framework to improve your trading decisions.
1. **Determine Market Context:** Start by asking: Is the current price trading *inside* or *outside* the previous session's Value Area?
* **Inside VA:** The market is in a state of balance or range-bound. Look for trades between the VAH and VAL.
* **Outside VA:** The market is in a state of imbalance and may be starting a trend. Look for continuation or acceptance of prices outside the prior value.
2. **Identify Key Levels:**
* Use historical **nPOCs** as potential profit targets or areas to watch for a price reaction.
* Treat historical **VAH** and **VAL** levels as significant support and resistance zones.
* Note where **Single Prints** are. These are often price magnets that may get "filled" in the future.
3. **Spot Weakness:**
* A **Poor High** suggests weak resistance that may be easily broken.
* A **Poor Low** suggests weak support, signaling a potential for a continued move lower if broken.
***
### ## ⚙️ Customization & Crypto Presets
The indicator is highly customizable, allowing you to change colors, transparency, the number of historical sessions, and more.
To help traders get started quickly, the indicator includes **built-in layout presets** specifically calibrated for major cryptocurrencies: ** BINANCE:BTCUSDT.P , BINANCE:ETHUSDT.P , and BINANCE:SOLUSDT.P **. These presets automatically adjust key visual parameters to better suit the unique price characteristics and volatility of each asset, providing an optimized view right out of the box.
***
### ## ⚠️ Disclaimer
This indicator is a tool for market analysis and should not be interpreted as direct buy or sell signals. It provides information based on historical price action, which does not guarantee future results. Trading involves significant risk, and you should always use proper risk management. This script is designed for use on standard chart types (e.g., Candlesticks, Bar) and may produce misleading information on non-standard charts.
RSI Divergence — BibhutiRSI Divergence with 30/70 filter. No repainting , but many false signals also. Still can be used in conjuction with other momentum indicators
CPR with EMA & VWAP ConfirmationIF this Indicator not properly alignment in chart.. just click indicator three dot more option and choose pine to scale (Pinned to A or right )
The Full CPR indicator is a complete intraday trading framework that combines Central Pivot Range (CPR) levels, Pivot Targets (R1/R2/R3, S1/S2/S3), and trend confirmations using EMA & VWAP. It is designed for traders who rely on CPR-based setups for intraday trend, breakout, and reversal opportunities.
Key Features
CPR Levels (Pivot, BC, TC): Auto-calculated daily from the previous day’s High, Low, and Close.
Target Zones: Standard targets (R1, R2, S1, S2) plus optional extensions (R3, S3).
EMA & VWAP Filters: Flexible entry confirmations with selectable buffer % and modes:
EMA only
VWAP only
Both
Any
Narrow/Wide CPR Detection: Identifies Narrow CPR (possible trending days) and Wide CPR (possible sideways/range days).
Previous Day High/Low (PDH/PDL): Plotted with shaded zones for support/resistance.
Auto Labels & Tags: Session labels for Pivot, BC, TC, targets, plus CPR Type (NARROW / WIDE / NORMAL).
Shaded Zones: CPR, bullish (R1–R2), bearish (S1–S2), and extension zones filled with transparency controls.
Entry Triggers:
Long entry when price closes above upper CPR band (or BC, depending on mode).
Short entry when price closes below lower CPR band (or TC, depending on mode).
Stoploss (SL): Opposite CPR band is marked as SL.
Target Tracking: Auto-marks T1/T2/T3 hits for both long and short trades.
Alerts: Built-in alerts for Long/Short entry, Target hits, and Stoploss triggers.
How to Use
Trend Days (Narrow CPR): Look for strong breakouts beyond CPR with EMA/VWAP confirmation.
Range Days (Wide CPR): Expect sideways movement; use CPR and PDH/PDL for quick scalps.
Entry & SL:
Go long when price breaks above CPR upper band (SL = lower band).
Go short when price breaks below CPR lower band (SL = upper band).
Targets: Use R1/R2/R3 (bullish) or S1/S2/S3 (bearish) as progressive booking levels.
Disclaimer
This script is for educational purposes only. It does not guarantee profits and should not be considered financial advice. Always backtest thoroughly and use proper risk management before live trading.
MOONA130925-2305bThe Martingale strategy in crypto trading involves doubling trade size after each loss, aiming to recover losses with one win and secure a small profit. While potentially effective short-term, it carries high risk, as consecutive losses can rapidly exhaust capital, making it unsustainable without strict risk management.
Use Below Settings for Best Results.
5Min or 15 Min
EMA 20
EMA 45
EMA 200
Keep Enable EMA on Entry- ON
Length 1- 45
Length 2- 200
Set Target 3% (Untick all Except T1)
Set SL 1.5%
Trading hours candle markerTake control of your trading sessions with this powerful time-highlighting tool.
This indicator automatically shades selected hours on your chart, giving you instant clarity on when the market is most relevant for your strategy.
Whether you’re backtesting or trading live, you’ll quickly see which candles form inside or outside your setup windows—helping you avoid mistakes and stay focused on high-probability trades.
✔ Customize your own start and end hours
✔ Instantly spot restricted or setup periods
✔ Works on any timeframe and market
✔ Adjustable UTC offset to perfectly match your local time
Bring more structure and precision to your trading with a simple, clean visual overlay.
EMA Support & ResistanceEducational Purpose only
This indicator combines VWAP, multiple Exponential Moving Averages (EMA 20,/VWAP ), Support and Resistance
VWAP (Volume Weighted Average Price) helps identify fair value and intraday bias.
EMA 20 act as dynamic support and resistance levels for short, medium, and long-term trends.
CPR (Central Pivot Range) is calculated from the previous day’s High, Low, and Close. It provides intraday reference zones S1/S2/S3 & R1/R2/R3 that traders use to gauge market direction and trend strength.
This tool is built for educational purposes only — to help visualize common support & resistance zones and learn how VWAP + EMAs + S/R interact in live markets. It is not financial advice and should not be used as a standalone trading system.
Profit booking Indicatorbasic indicator to check swing highs and lows. it uses macd cross over along with moving average of 20 and 50. when candle crosses 50ema it will give buy signal and when crosses below 20ema it gives sell signal.
Value Investing IndicatorThis is based on PeterNagy Indicator. I just update it from v.4 to v.6 and modify. Open for tweak
GusteriTBL
time based liq
am salvat o copie de la OGDubsky, pentru a putea lucra ulterior pe aceasta
GC Checklist Signals (All TF, v6 • SR-safe • Clean blocks)GC (COMEX Gold) checklist strategy with a 3:1 reward-to-risk to your training bot. It enforces the following rules:
Heiken Ashi chart logic for color, wicks, and doji detection
100-EMA filter (only buys above / sells below)
Market structure: higher-low above EMA for buys; lower-high below EMA for sells (simple pivot check)
Clean pullback: at least 2 opposite-color candles; clean = no top wicks (buys) / no bottom wicks (sells)
Entry: on high-volume doji (body ≤ ~12% of range and volume ≥ last 1–3 candles), as soon as it closes
Stops: sell = above doji high; buy = below doji low
GC Checklist Signals (All Timeframes, v6)GC (COMEX Gold) checklist strategy with a 3:1 reward-to-risk to your training bot. It enforces your rules:
Heiken Ashi chart logic for color, wicks, and doji detection
100-EMA filter (only buys above / sells below)
Market structure: higher-low above EMA for buys; lower-high below EMA for sells (simple pivot check)
Clean pullback: at least 2 opposite-color candles; clean = no top wicks (buys) / no bottom wicks (sells)
Entry: on high-volume doji (body ≤ ~12% of range and volume ≥ last 1–3 candles), as soon as it closes
Stops: sell = above doji high; buy = below doji low
Chartlense Dashboard (Data, Trend & Levels)Chartlense Dashboard (Data, Trend & Levels)
Overview
This dashboard is designed to solve two common problems for traders: chart clutter and the manual drawing of support and resistance levels . It consolidates critical data from multiple indicators into a clean table overlay and automatically plots the most relevant S&R levels based on recent price action. The primary goal is to provide a clear, at-a-glance overview of the market's structure and data.
It offers both a vertical and horizontal layout to fit any trader's workspace.
Key Concepts & Calculations Explained
This indicator is more than a simple collection of values; it synthesizes data to provide unique insights. Here’s a conceptual look at how its core components work:
Automatic Support & Resistance (Pivot-Based):
The dashed support (green) and resistance (red) lines are not manually drawn. They are dynamically calculated based on the most recent confirmed pivot highs and pivot lows . A pivot is a foundational concept in technical analysis that identifies potential turning points in price action.
How it works: A pivot high is a candle whose `high` is higher than a specific number of candles to its left and right (the "Pivot Lookback" is set to 5 by default in the settings). A pivot low is the inverse. By automatically identifying these confirmed structural points, the script visualizes the most relevant levels of potential supply and demand on the chart.
Relative Volume (RVOL):
This value in the table is not the standard volume. It measures the current bar's volume against its recent average (specifically, `current volume / 10-period simple moving average of volume`).
Interpretation: A reading above 2.0 (indicated by green text) suggests that the current volume is more than double the recent average. This technique is used to identify significant volume spikes, which can add conviction to breakouts or signal potential market climaxes.
Consolidated Data for Context:
Other values displayed in the table, such as the EMAs (9, 20, 200) , Bollinger Bands (20, 2) , RSI (14) , MACD (12, 26, 9) , and VWAP (on intraday charts), use their standard industry calculations. They are included to provide a complete contextual picture without needing to load each indicator separately, saving valuable chart space.
How to Use This in Your Trading
This dashboard is designed as a tool for confluence and context , not as a standalone signal generator. Here are some ways to integrate it into your analysis workflow:
As a Trend Filter: Before considering a trade, quickly glance at the EMAs and the MACD values in the table. A price above the key EMAs and a positive MACD can serve as a quick confirmation that you are aligned with the dominant trend.
To Validate Breakouts: When the price is approaching a key Resistance level (red pivot line), watch the RVOL value . A reading above 2.0 on the breakout candle adds significant confirmation that the move is backed by strong interest. The same logic applies to breakdowns below a support level.
To Spot Potential Reversals: Confluence is key. For example, if the price is testing a Support level (green pivot line) AND the RSI in the table is approaching oversold levels (e.g., near 30), it can signal a higher probability reversal setup.
About This Indicator
This indicator was developed by the team at ChartLense to help traders declutter their charts and focus on the data that matters. We believe in making complex analysis more accessible and organized. We hope this free tool is a valuable addition to your trading process.
AA1 MACD 09.2025this is a learing project i want to share
the script is open for anyone
I combain some ema's mcad and more indicators to help find stocks in momentum
Futures Tick & Point Value [BoredYeti]Futures Tick & Point Value
This utility displays tick size, dollars per tick, and (optionally) a per-point row for the current futures contract.
Features
• Hardcoded $/tick map for common CME/NYMEX/CBOT/COMEX contracts
• Automatic fallback using pointvalue * mintick for any other symbol
• Table settings: adjustable position, text size, customizable colors
• Optional “Per Point” row showing ticks and $/point
Notes
• Contract specs can vary by broker/exchange and may change over time. Always confirm with official specifications.
• Educational tool only; not financial advice.
SOLACEThis overlay combines a fast/slow EMA price-action system with rich context tools. Buy prints on the current bar when both EMAs (5 & 21) are below the OHLC average and the 21 EMA crosses below the 5 EMA; Sell prints when both EMAs are above the average and the 21 EMA crosses above the 5 EMA. It also plots MACD, VWAP, Bollinger Bands (20,2), SMA50/200, plus dynamic support/resistance lines from recent swing highs/lows (20/40/60 bars) for confluence. Labels fire same-bar for early entries, and alerts are included for both signals; fractal logic is prepared for future use.
Margin Cost Calculator Screener - Taylor V1.2# Leverage Position Cost Calculator & Stop Lose Cost Screener #
Designed to provide traders with crucial insights into their leveraged positions directly on the TradingView chart.
Key Features:
> Dynamic Display: Choose to view only the estimated entry cost, or a comprehensive overview including potential losses at specific stop-loss levels, and a custom remark.
> Contract Size Input: Easily specify the contract size for your trades.
> Leverage Level Input: Set your desired leverage level, with helpful tooltips explaining the margin requirements for various leverage ratios (e.g., 25x, 10x, 5x) and an included fee estimate.
> Cost Calculation: Accurately calculates the estimated entry cost for your position based on the current market price, contract size, and leverage.
> Stop-Loss Projections: It projects potential losses for stop-loss orders set at 3% and 5% below the entry price, helping you manage risk effectively.
> Clear Table Visualization: All calculated data is presented in a clean, organized table anchored to the bottom-left of your chart, making it easy to reference at a glance.
> Symbol Identification: Automatically displays the short ticker symbol for the asset you are analyzing.
This tool is invaluable for traders who utilize leverage and need a quick, visual way to understand their financial exposure and potential outcomes before entering or managing a trade.
Raid & Imbalance Suite (ICT-inspired)**What it is**
Raid & Imbalance Suite is an invite-only indicator that visualizes liquidity raids and fair-value-gap (FVG) context directly on the chart. It is inspired by ICT concepts but is an independent implementation (not affiliated with ICT).
**What it shows**
• Liquidity raid highlights (sweeps)
• FVG / imbalance context overlays
• Light session / structure context for additional clarity
• Intentional minimalism — internal thresholds/logic are not disclosed
**How to use**
• Works on most symbols and timeframes supported by TradingView indicators
• Use as chart context alongside your own plan and risk management
• This tool does not place trades, generate signals, or guarantee outcomes
**Inputs & Alerts**
• Toggles for raids / FVG / sessions
• Basic visual settings
• Optional alerts for newly detected events
**Access**
This is an **invite-only** script. Request access via TradingView messages (username: @ASevilla28). Access is granted manually to approved users.
**Disclaimer**
For educational/charting purposes only. Not financial advice. No performance guarantees. Markets involve risk. Use at your own discretion.
*(The author is not affiliated with or endorsed by any third party referenced by “ICT-inspired”.)*