Iani SMC Sniper XAU v2.2 (Long+Short + News Countdown, v6)Iani SMC Sniper XAU (v2.2) — smart-money logic for XAUUSD.
This indicator hunts “sniper entries” using a simple SMC sequence:
Sweep → BOS → 50% FVG entry
• After London session builds its range, we wait for a liquidity sweep (price dips below London Low for longs / wicks above London High for shorts).
• A BOS confirms direction (close breaks the last swing).
• First FVG that prints after BOS gives the entry at 50% (mid-gap).
• SL anchored to the protective swing (with a small safety buffer). TP is plotted using your Risk:Reward.
News countdown (non-blocking):
The script does not auto-fetch news; you set daily times (e.g., 14:30, 16:00) and/or specific dates (“YYYY-MM-DD HH:MM”). A countdown label shows “NEWS in Xm”. Signals are not blocked—this is just a safety heads-up for prop-firm rules.
Inputs: pivot length, RR, pip size (XAU default 0.10), session filter (after London), news times (recurring & absolute), show/hide levels & labels.
Plots & labels: London High/Low (daily), Entry/SL/TP lines, BOS/Sweep/BUY/SELL markers, news badge.
Alerts: BOS Bull/Bear, BUY/SELL Entry touch, TP/SL hit, NEWS WARNING.
Notes:
• Designed for XAUUSD intraday; works on other symbols if you adjust pip size.
• Uses symbol timezone; adjust your news times for DST if needed.
• Indicator only—no orders, no backtest. Manage risk and execution in MT5/your platform.
Changelog (v2.2): Pine v6, robust time parsing, one-line logical expressions (fixed EOL errors), mirrored short logic, cleaner London H/L reset, countdown label.
Disclaimer: Educational tool, not financial advice. Past performance ≠ future results.
Tags: SMC, ICT, XAUUSD, Gold, Liquidity Sweep, BOS, FVG, London Session, News, Intraday, Scalping, DayTrading.
Educational
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.
Swing RSI Panel//@version=6
indicator("Swing RSI Panel", overlay=false)
// RSI Settings
rsiLength = input.int(14, "RSI Length")
rsiOversold = input.int(40, "RSI Oversold")
rsiOverbought = input.int(60, "RSI Overbought")
// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)
// Plot RSI
plot(rsiValue, "RSI", color=color.purple, linewidth=2)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted)
hline(rsiOversold, "Oversold", color=color.green, linestyle=hline.style_dotted)
hline(rsiOverbought, "Overbought", color=color.red, linestyle=hline.style_dotted)
// Fill zones
bgcolor(rsiValue >= rsiOverbought ? color.new(color.red, 90) :
rsiValue <= rsiOversold ? color.new(color.green, 90) : na, title="RSI Zones")
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.
Daily + 4H MACD & RSI Screeneri used this script for my swing trading entry.
//@version=5
indicator("Daily + 4H MACD & RSI Screener", overlay=false)
// settings
rsiLength = input.int(14, "RSI Length")
rsiLevel = input.int(50, "RSI Threshold")
macdFast = input.int(12, "MACD Fast")
macdSlow = input.int(26, "MACD Slow")
macdSignal = input.int(9, "MACD Signal")
// ---- daily timeframe ----
dailyRsi = request.security(syminfo.tickerid, "D", ta.rsi(close, rsiLength))
= request.security(syminfo.tickerid, "D", ta.macd(close, macdFast, macdSlow, macdSignal))
dailyRsiPass = dailyRsi < rsiLevel
dailyMacdPass = dailyMacd < 0
dailyCondition = dailyRsiPass and dailyMacdPass
// ---- 4H timeframe ----
h4Rsi = request.security(syminfo.tickerid, "240", ta.rsi(close, rsiLength))
= request.security(syminfo.tickerid, "240", ta.macd(close, macdFast, macdSlow, macdSignal))
h4RsiPass = h4Rsi < rsiLevel
h4MacdPass = h4Macd < 0
h4Condition = h4RsiPass and h4MacdPass
// ---- combined condition ----
finalCondition = dailyCondition and h4Condition
// plot signals
plotshape(finalCondition, style=shape.triangledown, location=location.top, color=color.red, size=size.large, title="Signal")
bgcolor(finalCondition ? color.new(color.red, 85) : na)
// ---- table (3 columns x 4 rows) ----
var table statusTable = table.new(position=position.top_right, columns=3, rows=4, border_width=1)
// headers
table.cell(statusTable, 0, 0, "Timeframe", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(statusTable, 1, 0, "RSI", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(statusTable, 2, 0, "MACD", text_color=color.white, bgcolor=color.new(color.black, 0))
// daily row
table.cell(statusTable, 0, 1, "Daily", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(statusTable, 1, 1, str.tostring(dailyRsi, "#.##"),
text_color=color.white, bgcolor=dailyRsiPass ? color.new(color.green, 60) : color.new(color.red, 60))
table.cell(statusTable, 2, 1, str.tostring(dailyMacd, "#.##"),
text_color=color.white, bgcolor=dailyMacdPass ? color.new(color.green, 60) : color.new(color.red, 60))
// 4H row
table.cell(statusTable, 0, 2, "4H", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(statusTable, 1, 2, str.tostring(h4Rsi, "#.##"),
text_color=color.white, bgcolor=h4RsiPass ? color.new(color.green, 60) : color.new(color.red, 60))
table.cell(statusTable, 2, 2, str.tostring(h4Macd, "#.##"),
text_color=color.white, bgcolor=h4MacdPass ? color.new(color.green, 60) : color.new(color.red, 60))
// status row (simulate colspan by using two adjacent cells with the same bgcolor)
table.cell(statusTable, 0, 3, "Status", text_color=color.white, bgcolor=color.new(color.black, 0))
statusText = finalCondition ? "match" : "no match"
statusBg = finalCondition ? color.new(color.green, 0) : color.new(color.red, 0)
table.cell(statusTable, 1, 3, statusText, text_color=color.white, bgcolor=statusBg, text_size=size.large)
table.cell(statusTable, 2, 3, "", text_color=color.white, bgcolor=statusBg)
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.
Big Player Buy/Sell SignalHow It Works:
Detects volume spikes over SMA of recent volume.
Signals a buy if there’s a green candle near a recent swing low on high volume (possible big player accumulation).
Signals a sell if there’s a red candle near a swing high on high volume (possible big player distribution).
This is a proxy, not a direct measure of institutional trades, but it often works surprisingly well in liquid markets like Nifty 50 or Bank Nifty.
If you want, I can make an advanced version that combines RSI, EMA, and first occurrence detection for higher accuracy in catching big player moves.
Highlight 10-11 AM NY//@version=5
indicator("Highlight 10-11 AM NY", overlay=true)
// Inputs for flexibility
startHour = input.int(10, "Start Hour (NY time)")
endHour = input.int(11, "End Hour (NY time)")
// Check if the current bar is within the session (uses chart time zone)
inSession = (hour(time, syminfo.timezone) >= startHour) and (hour(time, syminfo.timezone) < endHour)
// Highlight background
bgcolor(inSession ? color.new(color.yellow, 85) : na)
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
GBB_lib_fiboLibrary "GBB_lib_fibo"
draw_fibo(high_point, low_point)
draw_fibo
/ @description Draws Fibonacci retracement lines between a high point and a low point.
/ @param high_point (float) Highest point of the move.
/ @param low_point (float) Lowest point of the move.
/ @returns (void) Draws lines on the chart.
Parameters:
high_point (float)
low_point (float)
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.
Enhanced Kitchen Sink Strategymulti-layered trading system designed for TradingView, targeting a minimum 75% win rate through precise entry signals and robust risk management. Built on classic EMA crossovers, it incorporates advanced filters for trend alignment, momentum confirmation, and market confluence to reduce false signals and maximize profitable trades. Ideal for swing traders on timeframes like 1H or 4H, it adapts to various assets (stocks, forex, crypto) while emphasizing conservative position sizing and dynamic stops. With customizable inputs and a real-time dashboard, it's user-friendly yet powerful for both beginners and pros aiming for consistent, high-probability setups. Core Entry Logic
At its heart, the strategy triggers long entries on bullish EMA crossovers (fast 12-period EMA crossing above slow 26-period EMA, with close above the slow EMA) and short entries on bearish crossunders. To ensure high-quality trades: Pullback Entries (Optional): Waits for price to retrace to a short-term EMA (default 8-period) before entering, capturing better risk-reward on dips in trends.
Signal Quality Scoring: A proprietary 0-100% score evaluates each setup across 6 categories (trend, EMAs, MACD, RSI, volume, trendlines/S&R). Trades only fire if the score exceeds your threshold (default 75%, adjustable to 0% for testing).
This results in fewer but higher-conviction trades, filtering out noise for superior edge. Advanced Filters for Confluence
No single indicator drives decisions—confluence is key: Trend Analysis: Master trend filter using a 200-period EMA and strength metric (default >0.5% deviation). Optional higher-timeframe (e.g., daily) confirmation via EMA and MACD alignment.
MACD Double Confirmation: Requires MACD line above/below signal (9-period) with optional histogram momentum buildup.
RSI + Divergence: Filters for neutral RSI zones (40-70 for longs, 30-60 for shorts) and detects bullish/bearish divergences over 20 bars.
Volume Profile: Demands above-average volume (1.5x 20-period SMA) with buying/selling pressure analysis.
Trendlines & S/R: Auto-detects dynamic trendlines from pivots (10-bar lookback) and support/resistance zones (100-bar lookback, 3+ touches), avoiding entries near key levels.
Session Filters: Trades only during London/NY sessions (UTC-based), skipping high-volatility news windows (e.g., 1:30-2:00 PM UTC).
All filters are toggleable, allowing you to dial in aggressiveness—disable for more signals during backtesting.Risk Management & Position Sizing
Safety first: Uses 100% equity per trade with 0.1% commission simulation. Stops & Targets: ATR-based (14-period) stop-loss (1x ATR) and take-profit (2.5x ATR) for 1:2.5 risk-reward.
Breakeven Moves: Auto-shifts stop to +0.1% entry after 1% profit.
Trailing Stops: Optional 1.5x ATR trail to lock in gains during runners.
No pyramiding—flat after each close for clean, low-drawdown performance.
Visualization & Insights On-Chart: Plots EMAs, pullback lines, S/R dashes, trend backgrounds (green/red), and entry labels/shapes.
Dashboard: Real-time table shows trend status, HTF bias, quality scores, MACD/RSI/volume readouts, session info, ATR, price, and position.
Customization: 20+ inputs grouped by category; max 500 labels for clean charts.
Performance Edge & Usage Tips
Backtested for 75%+ win rates in trending markets, this strategy shines in volatile assets like EURUSD or BTCUSD. Start with defaults on 1H charts, then tweak filters (e.g., lower quality to 50%) for ranging conditions. Always forward-test—past results aren't guarantees. Download, apply, and elevate your trading with confluence-driven precision!
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.
TRI - Multi-Timeframe BIASTRI - MULTI-TIMEFRAME BIAS INDICATOR
DESCRIPTION:
Advanced multi-timeframe bias indicator that analyzes market sentiment across
5 different timeframes (15m, 1h, 4h, 1d, 1w) using adaptive technical analysis.
Provides clear directional bias signals to help determine market momentum.
KEY FEATURES:
ADAPTIVE PARAMETERS: Uses different EMA lengths and weights for each timeframe
EMA TREND ANALYSIS: Fast/slow EMA crossovers with slope analysis for momentum
RSI MOMENTUM: Adaptive overbought/oversold levels based on timeframe
ADX STRENGTH: Directional movement confirmation with DI+/DI- analysis
COMPOSITE SCORING: Weighted combination of trend, momentum, and strength
TIMEFRAME ANALYSIS:
15m: EMA9/21 + High momentum weight (45%) - Ultra-responsive for scalping
1h: EMA21/50 + Medium momentum weight (35%) - Balanced for day trading
4h: EMA50/200 + Lower momentum weight (25%) - Swing trading focus
1d: EMA50/200 + Trend focused (55%) - Position trading signals
1w: EMA50/200 + Maximum trend weight (60%) - Long-term bias
BIAS SIGNALS:
STRONG BULLISH/BEARISH: Score ≥ 0.5 - Very strong directional momentum
BULLISH/BEARISH: Score ≥ 0.25 - Clear directional signals
WEAK BULLISH/BEARISH: Score ≥ 0.1 - Mild directional bias
NEUTRAL: Score < 0.1 - No clear directional preference
ALERTS:
Major Bullish/Bearish: When 4H and 1D timeframes align
High confidence signals for strategic decision making
USAGE:
Higher timeframes (1d, 1w) show primary market direction
Lower timeframes (15m, 1h) provide entry timing
Look for alignment across multiple timeframes for stronger signals
Use confidence levels to assess signal reliability
TECHNICAL COMPONENTS:
Exponential Moving Averages (EMA) for responsive trend detection
Relative Strength Index (RSI) for momentum analysis
Average Directional Index (ADX) with DI+/DI- for trend strength
Volume ratio confirmation for signal validation
Adaptive thresholds optimized for each timeframe's characteristics
CyberFX EMA21 Strategy (Pine v5)This is a simple indicator that can be used for a simple strategy. It follows the logic of the price always move back to the media, in that case an EMA(21). This give us an opportunity to achieve a better R/R. One important thing here is this indicator works better on trend markets. When the market is in consolidation mode it will show many signals so we need to pay attention and be patient. This indicator works better in 4H timeframes but it can used with other TFs.
The idea behind is:
for a bullish move when the price moves back to the EMA(21) we check the distance between the low value and the EMA(21) value. The best is when the price low crosses the EMA(21) from above. I am considering a 8 pips distance from the price low to the ema as a signal. Then I will wait for the new candle to move above the EMA(21) for a long entry. I also consider at least 50 pips for SL.
for a bearish move the idea is the same but we consider the price high crossing the EMA(21) and the new candle moving below the EMA.
I hope this can be useful and please leave your comment nad critics(but only the constructive one).
Have a safe trade