Liquidity Sweeps & Swings (SMC/ICT)Liquidity Sweeps & Swings (SMC/ICT) — TradingATH
Precision. Clarity. Structure.
This refined indicator automatically detects and displays Liquidity Sweeps and Liquidity Swings , highlighting the precise points where liquidity is taken and where structure shifts occur within price action.
Designed for traders applying Smart Money Concepts (SMC/ICT) , it offers a clear, data-driven visualization of market dynamics — providing structural context with professional accuracy and visual balance.
What You’ll See
Liquidity Sweeps represented as compact shaded zones, green for bullish sweeps and red for bearish ones, fading automatically once mitigated.
Liquidity Swings precisely labeled “ Swing High ” and “ Swing Low ” at major pivot points, cleanly positioned within structure.
Controlled-length zones that extend for a defined number of bars or dynamically until mitigation.
Optional real-time alerts when a new sweep forms or price re-enters an active zone.
Features
Sweep Detection Logic : Identifies liquidity grabs using Wick, Close, or Wick + Close validation for flexible precision across different market conditions.
Smart Mitigation : Zones dynamically fade or are removed once price mitigates the area, keeping your chart clean and relevant.
Swing Mapping : Highlights key pivot points to outline market structure shifts with precise and minimal labeling.
ATR Filtering : Optional volatility-based filter removes minor or insignificant sweeps to maintain clarity.
Elegant Design : Subtle colors, refined typography, and balanced spacing ensure a professional, unobtrusive presentation.
Alerts and Updates : Automated alerts for new sweep formations and live interaction with active zones.
Professional Architecture : Efficient execution, size-safe arrays, and optimized plotting for smooth performance on any timeframe.
ICT/SMC Ready : Fully compatible with advanced institutional concepts such as Fair Value Gaps, Order Blocks, and Market Structure Shifts.
Perfect For
Traders applying ICT or Smart Money Concepts methodologies to identify liquidity grabs and structural intent.
Intraday Traders seeking precise, uncluttered sweep and swing identification on volatile charts.
Swing Traders filtering high-probability setups based on liquidity structure and mitigation behavior.
Analysts requiring clarity, reliability, and technical precision in their liquidity mapping tools.
Recommended Settings
Pivot Lookback : 14 (balanced structural sensitivity).
Sweep Validation : Wick + Close (adaptive precision).
Zone Length : 150 bars (controlled visual reach).
ATR Filter : Minimum 0.25×, Maximum 3× (clean sweep selection).
Swing Labels : Enabled (for structural clarity).
In Short
Clean logic. Institutional precision. Professional clarity.
Liquidity Sweeps & Swings (SMC/ICT) delivers a disciplined and refined visualization of liquidity flow and structural shifts — crafted for traders who demand both analytical accuracy and visual sophistication.
Created by: TradingATH
Pine實用程式
5-Year Returns Chart BTCvsSPXvsGOLDvsNVDACompare between thes 4 assets:
BTC
NVDA
SPX
GOLD
With an initial 1000$ investment in the last 5 years each return
NY Open 5 minute Range (5m Box Extended)Draws a box around the first 5 minute candle for the New York session.
Order Blocks (SMC/ICT)Order Blocks (SMC/ICT) — TradingATH
Precision. Intent. Structure.
This refined tool automatically detects and displays Order Blocks (OBs) with clean, institutional clarity—mapping the exact zones where displacement originated and where price is most likely to rebalance or react. Built for SMC/ICT Traders , it presents bullish and bearish OBs with disciplined visuals, mitigation logic, and efficient performance on any timeframe.
What You’ll See
Bullish Order Blocks in balanced green shading with a mid-line, borders, and a compact label.
Bearish Order Blocks in refined red tones, equally annotated and visually consistent.
Controlled Extension of zones for a chosen number of bars—or dynamic extension until mitigation.
Configurable Labels with selectable position (Top/Bottom, Left/Right) and custom label font color per side.
Mid-Line (Average) through each OB for precise reference and execution alignment.
Features
Volume Pivot Logic : OBs are derived from a volume pivot length, focusing on zones that matter where displacement had participation.
Mitigation Methods : Validate via Wick or Close, adapting to different liquidity conditions and your SMC playbook.
ATR Size Filter : Enforce minimum/maximum size (×ATR) to remove insignificant zones and retain only the highest-quality blocks.
Extend-Until-Mitigated : Keep active zones projected into future bars until price mitigates—ensuring they remain actionable.
Clean Plotting : Size-safe arrays, time-anchored boxes/lines, and efficient updates for smooth operation in intraday and swing contexts.
Alert Suite :
OB Formed: Bullish/Bearish OB creation.
OB Mitigated: Zone filled/invalidated.
Price Entered OB: Live notification when price re-enters the most recent OB.
Perfect For
ICT/SMC Traders mapping institutional zones with precise mitigation behavior.
Intraday Traders who need real-time OB formation and entry alerts without chart clutter.
Swing Traders filtering only valid, well-sized OBs using ATR-based constraints.
Analysts & Educators requiring a reliable, visually consistent tool for teaching structure and mitigation.
Recommended Settings
Volume Pivot Length : 5–14 (balance sensitivity vs. selectivity).
Mitigation : Wick for responsiveness; Close for stricter confirmation.
OB Length (bars) : 10–50 for controlled reach; enable Extend until mitigation for live tracking.
ATR Filter : Min 0.25×, Max 3× to exclude noise while preserving meaningful blocks.
Labels : Position Bottom-Right (default), adjust label font color for readability on your theme.
In Short
Institutional logic. Clean execution. Professional clarity.
Order Blocks (SMC/ICT) — TradingATH presents structurally sound zones with precise mitigation handling and alerting—crafted for traders who demand both analytical accuracy and visual refinement.
Created by: TradingATH
Fair Value Gaps (SMC/ICT)Fair Value Gaps (SMC/ICT) — TradingATH
Precision. Imbalance. Opportunity.
This advanced indicator automatically detects and visualizes Fair Value Gaps (FVGs) revealing the inefficiencies left in price delivery where institutional order flow has displaced liquidity. Each gap is cleanly mapped, color-coded, and dynamically managed, helping traders identify where price may seek to rebalance in the future.
Engineered for Smart Money Concepts (SMC/ICT) Traders , it delivers a disciplined, minimal, and highly responsive visualization of market inefficiencies — enabling precise alignment with institutional order flow and mitigation behavior.
What You’ll See
Bullish FVGs represented as soft green zones indicating bullish imbalances where price is likely to revisit for rebalancing.
Bearish FVGs shown in refined red tones, marking bearish inefficiencies and potential short-term premium zones.
Dynamic or Static Mode — choose between continuously updating live zones or static historical boxes extending for a controlled bar length.
Smart Labels displayed within each zone identifying “Bullish FVG (Fair Value Gap)” or “Bearish FVG (Fair Value Gap)” with fully customizable text colors.
Mitigation Lines optionally plotted once price closes through a gap, confirming rebalancing and structural cleanup.
Optional Dashboard providing a clear count of active, mitigated, and total FVGs in both bullish and bearish contexts.
Features
Auto Detection Logic : Precisely identifies FVGs using refined three-candle displacement logic with adjustable threshold sensitivity.
Dynamic Zones : Live FVGs compress and evolve in real-time as price re-enters inefficiencies, maintaining structural accuracy.
Smart Mitigation : Automatically removes or softens zones once filled or mitigated, keeping your chart focused and clean.
Visual Precision : Professional color balance, typography, and spacing ensure a refined institutional-grade presentation.
Alert System : Configurable alerts for new FVG formations and mitigation events to stay aligned with live liquidity flow.
Performance Optimized : Built with efficient arrays and conditional logic for flawless responsiveness on all timeframes.
ICT/SMC Integration : Fully compatible with complementary SMC tools like Order Blocks, Liquidity Sweeps, and Market Structure Shifts.
Perfect For
SMC/ICT Traders analyzing price delivery imbalances and mitigation behavior.
Intraday Traders tracking high-probability rebalancing setups within institutional killzones.
Swing Traders identifying unmitigated imbalances as key areas of interest for future reversals.
Analysts & Educators who demand clarity, precision, and reliability in their institutional models.
Recommended Settings
Timeframe : 1H–4H (for structural precision).
Mode : Dynamic = off for backtesting; on for live reactive monitoring.
Extend : 20 bars for balanced visibility.
Threshold %: 0.10–0.25% for adaptive sensitivity.
Mitigation Lines : Enabled for visual confirmation of rebalancing.
In Short
Institutional logic. Visual clarity. Trading precision.
Fair Value Gaps (SMC/ICT) — TradingATH provides a clean, data-driven visualization of inefficiencies in price delivery, helping traders anticipate rebalancing and liquidity re-tests with exceptional clarity and professional design.
Created by: TradingATH
Market Opens + Killzones — New York, Tokyo & London (SMC/ICT)Market Opens + Killzones — New York, London & Tokyo (SMC/ICT) — TradingATH
Precision. Timing. Liquidity.
This refined overlay defines the world’s three dominant trading sessions — New York , London & Tokyo — plus their critical overlap. Each Opening and Killzone is plotted with full-height visual blocks and precise time anchoring, giving you an immediate understanding of when and where true price delivery begins.
Designed for ICT and SMC Traders , it provides a disciplined structure to navigate intraday volatility — aligning executions with the moments institutional liquidity enters the market.
What You’ll See
New York Killzone (08:30 – 10:30 NY) → Gray full-height Block
London Killzone (07:00 – 10:00 London) → Dark-gray Block
Tokyo Killzone (09:00 – 11:00 Tokyo) → Black Block
London–New York Overlap (13:30 – 16:00 London) → Blue Block
Session Opening Lines : Precise vertical markers with optional labels and customizable color, style, and width.
Every Block extends from chart top to bottom — forming crystal-clear time partitions that highlight where volatility and liquidity converge.
Features
True global time synchronization — automatic daylight-saving adjustment; no manual offset needed.
Full-height killzones — visually structured blocks that scale seamlessly across any timeframe.
Configurable session openings — control color, line width, label visibility, and transparency.
Daily auto-reset — clean, non-repainting visuals with no overlap or drift.
Lightweight performance — optimized rendering with zero lag, even on lower timeframes.
Perfect For
Intraday and Scalping Traders timing executions around session volatility.
ICT / Smart Money Concepts practitioners focusing on liquidity windows.
Traders seeking precise, time-based market context for entries and exits.
Recommended Settings
Line Width: 3–4 px for optimal visibility.
Block Transparency: 60 – 75 % for clean chart integration.
Focus: London + New York sessions for highest liquidity.
In Short
Simple. Accurate. Powerful.
Market Opens + Killzones — New York, London & Tokyo (SMC/ICT) delivers a clean, professional mapping of institutional trading hours — allowing you to trade exactly when the market moves with purpose.
Created by: TradingATH
ICT Kill zones ver 2ICT Kill zones :
London 02:00 - b5:00
NY 7:00 -10:00
NY Lunch
13:00 - 14:30
*all times are NYC times
MEGA_Long/Short📊 MTF Entry Signal (with L/S Labels)
A clean and compact multi-timeframe entry point indicator for TradingView. Shows clear entry signals for LONG and SHORT trades directly on the chart, with markers and letters for quick decision-making.
🎯 Key Features:
Dual timeframe analysis: Choose main and fast timeframes (default: 30m and 4h).
Entry signals:
🟢 Green triangle + "L" — LONG entry (Buy signal)
🔴 Red triangle + "S" — SHORT entry (Sell signal)
Signal only at true trend reversals – No excessive markers or noise.
Markers move dynamically with price – Always match the candlestick and chart movement.
⚙️ Signal Criteria:
LONG: EMA9 > EMA21 and MACD > 0, confirmed on both selected timeframes.
SHORT: EMA9 < EMA21 and MACD < 0, confirmed on both selected timeframes.
Entry marker appears only when signal direction changes.
🔧 Settings:
Manually select fast/main timeframes in the indicator menu (recommended: 30m + 4h).
Marker size set to minimal (size=tiny) for maximum clarity.
📈 Usage:
Designed for clean, non-overloaded charts.
Works perfectly for trend trading, reversals, and entry confirmation.
Suitable for scalping, swing trading, and crypto/futures analysis.
ICT London & NY Kill ZonesICT london and NYC kiill zones marked on the chart automatically - use with NY time zone
Kelly Wave Position Matrix 20251024 V1 ZENYOUNGA simple table is designed for use when opening a position. It applies the Kelly formula to calculate a more scientific position size based on win rate and risk–reward ratio. At the same time, it displays 1.65× ATR stop-loss levels for both long and short positions to serve as a reference for comparing with existing stop-loss placements.
Additionally, the table back-calculates the corresponding position size based on a 2% total capital loss limit, using the actual loss ratio. It also shows the current wave trend status as a pre-filtering condition.
Overall, this table integrates the core elements of trading — trend (wave confirmation), win rate, risk–reward ratio, and position sizing — making it an effective checklist before entering a trade. Its purpose is to help achieve a probabilistic edge and ensure positive expected value in trading decisions.
Market Opens + Killzones — New York, London & Tokyo (SMC/ICT)Market Opens + Killzones — New York, London & Tokyo (SMC/ICT) — PueblaATH
Trade where liquidity is born .
This clean, professional overlay marks the world’s three most influential trading sessions — New York , London , and Tokyo — plus the London–New York overlap, giving you an instant visual map of when and where real price delivery happens.
Every opening is drawn with precise session lines and full-height killzone blocks that extend from the very top to the very bottom of your chart — so you’ll never miss the market’s true rhythm again.
🔍 What You’ll See
New York Killzone (08:30 – 10:30 NY) → Gray block
London Killzone (07:00 – 10:00 London) → Dark-gray block
Tokyo Killzone (09:00 – 11:00 Tokyo) → Black block
London–New York Overlap (13:30 – 16:00 London) → Orange block
Each killzone fills the entire column, creating crystal-clear time partitions.
Session openings are marked with vertical lines (solid or dotted), labeled, and fully adjustable.
⚙️ Features
🌍 True market timezones — Auto-adjusts for daylight saving (no manual changes needed).
🕒 Session opening lines with customizable width, color, and label.
🧱 Full-height killzone blocks for maximum clarity on any timeframe.
🔄 Daily auto-reset — clean sessions, no repaint, no overlap.
🧭 Minimal, efficient, and accurate — ideal for ICT/SMC traders.
💡 Perfect For
Intraday & scalping traders who operate within session volatility.
ICT / Smart Money Concepts enthusiasts who time executions by liquidity windows.
Anyone wanting precise visual timing of market sessions on any pair or asset.
⚡ Quick Tips
Focus on London + New York if you trade major liquidity shifts.
Set line width to 3 – 4 for best visibility.
Keep block transparency between 60–75 % for a clean balance.
Combine with structure or liquidity tools for maximum precision.
🧠 In Short
“ Simple. Accurate. Powerful. ”
Instantly identify when true liquidity enters the market — and align your executions with the world’s most active trading hours.
Created by: PueblaATH
Wall Street Bell 🔔This will ring a bell at market open (9:30 AM EST) and close (4:00 PM EST), automatically adjusted to the user's local time zone, only on valid trading days.
✅ Automatic timezone conversion - Works in any timezone
✅ Weekdays only - No alerts on weekends
✅ Visual markers - Shows 🔔 labels on chart when bells ring
✅ Status dashboard - Shows which bells are enabled (top-right corner)
✅ Customizable - Toggle bells on/off in settings
Note: This excludes weekends automatically, but TradingView doesn't have a built-in holiday calendar for NYSE. On market holidays, you may need to manually disable the alerts for that day,
You'll need to create two separate alerts - one for the opening bell and one for the closing bell.
Market Opens + Killzones — Tokyo, London & New York (Pro)Market Opens + Institutional Killzones — Tokyo, London & New York (Pro)
This indicator automatically plots the opening times and Institutional Killzones for the three most important financial centers in the world: Tokyo, London, and New York.
Designed for SMC / ICT traders, it provides a precise visual map of when liquidity, volatility, and institutional order flow are most active.
🕓 Sessions Included:
Tokyo → Opening Line (09:00 JST) | Killzone 09:00–11:00 JST
London → Opening Line (08:00 London) | Killzone 07:00–10:00 London
New York → Opening Line (09:30 NY) | Killzone 08:30–10:30 NY
London–New York Overlap → 13:30–16:00 London / 08:30–11:00 NY
⚙️ Features:
Opening lines for each major market
Configurable colors, line styles, and transparencies
Optional Killzones (session blocks) for each region
Auto-adjusts for Daylight Saving Time (DST)
Works on any timeframe and any symbol
💡 Usage:
Use it to align your analysis with the times when institutional traders are active — the most likely moments for liquidity grabs, reversals, or true directional moves.
Combine with other concepts like Liquidity Pools, Fair Value Gaps, Order Blocks, and Session Bias for maximum precision.
© javierpueblamolina — Built for Smart Money Traders.
Name of tickerDescription:
This indicator displays the instrument’s ticker symbol and the current chart timeframe at the top center of the chart.
Features:
• Shows the ticker (e.g., BTCUSDT, AAPL, etc.).
• Displays the current timeframe (1m, 5m, 1H, 1D, etc.).
• Positioned at the top center of the chart for easy reference.
• Transparent background for minimal interference with price action.
• Lightweight and simple, no extra settings required.
Usage:
• Works with any instrument: stocks, crypto, futures.
• Useful for traders who want to always see the ticker and timeframe while analyzing the chart.
Settings:
• Text size can be adjusted in the script (text_size).
• Text and background colors can be customized (text_color, bgcolor).
Major Trading Sessions IndicatorsThis indicator displays vertical lines on your chart to mark the opening times of the major global trading sessions (Tokyo, Shanghai/HK, London, and New York). As a crypto trader I want to find price action patterns after sessions open.
It's fully customizable and extendable (you could add closing time for sessions as well)
Works best on short timeframes.
Features:
6 configurable vertical lines (4 preset for major sessions + 2 custom)
Each line shows a customizable label (e.g., "Tokyo", "London")
Individual time and color settings for each line
UTC offset for each line to handle Daylight Saving Time
Option to fix all labels at a specific price level for cleaner appearance (need to set and save it for each chart, it becomes a mess if you don't). Default behavior and limit of Pine Script is that it will be attached to the price wick.
Default Sessions:
Tokyo: 00:00 UTC (midnight)
Shanghai/HK: 01:30 UTC
London: 08:00 UTC (winter) - adjust offset to +1 for summer
New York: 13:00 UTC (winter) - adjust offset to -4 for summer
DST Adjustments:
Simply change the UTC offset when daylight saving time begins/ends:
London: 0 (winter) or +1 (summer)
New York: -5 (winter) or -4 (summer)
Lines extend from top to bottom of the chart and appear precisely when each session opens.
My preferred configuration: shorten names and reduce opacity of colors to 20-30%.
Realtime RenkoI've been working on real-time renko for a while as a coding challenge. The interesting problem here is building renko bricks that form based on incoming tick data rather than waiting for bar closes. Every tick that comes through gets processed immediately, and when price moves enough to complete a brick, that brick closes and a new one opens right then. It's just neat because you can run it and it updates as you'd expect with renko, forming bricks based purely on price movement happening in real time rather than waiting for arbitrary time intervals to pass.
The three brick sizing methods give you flexibility in how you define "enough movement" to form a new brick. Traditional renko uses a fixed price range, so if you set it to 10 ticks, every brick represents exactly 10 ticks of movement. This works well for instruments with stable tick sizes and predictable volatility. ATR-based sizing calculates the average true range once at startup using a weighted average across all historical bars, then divides that by your brick value input. If you want bricks that are one full ATR in size, you'd use a brick value of 1. If you want half-ATR bricks, use 2. This inverted relationship exists because the calculation is ATR divided by your input, which lets you work with multiples and fractions intuitively. Percentage-based sizing makes each brick a fixed percentage move from the previous brick's close, which automatically scales with price level and works well for instruments that move proportionally rather than in absolute tick increments.
The best part about this implementation is how it uses varip for state management. When you first load the indicator, there's no history at all. Everything starts fresh from the moment you add it to your chart because varip variables only exist in real-time. This means you're watching actual renko bricks form from real tick data as it arrives. The indicator builds its own internal history as it runs, storing up to 250 completed bricks in memory, but that history only exists for the current session. Refresh the page or reload the indicator and it starts over from scratch.
The visual implementation uses boxes for brick bodies and lines for wicks, drawn at offset bar indices to create the appearance of a continuous renko chart in the indicator pane. Each brick occupies two bar index positions horizontally, which spaces them out and makes the chart readable. The current brick updates in real time as new ticks arrive, with its high, low, and close values adjusting continuously until it reaches the threshold to close and become finalized. Once a brick closes, it gets pushed into the history array and a new brick opens at the closing level of the previous one.
What makes this especially useful for debugging and analysis are the hover tooltips on each brick. Clicking on any brick brings up information showing when it opened with millisecond precision, how long it took to form from open to close, its internal bar index within the renko sequence, and the brick size being used. That time delta measurement is particularly valuable because it reveals the pace of price movement. A brick that forms in five seconds indicates very different market conditions than one that takes three minutes, even though both bricks represent the same amount of price movement. You can spot acceleration and deceleration in trend development by watching how quickly consecutive bricks form.
The pine logs that generate when bricks close serve as breadcrumbs back to the main chart. Every time a brick finalizes, the indicator writes a log entry with the same information shown in the tooltip. You can click that log entry and TradingView jumps your main chart to the exact timestamp when that brick closed. This lets you correlate renko brick formation with what was happening on the time-based chart, which is critical for understanding context. A brick that closed during a major news announcement or at a key support level tells a different story than one that closed during quiet drift, and the logs make it trivial to investigate those situations.
The internal bar indexing system maintains a separate count from the chart's bar_index, giving each renko brick its own sequential number starting from when the indicator begins running. This makes it easy to reference specific bricks in your analysis or when discussing patterns with others. The internal index increments only when a brick closes, so it's a pure measure of how many bricks have formed regardless of how much chart time has passed. You can match these indices between the visual bricks and the log entries, which helps when you're trying to track down the details of a specific brick that caught your attention.
Brick overshoot handling ensures that when price blows through the threshold level instead of just barely touching it, the brick closes at the threshold and the excess movement carries over to the next brick. This prevents gaps in the renko sequence and maintains the integrity of the brick sizing. If price shoots up through your bullish threshold and keeps going, the current brick closes at exactly the threshold level and the new brick opens there with the overshoot already baked into its initial high. Without this logic, you'd get renko bricks with irregular sizes whenever price moved aggressively, which would undermine the whole point of using fixed-range bricks.
The timezone setting lets you adjust timestamps to your local time or whatever reference you prefer, which matters when you're analyzing logs or comparing brick formation times across different sessions. The time delta formatter converts raw milliseconds into human-readable strings showing days, hours, minutes, and seconds with fractional precision. This makes it immediately clear whether a brick took 12.3 seconds or 2 minutes and 15 seconds to form, without having to parse millisecond values mentally.
This is the script version that will eventually be integrated into my real-time candles library. The library version had an issue with tooltips not displaying correctly, which this implementation fixes by using a different approach to label creation and positioning. Running it as a standalone indicator also gives you more control over the visual settings and makes it easier to experiment with different brick sizing methods without affecting other tools that might be using the library version.
What this really demonstrates is that real-time indicators in Pine Script require thinking about state management and tick processing differently than historical indicators. Most indicator code assumes bars are immutable once closed, so you can reference `close ` and know that value will never change. Real-time renko throws that assumption out because the current brick is constantly mutating with every tick until it closes. Using varip for state variables and carefully tracking what belongs to finalized bricks versus the developing brick makes it possible to maintain consistency while still updating smoothly in real-time. The fact that there's no historical reconstruction and everything starts fresh when you load it is actually a feature, not a limitation, because you're seeing genuine real-time brick formation rather than some approximation of what might have happened in the past.
[PDR] Daily Rebalance█ OVERVIEW
This indicator is a powerful portfolio backtesting tool designed to simulate the performance of a static-weight, daily rebalancing strategy. It allows you to define a portfolio of up to 10 assets, set their target weights, and track its cumulative return against a user-defined benchmark and a risk-free rate.
The core of the script is its daily rebalancing logic, which calculates and logs every trade needed to bring the portfolio back to its target allocations at the close of each day. This provides a transparent and detailed view of how a static portfolio would have performed historically, including the impact of trading costs.
█ KEY FEATURES
Daily Rebalancing: Simulates a portfolio that is rebalanced at the close of every day to maintain target asset allocations.
Customizable Portfolio: Configure up to 10 different assets with specific weights. If all weights are left at 0, the script automatically creates an equal-weight portfolio from the selected assets.
Performance Comparison: Plots the portfolio's equity curve against a user-defined benchmark (e.g., SET:SET50 ) and a risk-free return, allowing for easy relative performance analysis.
Realistic Simulation: Accounts for trading costs like broker commission and minimum lot sizes for more accurate and grounded backtesting results.
Detailed Performance Metrics: An on-chart table displays real-time statistics, including Current Drawdown, Max Drawdown, and Total Return for both your portfolio and the benchmark.
Trade-by-Trade Logs: For full transparency, every rebalancing trade (BUY/SELL), including shares, price, notional value, and fees, is logged in the Pine Logs panel.
█ HOW TO USE
**Apply to a Daily Chart:** This script is designed to work exclusively on the daily ( 1D ) timeframe. Applying it to any other timeframe will result in a runtime error.
**Configure Settings:** Open the indicator's settings. Set your `Initial Capital`, `Start Time`, and the `Benchmark` symbol you wish to compare against.
**Define Your Assets:** In the 'Assets' group, check the box to enable each asset you want to include, select the symbol, and define its target `Weight (%)`.
**Set Trading Costs:** Adjust the `Broker Commission (%)` and `Minimal Buyable Lot` to match your expected trading conditions.
**Analyze the Results:** The performance curves are plotted in the indicator pane below your main chart. The key metrics table is displayed on the bottom-right of your chart.
**View Rebalancing Trades:** This is a crucial step for understanding the simulation. To see the detailed daily trades, you **must** open the **Pine Logs**. You can find this panel at the bottom of your TradingView window, next to the "Pine Editor" and "Strategy Tester" tabs. The logs provide a complete breakdown of every rebalancing action.
█ DISCLAIMER
This is a backtesting and simulation tool, not a trading signal generator. Its purpose is for research and performance analysis. Past performance is not indicative of future results. Always conduct your own research before making any investment decisions.
Material Color Palette Library█ OVERVIEW
Unlock a world of color in your Pine Script® projects with the Material Color Palette Library . This library provides a comprehensive and structured color system based on Google's Material Design palette, making it incredibly easy to create visually appealing and professional-looking indicators and strategies.
Forget about guessing hex codes. With this library, you have access to 19 distinct color families, each offering a wide range of shades. Every color can be fine-tuned with saturation, darkness, and opacity levels, giving you precise control over your script's appearance.
To make development even easier, the library includes a visual cheatsheet. Simply add the script to your chart to display a full table of all available colors and their corresponding parameters.
█ KEY FEATURES
Vast Spectrum: 19 distinct color families, from vibrant reds and blues to subtle greys and browns.
Fine-Tuned Control: Each color function accepts parameters for `saturationLevel` (1-13 or 1-9) and `darkLevel` (1-3) to select the perfect shade.
Opacity Parameter: Easily add transparency to any color for fills, backgrounds, or lines.
Quick Access Tones: A simple `tone()` function to grab base colors by name.
Visual Cheatsheet: An on-chart table displays the entire color palette, serving as a handy reference guide during development.
█ HOW TO USE
As a library, this script is meant to be imported into your own indicators or strategies.
1. Import the Library
Add the following line to the top of your script. Remember to replace `YourUsername` with your TradingView username.
import mastertop/ColorPalette/1 as colors
2. Call a Color Function
You can now use any of the exported functions to set colors for your plots, backgrounds, tables, and more.
The primary functions take three arguments: `functionName(saturationLevel, darkLevel, opacity)`
`saturationLevel`: An integer that controls the intensity of the color. Ranges from 1 (lightest) to 13 (most vibrant) for most colors, and 1-9 for `brown`, `grey`, and `blueGrey`.
`darkLevel`: An integer from 1 to 3 (1: light, 2: medium, 3: dark).
`opacity`: An integer from 0 (opaque) to 100 (invisible).
Example Usage:
Let's plot a moving average with a specific shade of teal.
// Import the library
import mastertop/ColorPalette/1 as colors
indicator("My Script with Custom Colors", overlay = true)
// Calculate a moving average
ma = ta.sma(close, 20)
// Plot the MA using a color from the library
// We'll use teal with saturation level 7, dark level 2, and 0% opacity
plot(ma, "MA", color = colors.teal(7, 2, 0), linewidth = 2)
3. Using the `tone()` Function
For quick access to a base color, you can use the `tone()` function.
// Set a red background with 85% transparency
bgcolor(colors.tone('red', 85))
█ VISUAL REFERENCE
To see all available colors at a glance, you can add this library script directly to your chart. It will display a comprehensive table showing every color variant. This makes it easy to pick the exact shade you need without guesswork.
This library is designed for fellow Pine Script® developers to streamline their workflow and enhance the visual quality of their scripts. Enjoy!
N Order EMAThe exponential moving average is one of the most fundamental tools in technical analysis, but its implementation is almost always locked to a single mathematical approach. I've always wanted to extend the EMA into an n-order filter, and after some time working through the digital signal processing mathematics, I finally managed to do it. This indicator takes the familiar EMA concept and opens it up to four different discretization methods, each representing a valid way to transform a continuous-time exponential smoother into a discrete-time recursive filter. On top of that, it includes adjustable filter order, which fundamentally changes the frequency response characteristics in ways that simply changing the period length cannot achieve.
The four discretization styles are impulse-matched, all-pole, matched z-transform, and bilinear (Tustin). The all-pole version is exactly like stacking multiple EMAs together but implemented in a single function with proper coefficient calculation. It uses a canonical form where you get one gain coefficient and the rest are zeros, with the feedback coefficients derived from the binomial expansion of the pole polynomial. The other three methods are attempts at making generalizations of the EMA in different ways. Impulse-matched creates the filter by matching the discrete-time impulse response to what the continuous EMA would produce. Matched z-transform directly maps the continuous poles to the z-domain using the exponential relationship. Bilinear uses the Tustin transformation with frequency prewarping to ensure the cutoff frequency is preserved despite the inherent warping of the mapping.
Honestly, they're all mostly the same in practice, which is exactly what you'd expect since they're all valid discretizations of the same underlying filter. The differences show up in subtle ways during volatile market conditions or in the exact phase characteristics, but for most trading applications the outputs will track each other closely. That said, the bilinear version works particularly well at low periods like 2, where other methods can sometimes produce numerical artifacts. I personally like the z-match for its clean frequency-domain properties, but the real point here is demonstrating that you can tackle the same problem from multiple mathematical angles and end up with slightly different but equally valid implementations.
The order parameter is where things get interesting. A first-order EMA is the standard single-pole recursive filter everyone knows. When you move to second-order, you're essentially cascading two filter sections, which steepens the roll-off in the frequency domain and changes how the filter responds to sudden price movements. Higher orders continue this progression. The all-pole style makes this particularly clear since it's literally stacking EMA operations, but all four discretization methods support arbitrary order. This gives you control over the aggressiveness of the smoothing that goes beyond just adjusting the period length.
On top of the core EMA calculation, I've included all the standard variants that people use for reducing lag. DEMA applies the EMA twice and combines the results to get faster response. TEMA takes it further with three applications. HEMA uses a Hull-style calculation with fractional periods, applying the EMA to the difference between a half-period EMA and a full-period EMA, then smoothing that result with the square root of the period. These are all implemented using whichever discretization method you select, so you're not mixing different mathematical approaches. Everything stays consistent within the chosen framework.
The practical upside of this indicator is flexibility for people building trading systems. If you need a moving average with specific frequency response characteristics, you can tune the order parameter instead of hunting for the right period length. If you want to test whether different discretization methods affect your strategy's performance, you can swap between them without changing any other code. For most users, the impulse-matched style at order 1 will behave almost identically to a standard EMA, which gives you a familiar baseline to work from. From there you can experiment with higher orders or different styles to see if they provide any edge in your particular market or timeframe.
What this really highlights is that even something as seemingly simple as an exponential moving average involves mathematical choices that usually stay hidden. The standard EMA formula you see in textbooks is already a discretized version of a continuous exponential decay, and there are multiple valid ways to perform that discretization. By exposing these options, this indicator lets you explore a parameter space that most traders never even know exists. Whether that exploration leads to better trading results is an empirical question that depends on your strategy and market, but at minimum it's a useful reminder that the tools we take for granted are built on arbitrary but reasonable mathematical decisions.
NY Session Range Box with Labeled Time MarkersShows opening time ny session by timing with lines to inform traders to avoid 11:30am to 1:30pm for choppy sessions and mark early and power hour .
Moving Average Trend Strategy V4.1 — Revised Version (Selectable✅ **Version Notes (V4.0)**
| Feature | Description |
| --------------------------------------- | -------------------------------------------------------- |
| 🧠 **Moving Average Type Options** | Choose from EMA / SMA / HMA / WMA |
| 🧱 **Take-Profit / Stop-Loss Switches** | Can be enabled or disabled independently |
| ⚙️ **Add Position Function** | Can be enabled or disabled independently |
| 🔁 **Add Position Signal Source** | Selectable between MA Crossover / MACD / RCI / RSI |
| 💹 **Adjustable Parameters** | All periods and percentages are customizable in settings |
---
✅ **Update Summary:**
| Function | Description |
| -------------------------------------- | --------------------------------------------------------------------- |
| **MA Type Selection** | Choose EMA / SMA / HMA / WMA in chart settings |
| **Take-Profit / Stop-Loss Percentage** | Configurable in the “Take-Profit & Stop-Loss” group |
| **Add / Reduce Position Percentage** | Adjustable separately in the “Add/Reduce Position” group |
| **MA Periods** | Customizable in the “Moving Average Parameters” section |
| **Code Structure** | Logic unchanged — only parameterization and selection functions added |
---
### **Strategy Recommendations:**
* **Trending Market:** Prefer EMA trend tracking or SAR indicators
* **Range-Bound Market:** Use ATR-based volatility stop-loss
* **Before Major Events:** Consider option hedging
* **Algorithmic Trading:** Recommend ATR + partial take-profit combination strategy
---
### **Key Parameter Optimization Logic:**
* Backtest different **ATR multipliers** (2–3× ATR)
* Test **EMA periods** (10–50 periods)
* Optimize **partial take-profit ratios**
* Adjust **maximum drawdown tolerance** (typically 30–50% of profit)
---
### **Risk Control Tips:**
* Avoid overly tight stop-losses that trigger too frequently
* During strong trends, consider widening take-profit targets
* Confirm trend continuation with **volume analysis**
* Adjust parameters based on **timeframe** (e.g., Daily vs Hourly)
---
### **Practical Example (Forex: EUR/USD):**
* **Entry:** Go long on breakout above 1.1200
* **Initial Stop-Loss:** 1.1150 (50 pips)
* **When profit reaches 1.1300:**
* Close 50% of position
* Move stop-loss to 1.1250 (lock in 50 pips profit)
* **When price rises to 1.1350:**
* Move stop-loss to 1.1300 (lock in 100 pips profit)
* **Final Outcome:**
* Price retraces to 1.1300, triggering take-profit
This method secured over **80% of trend profits** during the 2023 EUR rebound, capturing **23% more profit** compared to fixed take-profit strategies (based on backtest results).






















