AI Channels (Clustering) [LuxAlgo]The AI Channels indicator is constructed based on rolling K-means clustering, a common machine learning method used for clustering analysis. These channels allow users to determine the direction of the underlying trends in the price.
We also included an option to display the indicator as a trailing stop from within the settings.
🔶 USAGE
Each channel extremity allows users to determine the current trend direction. Price breaking over the upper extremity suggesting an uptrend, and price breaking below the lower extremity suggesting a downtrend. Using a higher Window Size value will return longer-term indications.
The "Clusters" setting allows users to control how easy it is for the price to break an extremity, with higher values returning extremities further away from the price.
The "Denoise Channels" is enabled by default and allows to see less noisy extremities that are more coherent with the detected trend.
Users who wish to have more focus on a detected trend can display the indicator as a trailing stop.
🔹 Centroid Dispersion Areas
Each extremity is made of one area. The width of each area indicates how spread values within a cluster are around their centroids. A wider area would suggest that prices within a cluster are more spread out around their centroid, as such one could say that it is indicative of the volatility of a cluster.
Wider areas around a specific extremity can indicate a larger and more spread-out amount of prices within the associated cluster. In practice price entering an area has a higher chance to break an associated extremity.
🔶 DETAILS
The indicator performs K-means clustering over the most recent Window Size prices, finding a number of user-specified clusters. See here to find more information on cluster detection.
The channel extremities are returned as the centroid of the lowest, average, and highest price clusters.
K-means clustering can be computationally expensive and as such we allow users to determine the maximum number of iterations used to find the centroids as well as the number of most historical bars to perform the indicator calculation. Do note that increasing the calculation window of the indicator as well as the number of clusters will return slower results.
🔶 SETTINGS
Window Size: Amount of most recent prices to use for the calculation of the indicator.
Clusters": Amount of clusters detected for the calculation of the indicator.
Denoise Channels: When enabled, return less noisy channels extremities, disabling this setting will return the exact centroids at each time but will produce less regular extremities.
As Trailing Stop: Display the indicator as a trailing stop.
🔹 Optimization
This group of settings affects the runtime performance of the script.
Maximum Iteration Steps: Maximum number of iterations allowed for finding centroids. Excessively low values can return a better script load time but poor clustering.
Historical Bars Calculation: Calculation window of the script (in bars).
Cari dalam skrip untuk "如何用wind搜索股票的发行价和份数"
Z-HistogramIt is possible to approximate the underlying distribution of a random variable by using what is called an "Histogram". In order to construct an histogram one must first split the data into several intervals (also called bins) often of the same size and count the number of values falling within each intervals, the histogram plot is then constructed with the X axis representing the measured variable and the Y axis representing the frequency.
The proposed script aim to estimate the underlying distribution of a rolling z-score by constructing its histogram, here the histogram consist of 13 bins of width 0.5 rolling standard deviations. The length setting define the rolling z-score period, the window setting define the number of past data to be counted, finally using the "Total" option (true by default) will count all the rolling z-scores values since the first bar, in order to use the window setting make sure to uncheck the "Total" option.
DISPLAY
In order to see the entirety of the histogram make sure to double click on the indicator window and to have all the lower panels (text notes, pine editor...etc) hidden, finally make sure to zoom-in in order to see the frequency numbers displayed.
Z-Histogram on BTCUSD 15 min TF, the blue bins represent intervals situated over 0 while red bins represent intervals situated under 0. Here σ represent the X-axis in standard deviations, the histogram start with a bin situated at σ = -3 which count the number of times the rolling z-score was within -3 and -2.5, the histogram end with the bin situated at σ = 3 which count the number of time the rolling z-score was within 3 and 3.5.
It is also possible to look at the shape of the histogram without having the indicator window at full size.
INTERPREATION
An histogram can give really interesting information such as overall trend direction and strength. The direction can be measured by looking at the skewness of the histogram, with a negative skewness (the peak of the histogram situated at the right from the center) representing down-trending variations and positive skewness (the peak of the histogram situated at the left from the center) representing up-trending variations, while a symmetrical histogram could represent a ranging market. The farther away the peak of the histogram is situated from the center, the stronger the trend.
Another interesting characteristic is the tailedness of the histogram, which can give information about the cleanliness of the trend, for example a positive skew and high tailedness would represent a clean up-trend, as it could suggest less variations contrary to the main trend.
An histogram applied to the rolling z-score can give various useful information. As a recall the rolling z-score of the price measure the distance between the closing price and its moving average in term of rolling standard deviations, for example if the rolling z-score is equal to 2 it means that the closing price is currently 2 rolling standard deviations over its moving average.
Lets for example analyze the histogram using INTC 15 min tf with a window of 456 bars and rolling z-score of length = 100 in order to review longer term variations.
We can see from the histogram that the uptrend visible on the chart is represented by the bins situated over 0 having an overall higher frequency than the bins under 0, we can see that the closing price tended to stay between 1 and 1.5 rolling standard deviations over its period 100 moving average. Here bins under 0 accounts for retracements in the trend.
IN SUMMARY
An histogram can give various information regarding the price evolution of a security, the proposed script aim to plot the histogram of a rolling z-score. Now this script might not be too useful but it was fun to make, also it does not mean that an histogram is not an useful tool in the context of trading, the only thing required is a god implementation of it (like volume profiles for example)
In this post we have also reviewed some important statistical concepts such as distributions, z-score, skewness and tailedness, each being extremely important in the quantitative trading field.
Thx for reading !
BEST Dollar Cost AverageHello traders
This is an upgraded version of my Dollar Cost Average (Data Window) script
1 - What is Dollar-Cost Averaging ( DCA )?
Dollar-Cost Averaging is a strategy that allows an investor to buy the same dollar amount of investment at regular intervals. The purchases occur regardless of the asset's price.
I hope you're hungry because that one is a biggie and gave me a few headaches. Happy that it's getting out of my way finally and I can offer it
🔸 This indicator will analyze for the defined date range, how a dollar-cost average ( DCA ) method would have performed (green panel) versus investing all the hard earnt money at the beginning (orange panel)
=> green versus orange
2- What's on the menu today?
My indicator works with all asset classes and with the daily/weekly/monthly inputs.
⚠️⚠️⚠️ However, results are only visible on the DAILY timeframe chart
As always, let's review quickly the different fields so that you'll understand how to use it (and I won't get spammed with questions in DM ^^)
🔸 Use current resolution: if checked will use the resolution of the chart
🔸 The timeframe used for DCA: different timeframe to be used if Use current resolution is unchecked
🔸 Amount invested in your local currency: The amount in Fiat money that will be invested at each period selected above
🔸 Starting Date
🔸 Ending Date
🔹 The script screenshot shows a DCA with 100 USD invested daily from 01.01.2017 to 01.28.2020
3- Bonus (DATA WINDOW)
🔸 Please check this screenshot to understand what you're supposed to see: Data window
And a quick video that I did months ago explaining how we can use this data window effectively
4 - Specifications used
I got the idea from this website dcabtc.com and the result shown by this website and my indicator are very interesting in general and for your own trading
The formula used for the DCA calculation is the one from the Investopedia website.
Best regards and best of luck
Dave
Currency Correlation indicator for the major currenciesThis Pine script creates a currency correlation graph with 6 correlations in a separate window below the main chart.
The indicator supports the following 8 currencies: AUD, CAD, CHF, EUR, GBP, JPY, NZD, USD
Correlations can be selected to be either related to the base or the counter currency (default is base). The length of the correlation can be chosen (default is 10).
Correlations are given for related currencies e.g. for all AUD pairs.
If Base currency is selected and e.g. AUDCAD is displayed in the main window, then the correlation window will compare AUDCAD to: AUDCHF, AUDEUR, AUDGBP, AUDJPY, AUDNZD, AUDUSD
If Counter currency is seleted and e.g. AUDCAD is displayed in the main window, then the correlation window will compare AUDCAD to: CHFCAD, EURCAD, GBPCAD, JPYCAD, NZDCAD, USDCAD
Many of the above currency pairs are not real pairs. But they are availabe in Pine script to enable e.g. correlation calculations.
The advantage is that e.g. the comparison between AUDCAD and EURAUD will give a positive correlation, if AUD is gaining in strenght and EUR and CAD are not changing in strenght.
Eventhough price is moving in the opposite direction the correlation is positive in the AUDCAD vs EURAUD example.
Moving Average Adaptive RSI [BackQuant]Moving Average Adaptive RSI
What this is
A momentum oscillator that reshapes classic RSI into a zero-centered column plot and makes it adaptive. It builds RSI from two parts:
• A sensitivity window that scans several recent bars to capture the strongest up and down impulses.
• A selectable moving average that smooths those impulses before computing RSI.
The output ranges roughly from −100 to +100 with 0 as the midline, with optional extra smoothing and built-in divergence detection.
How it works
Impulse extraction
• For each bar the script inspects the last rsi_sen bars and collects upward and downward price changes versus the current price.
• It keeps the maximum upward change and maximum downward change from that window, emphasizing true bursts over single-bar noise.
MA-based averaging
• The up and down impulse series are averaged with your chosen MA over rsi_len bars.
• Supported MA types: SMA, EMA, DEMA, WMA, HMA, SMMA (RMA), TEMA.
Zero-centered RSI transform
• RS = UpMA ÷ DownMA, then mapped to a symmetric scale: 100 − 200 ÷ (1 + RS) .
• Above 0 implies positive momentum bias. Below 0 implies negative momentum bias.
Optional extra smoothing
• A second smoothing pass can be applied to the final oscillator using smoothing_len and smooth_type . Toggle with “Use Extra Smoothing”.
Visual encoding
• The oscillator is drawn as columns around the zero line with a gradient that intensifies toward extremes.
• Static bands mark 80 to 100 and −80 to −100 for extreme conditions.
Key inputs and what they change
• Price Source : input series for momentum.
• Calculation Period (rsi_len) : primary averaging window on up and down components. Higher = smoother, slower.
• Sensitivity (rsi_sen) : how many recent bars are scanned to find max impulses. Higher = more responsive to bursts.
• Calculation Type (ma_type) : MA family that shapes the core behavior. HMA or DEMA is faster, SMA or SMMA is slower.
• Smoothing Type and Length : optional second pass to calm noise on the final output.
• UI toggles : show or hide the oscillator, candle painting, and extreme bands.
Reading the oscillator
• Midline cross up (0) : momentum bias turning positive.
• Midline cross down (0) : momentum bias turning negative.
• Positive territory :
– 0 to 40: constructive but not stretched.
– 40 to 80: strong momentum, continuation more likely.
– Above 80: extreme risk of mean reversion grows.
• Negative territory : mirror the same levels for the downside.
Divergence detection
The script plots four divergence types using pivot highs and lows on both price and the oscillator. Lookbacks are set by lbL and lbR .
• Regular bullish : price lower low, oscillator higher low. Possible downside exhaustion.
• Hidden bullish : price higher low, oscillator lower low. Bias to trend continuation up.
• Regular bearish : price higher high, oscillator lower high. Possible upside exhaustion.
• Hidden bearish : price lower high, oscillator higher high. Bias to trend continuation down.
Labels: ℝ for regular, ℍ for hidden. Green for bullish, red for bearish.
Candle coloring
• Optional bar painting: green when the oscillator is above 0, red when below 0. This is for visual scanning only.
Strengths
• Adaptive sensitivity via a rolling impulse window that responds to genuine bursts.
• Configurable MA core so you can match responsiveness to the instrument.
• Zero-centered scale for simple regime reads with 0 as a clear bias line.
• Built-in regular and hidden divergence mapping.
• Flexible across symbols and timeframes once tuned.
Limitations and cautions
• Trends can remain extended. Treat extremes as context rather than automatic reversal signals.
• Divergence quality depends on pivot lookbacks. Short lookbacks give more signals with more noise. Long lookbacks reduce noise but add lag.
• Double smoothing can delay zero-line transitions. Balance smoothness and timeliness.
Practical usage ideas
• Regime filter : only take long setups from your separate method when the oscillator is above 0, shorts when below 0.
• Pullback confirmation : in uptrends, look for dips that hold above 0 or turn up from 0 to 40. Reverse for downtrends.
• Divergence as a heads-up : wait for a zero-line cross or a price trigger before acting on divergence.
• Sensitivity tuning : start with rsi_sen 2 to 5 on faster timeframes, increase slightly on slower charts.
Alerts
• MA-A RSI Long : oscillator crosses above 0.
• MA-A RSI Short : oscillator crosses below 0.
Use these as bias or timing aids, not standalone trade commands.
Settings quick reference
• Calculation : Price Source, Calculation Type, Calculation Period, Sensitivity.
• Smoothing : Smoothing Type, Smoothing Length, Use Extra Smoothing.
• UI : Show Oscillator, Paint Candles, Show Static High and Low Levels.
• Divergences : Pivot Lookback Left and Right, Div Signal Length, Show Detected Divergences.
Final thoughts
This tool reframes RSI by extracting strong short-term impulses and averaging them with a moving-average model of your choice, then presenting a zero-centered output for clear regime reads. Pair it with your structure, risk and execution process, and tune sensitivity and smoothing to the market you trade.
Volumetric Support and Resistance [BackQuant]Volumetric Support and Resistance
What this is
This Overlay locates price levels where both structure and participation have been meaningful. It combines classical swing points with a volume filter, then manages those levels on the chart as price evolves. Each level carries:
• A reference price (support or resistance)
• An estimate of the volume that traded around that price
• A touch counter that updates when price retests it
• A visual box whose thickness is scaled by volatility
The result is a concise map of candidate support and resistance that is informed by both price location and how much trading occurred there.
How levels are built
Find structural pivots uses ta.pivothigh and ta.pivotlow with a user set sensitivity. Larger sensitivity looks for broader swings. Smaller sensitivity captures tighter turns.
Require meaningful volume computes an average volume over a lookback period and forms a volume ratio for the current bar. A pivot only becomes a level when the ratio is at least the volume significance multiplier.
Avoid clustering checks a minimum level distance (as a percent of price). If a candidate is too close to an existing level, it is skipped to keep the map readable.
Attach a volume strength to the level estimates volume strength by averaging the volume of recent bars whose high to low range spans that price. Levels with unusually high strength are flagged as high volume.
Store and draw levels are kept in an array with fields for price, type, volume, touches, creation bar, and a box handle. On the last bar, each level is drawn as a horizontal box centered at the price with a vertical thickness scaled by ATR. Borders are thicker when the level is marked high volume. Boxes can extend into the future.
How levels evolve over time
• Aging and pruning : levels are removed if they are too old relative to the lookback or if you exceed the maximum active levels.
• Break detection : a level can be removed when price closes through it by more than a break threshold set as a fraction of ATR. Toggle with Remove Broken Levels.
• Touches : when price approaches within the break threshold, the level’s touch counter increments.
Visual encoding
• Boxes : support boxes are green, resistance boxes are red. Box height uses an ATR based thickness so tolerance scales with volatility. Transparency is fixed in this version. Borders are thicker on high volume levels.
• Volume annotation : show the estimated volume inside the box or as a label at the right. If a level has more than one touch, a suffix like “(2x)” is appended.
• Extension : boxes can extend a fixed number of bars into the future and can be set to extend right.
• High volume bar tint : bars with volume above average × multiplier are tinted green if up and red if down.
Inputs at a glance
Core Settings
• Level Detection Sensitivity — pivot window for swing detection
• Volume Significance Multiplier — minimum volume ratio to accept a pivot
• Lookback Period — window for average volume and maintenance rules
Level Management
• Maximum Active Levels — cap on concurrently drawn levels
• Minimum Level Distance (%) — required spacing between level prices
Visual Settings
• Remove Broken Levels — drop a level once price closes decisively through it
• Show Volume Information on Levels — annotate volume and touches
• Extend Levels to Right — carry boxes forward
Enhanced Visual Settings
• Show Volume Text Inside Box — text placement option
• Volume Based Transparency and Volume Based Border Thickness — helper logic provided; current draw block fixes transparency and increases border width on high volume levels
Colors
• Separate colors for support, resistance, and their high volume variants
How it can be used
• Trade planning : use the most recent support and resistance as reference zones for entries, profit taking, or stop placement. ATR scaled thickness provides a practical buffer.
• Context for patterns : combine with breakouts, pullbacks, or candle patterns. A breakout through a high volume resistance carries more informational weight than one through a thin level.
• Prioritization : when multiple levels are nearby, prefer high volume or higher touch counts.
• Regime adaptation : widen sensitivity and increase minimum distance in fast regimes to avoid clutter. Tighten them in calm regimes to capture more granularity.
Why volume support and resistance is used in trading
Support and resistance relate to willingness to transact at certain prices. Volume measures participation. When many contracts change hands near a price:
• More market players hold inventory there, often creating responsive behavior on retests
• Order flow can concentrate again to defend or to exit
• Breaks can be cleaner as trapped inventory rebalances
Conditioning level detection on above average activity focuses attention on prices that mattered to more participants.
Alerts
• New Support Level Created
• New Resistance Level Created
• Level Touch Alert
• Level Break Alert
Strengths
• Dual filter of structure and participation, reducing trivial swing points
• Self cleaning map that retires old or invalid levels
• Volatility aware presentation using ATR based thickness
• Touch counting for persistence assessment
• Tunable inputs for instrument and timeframe
Limitations and caveats
• Volume strength is an approximation based on bars spanning the price, not true per price volume
• Pivots confirm after the sensitivity window completes, so new levels appear with a delay
• Narrow ranges can still cluster levels unless minimum distance is increased
• Large gaps may jump past levels and immediately trigger break conditions
Practical tuning guide
• If the chart is crowded: increase sensitivity, increase minimum level distance, or reduce maximum active levels
• If useful levels are missed: reduce volume multiplier or sensitivity
• If you want stricter break removal: increase the ATR based break threshold in code
• For instruments with session patterns: tailor the lookback period to a representative window
Interpreting touches and breaks
• First touch after creation is a validation test
• Multiple shallow touches suggest absorption; a later break may then travel farther
• Breaks on high current volume merit extra attention
Multi timeframe usage
Levels are computed on the active chart timeframe. A common workflow is to keep a higher timeframe instance for structure and a lower timeframe instance for execution. Align trades with higher timeframe levels where possible.
Final Thoughts
This indicator builds a lightweight, self updating map of support and resistance grounded in swings and participation. It is not a full market profile, but it captures much of the practical benefit with modest complexity. Treat levels as context and decision zones, not guarantees. Combine with your entry logic and risk controls.
XAU 1H Clean Confluence — Micro Table v2XAU 1H Clean Confluence — Micro Table
What it is
A clean, low-clutter 1-hour XAUUSD indicator that summarizes confluences in a compact on-chart table. It’s designed for traders who want structure + momentum + location without covering the chart in drawings.
Best used on: ICMARKETS:XAUUSD or your broker’s XAUUSD feed, 1H timeframe.
Style: Table-only by default (optional EMA200 line and tiny signal markers).
How signals are built (long example; shorts mirror)
A Long Confluence is printed when all of the below are true:
Trend alignment: EMA20 > EMA50 > EMA200
Pullback & re-engage: price crossed back above EMA20 after a pullback
RSI regime: RSI(14) crosses up through 50 (trend confirmation)
Displacement/imbalance: a 3-candle Bull FVG exists (low > high )
Structure: either a BOS up or CHOCH up via swing pivots (pivotLen input)
Sweep (optional): if enabled, require a sweep of Asian Low and/or PDL first
Time gating (optional): only during London/NY windows and outside news windows
Short signals use the mirrored conditions (EMA stack down, cross back below EMA20, RSI cross down through 50, Bear FVG, BOS/CHOCH down, optional Asian High/PDH sweep).
ICT Silver Bullet Zones (All Sessions)This Pine Script v6 indicator highlights the ICT Silver Bullet windows (10:00–11:00 local time) for all major forex/trading sessions: London, New York AM, New York PM, and Asia.
✅ Features:
Clearly visualizes Silver Bullet zones for each session.
Labels are centered inside each zone for easy identification.
Fully compatible with Pine Script v6 and TradingView.
Adjustable opacity and label size for better chart visibility.
Works on any timeframe and keeps historical zones visible.
Use Case:
Perfect for ICT strategy traders who want to identify high-probability trading windows during major market sessions. Helps in planning entries and understanding liquidity timing without cluttering the chart.
Instructions:
Add the script to your TradingView chart.
Adjust opacity and label size to suit your chart style.
Observe the SB zones for all sessions and plan trades according to ICT methodology.
VWAP For Loop [BackQuant]VWAP For Loop
What this tool does—in one sentence
A volume-weighted trend gauge that anchors VWAP to a calendar period (day/week/month/quarter/year) and then scores the persistence of that VWAP trend with a simple for-loop “breadth” count; the result is a clean, threshold-driven oscillator plus an optional VWAP overlay and alerts.
Plain-English overview
Instead of judging raw price alone, this indicator focuses on anchored VWAP —the market’s average price paid during your chosen institutional period. It then asks a simple question across a configurable set of lookback steps: “Is the current anchored VWAP higher than it was i bars ago—or lower?” Each “yes” adds +1, each “no” adds −1. Summing those answers creates a score that reflects how consistently the volume-weighted trend has been rising or falling. Extreme positive scores imply persistent, broad strength; deeply negative scores imply persistent weakness. Crossing predefined thresholds produces objective long/short events and color-coded context.
Under the hood
• Anchoring — VWAP using hlc3 × volume resets exactly when the selected period rolls:
Day → session change, Week → new week, Month → new month, Quarter/Year → calendar quarter/year.
• For-loop scoring — For lag steps i = , compare today’s VWAP to VWAP .
– If VWAP > VWAP , add +1.
– Else, add −1.
The final score ∈ , where N = (end − start + 1). With defaults (1→45), N = 45.
• Signal logic (stateful)
– Long when score > upper (e.g., > 40 with N = 45 → VWAP higher than ~89% of checked lags).
– Short on crossunder of lower (e.g., dropping below −10).
– A compact state variable ( out ) holds the current regime: +1 (long), −1 (short), otherwise unchanged. This “stickiness” avoids constant flipping between bars without sufficient evidence.
Why VWAP + a breadth score?
• VWAP aggregates both price and volume—where participants actually traded.
• The breadth-style count rewards consistency of the anchored trend, not one-off spikes.
• Thresholds give you binary structure when you need it (alerts, automation), without complex math.
What you’ll see on the chart
• Sub-pane oscillator — The for-loop score line, colored by regime (long/short/neutral).
• Main-pane VWAP (optional) — Even though the indicator runs off-chart, the anchored VWAP can be overlaid on price (toggle visibility and whether it inherits trend colors).
• Threshold guides — Horizontal lines for the long/short bands (toggle).
• Cosmetics — Optional candle painting and background shading by regime; adjustable line width and colors.
Input map (quick reference)
• VWAP Anchor Period — Day, Week, Month, Quarter, Year.
• Calculation Start/End — The for-loop lag window . With 1→45, you evaluate 45 comparisons.
• Long/Short Thresholds — Default upper=40, lower=−10 (asymmetric by design; see below).
• UI/Style — Show thresholds, paint candles, background color, line width, VWAP visibility and coloring, custom long/short colors.
Interpreting the score
• Near +N — Current anchored VWAP is above most historical VWAP checkpoints in the window → entrenched strength.
• Near −N — Current anchored VWAP is below most checkpoints → entrenched weakness.
• Between — Mixed, choppy, or transitioning regimes; use thresholds to avoid reacting to noise.
Why the asymmetric default thresholds?
• Long = score > upper (40) — Demands unusually broad upside persistence before declaring “long regime.”
• Short = crossunder lower (−10) — Triggers only on downward momentum events (a fresh breach), not merely being below −10. This combination tends to:
– Capture sustained uptrends only when they’re very strong.
– Flag downside turns as they occur, rather than waiting for an extreme negative breadth.
Tuning guide
Choose an anchor that matches your horizon
– Intraday scalps : Day anchor on intraday charts.
– Swing/position : Month or Quarter anchor on 1h/4h/D charts to capture institutional cycles.
Pick the for-loop window
– Larger N (bigger end) = stronger evidence requirement, smoother oscillator.
– Smaller N = faster, more reactive score.
Set achievable thresholds
– Ensure upper ≤ N and lower ≥ −N ; if N=30, an upper of 40 can never trigger.
– Symmetric setups (e.g., +20/−20) are fine if you want balanced behavior.
Match visuals to intent
– Enabling VWAP coloring lets you see regime directly on price.
– Background shading is useful for discretionary reading; turn it off for cleaner automation displays.
Playbook examples
• Trend confirmation with disciplined entries — On Month anchor, N=45, upper=38–42: when the long regime engages, use pullbacks toward anchored VWAP on the main pane for entries, with stops just beyond VWAP or a recent swing.
• Downside transition detection — Keep lower around −8…−12 and watch for crossunders; combine with price losing anchored VWAP to validate risk-off.
• Intraday bias filter — Day anchor on a 5–15m chart, N=20–30, upper ~ 16–20, lower ~ −6…−10. Only take longs while score is positive and above a midline you define (e.g., 0), and shorts only after a genuine crossunder.
Behavior around resets (important)
Anchored VWAP is hard-reset each period. Immediately after a reset, the series can be young and comparisons to pre-reset values may span two periods. If you prefer within-period evaluation only, choose end small enough not to bridge typical period length on your timeframe, or accept that the breadth test intentionally spans regimes.
Alerts included
• VWAP FL Long — Fires when the long condition is true (score > upper and not in short).
• VWAP FL Short — Fires on crossunder of the lower threshold (event-driven).
Messages include {{ticker}} and {{interval}} placeholders for routing.
Strengths
• Simple, transparent math — Easy to reason about and validate.
• Volume-aware by construction — Decisions reference VWAP, not just price.
• Robust to single-bar noise — Needs many lags to agree before flipping state (by design, via thresholds and the stateful output).
Limitations & cautions
• Threshold feasibility — If N < upper or |lower| > N, signals will never trigger; always cross-check N.
• Path dependence — The state variable persists until a new event; if you want frequent re-evaluation, lower thresholds or reduce N.
• Regime changes — Calendar resets can produce early ambiguity; expect a few bars for the breadth to mature.
• VWAP sensitivity to volume spikes — Large prints can tilt VWAP abruptly; that behavior is intentional in VWAP-based logic.
Suggested starting profiles
• Intraday trend bias : Anchor=Day, N=25 (1→25), upper=18–20, lower=−8, paint candles ON.
• Swing bias : Anchor=Month, N=45 (1→45), upper=38–42, lower=−10, VWAP coloring ON, background OFF.
• Balanced reactivity : Anchor=Week, N=30 (1→30), upper=20–22, lower=−10…−12, symmetric if desired.
Implementation notes
• The indicator runs in a separate pane (oscillator), but VWAP itself is drawn on price using forced overlay so you can see interactions (touches, reclaim/loss).
• HLC3 is used for VWAP price; that’s a common choice to dampen wick noise while still reflecting intrabar range.
• For-loop cap is kept modest (≤50) for performance and clarity.
How to use this responsibly
Treat the oscillator as a bias and persistence meter . Combine it with your entry framework (structure breaks, liquidity zones, higher-timeframe context) and risk controls. The design emphasizes clarity over complexity—its edge is in how strictly it demands agreement before declaring a regime, not in predicting specific turns.
Summary
VWAP For Loop distills the question “How broadly is the anchored, volume-weighted trend advancing or retreating?” into a single, thresholded score you can read at a glance, alert on, and color through your chart. With careful anchoring and thresholds sized to your window length, it becomes a pragmatic bias filter for both systematic and discretionary workflows.
Fibo Swing MFI by julzALGOOVERVIEW
Fibo Swing MFI by julzALGO blends MFI → RSI → Least-Squares smoothing to flag overbought/oversold swings and continuously plot Fibonacci retracements from the rolling high/low of the last 200 bars. It’s built to spot momentum shifts while giving you a clean, always-current fib map of the recent market range.
CORE PRINCIPLES
Hybrid Momentum Signal
- Uses MFI to integrate price and volume.
- Applies RSI to MFI for momentum clarity.
- Smooths the result with Least Squares regression to reduce noise.
Swing Identification
- Marks potential swing highs when momentum is overbought.
- Marks potential swing lows when momentum is oversold.
Fixed-Window Fibonacci Mapping
- Always calculates fib levels from the highest high and lowest low of the last 200 bars.
- This keeps fib zones consistent, independent of swing point detection.
Visual Clarity & Non-Repainting Logic
- Clean labels for OB/OS zones.
- Lines and levels update only as new bars confirm changes.
Adaptability
- Works on any market and timeframe.
- Adjustable momentum length, OB/OS thresholds, and smoothing.
HOW IT WORKS
- Computes Money Flow Index (MFI) from price & volume.
- Applies RSI to the MFI for clearer OB/OS momentum.
- Smooths the hybrid with a Least Squares (linear regression) filter.
- Swing labels appear when OB/OS conditions are met (green = swing low, red = swing high).
- Fibonacci retracements are always drawn from the highest high and lowest low of the last 200 bars (rolling window), independent of swing labels.
HOW TO USE
- Watch for OB/OS flips to mark potential swing highs/lows.
- Use the 200-bar fib grid as your active map of pullback levels and reaction zones.
- Combine fib reactions with your price action/volume cues for confirmation.
- Works across markets and timeframes.
SETTINGS
- Length – Period for both MFI and RSI.
- OB/OS Levels – Overbought/oversold thresholds (default 70/30).
- Smooth – Least-Squares smoothing length.
- Fibonacci Window – Fixed at 200 bars in this version (changeable in code via fibLen).
NOTES
- Logic is non-repainting aside from standard bar/label confirmation.
- Increase Length on very low timeframes to reduce noise.
- Swing labels help context; fibs are always based on the most recent 200-bar high/low range.
SUMMARY
Fibo Swing MFI by julzALGO is a momentum-plus-price action tool that merges MFI → RSI → smoothing to identify overbought/oversold swings and automatically plot Fibonacci retracements based on the rolling high/low of the last 200 bars. It’s designed to help traders quickly see potential reversal points and pullback zones, offering visual confluence between momentum shifts and fixed-window price structure.
DISCLAIMER
For educational purposes only. Not financial advice. Trade responsibly with proper risk management.
Post 9/21 EMA Cross — Paint X Bars* Watches for **9 EMA crossing the 21 EMA** (a classic momentum/trend trigger).
* When a cross happens, it **paints exactly X bars** after the cross in a color you choose:
* **Bullish cross (9 > 21):** paints your bullish color for X bars.
* **Bearish cross (9 < 21):** paints your bearish color for X bars.
* You decide whether the **cross bar itself counts** as the first painted bar.
* Optionally plots the 9 & 21 EMAs so you can see the cross visually.
# Why that’s useful
* **Focus:** It reduces noise by spotlighting the **immediate post‑cross window** when momentum often continues.
* **Discipline:** “Exactly X bars” forces consistency, avoiding “just one more bar” bias.
* **Speed:** Color‑coded candles make it easy to scan charts fast (great for intraday work).
# How signals are defined
* **Bullish condition:** `ta.crossover(EMA9, EMA21)` — the fast EMA crosses **up** through the slow EMA.
* **Bearish condition:** `ta.crossunder(EMA9, EMA21)` — the fast EMA crosses **down** through the slow EMA.
# Key inputs (and what they control)
* **Fast EMA Length (default 9)** and **Slow EMA Length (default 21)**
Change these if your system uses different lookbacks (e.g., 8/21 or 10/20).
***CURRENTLY THE EMA REMAINS STATIC ON THE CHART. PLOT EMA FROM EXTERNAL INDICATOR FOR NOW
* **Bars to Paint After a Cross (default 5)**
How many bars get highlighted post‑cross.
* **Include the Cross Bar Itself? (default off)**
Turn on if you want painting to start **on** the cross candle; off to start **after** it.
* **Bullish/Bearish Paint Colors**
Set your preferred colors (e.g., green/red).
* **Plot EMAs on Chart?**
If off, the logic still works; it just hides the EMA lines.
# What you’ll see on the chart
* Candles **recolored** for exactly X bars after each cross, matching the direction.
* (Optional) 9 & 21 EMA lines so you can confirm the cross visually.
* When the X‑bar window ends, candles return to normal until the **next** cross.
# Practical trading uses
* **Entry timing:** Consider entries only during the painted window to align with fresh momentum.
* **Scaling logic:** Scale in/out within the painted window; stop adding when painting ends.
* **Context filter:** Use the paint as a **“go / no‑go” overlay** on top of your pattern or level setups (breakouts, pullbacks to EMA, ORB, etc.).
Prev D/W/M + Asia & London Levels [Oeditrades]Prev D/W/M + Asia & London Levels
Author: Oeditrades
Platform: Pine Script® v6
What it does
Plots only the most recent, fully completed:
Previous Day / Week / Month highs & lows
Asia and London session highs & lows
Levels are drawn as true horizontal lines from the period/session start and extended to the right for easy confluence reading. The script is non-repainting.
How it works
Prev Day/Week/Month: Uses completed HTF candles (high / low ) so values are fixed for the entire next period.
Sessions (NY time): Asia (default 20:00–03:00) and London (default 03:00–08:00) are tracked in America/New_York time. High/low are locked when the session ends, and the line is anchored at that session’s start.
Inputs & customization
Visibility: toggle Previous Day/Week/Month, Asia, London, and labels.
Colors: highs default red; lows default green (user-configurable). Session highs default pink, lows aqua (also editable).
Style: line style (solid/dotted/dashed) and width.
Sessions: editable time windows for Asia and London (still interpreted in New York time).
Disclaimer: optional on-chart disclaimer panel with editable text.
Notes
Works on any timeframe. For intraday charts, the HTF values remain constant until the next HTF bar completes.
If your market’s overnight hours differ, simply adjust the session windows in Inputs.
Lines intentionally show only the latest completed period/session to keep charts clean.
Use cases
Quick view of PDH/PDL, PWH/PWL, PMH/PML for bias and liquidity.
Intraday planning around Asia/London range breaks, retests, and overlaps with prior levels.
Disclaimer
This tool is for educational purposes only and is not financial advice. Markets involve risk; past performance does not guarantee future results.
London & NY Session Markers + Pip MovementThis indicator visually marks the London and New York trading sessions on your chart and optionally calculates the pip range (high-low movement) during each session. It's specifically designed for Forex traders, helping you identify volatility windows and analyze market movement within major session times.
🔍 Key Features:
✅ Session Open/Close Markers
Draws vertical dotted lines at:
London Open (08:00 UK time)
London Close (11:00 UK time)
New York Open (14:00 UK time)
New York Close (17:00 UK time)
Each marker is labeled clearly ("London Open", "NY Close", etc.)
Uses color-coding for easy identification:
Aqua for London
Lime for New York
✅ Pip Range Display (Optional)
Measures the high-low price movement during each session.
Converts this movement into pips, using:
0.0001 pip size for most pairs
0.01 pip size for JPY pairs (auto-detected)
Displays a label (e.g., "London: 42.5 pips") above the candle at session close.
This feature can be toggled on/off via the settings panel.
✅ Time-Zone Aware
Session times are aligned to Europe/London time zone.
Adjusts automatically for Daylight Saving Time (DST).
✅ User Controls
Toggle visibility for:
London session markers
New York session markers
Pip range labels
📊 Use Cases:
Identify when liquidity and volatility increase, especially during session overlaps.
Analyze historical session-based volatility (e.g., compare NY vs. London pip ranges).
Combine with price action or indicator signals that work best in high-volume hours.
Optimize entry and exit timing based on session structure.
⚙️ Best Timeframes:
5-min to 1-hour charts for precise session tracking.
Works on Forex and CFD pairs with standard tick sizes.
⚠️ Notes:
This tool does not repaint and uses only completed bar data.
Pip calculation is based on the chart’s current symbol and tick size.
Designed for spot FX, not intended for cryptocurrencies or synthetic indices.
✅ Ideal For:
Forex Day Traders
Session-based Strategy Developers
London Breakout or NY Reversal Traders
Anyone analyzing volatility by session windows
High-Mid-Low 200 Day and Buy Levels and labels
Volume-Scaled PVR with Dynamic Buy Levels (ETF investing Visual Aid)
Description
This indicator is designed primarily for exchange-traded fund (ETF) traders and investors who seek a broad, visual tool to assist in identifying favorable buy and sell regions based on key price levels in relation to High and Lows of the ETF.
Key Features
Lookback Reference Levels:
Automatically identifies and plots key price levels within a user-defined lookback period:
Period High: Highest price in the lookback window.
Period Low: Lowest price in the lookback window.
Mid-Line: Midpoint between the period high and low.
Detailed Percentage Labels:
Displays percentage distances from the current price to the period high, period low, and their respective most recent occurrences, along with bar-counts for context, allowing quick assessment of price positioning relative to significant recent highs and lows.
Dynamic Buy-Level Lines for Multiple ETFs:
Supports a configurable list of ETF tickers with predefined buy price levels. When charting one of these ETFs, a horizontal line and label mark the specified buy price level, serving as a visual reminder or guide for entries.
Lightweight and Visual:
Designed to overlay directly on price charts with minimal clutter, providing clean and insightful visual references to inform buy-low and sell-high decisions.
How It Helps You
Offers broad, contextual cues to guide "buy low, sell high" strategies on ETFs by visualizing:
Where price currently stands within recent high/low ranges.
Specific buy price levels personalized for tracked ETFs as a check before committing.
Flexible lookback parameters allow tuning sensitivity to your preferred timeframes and trading style.
Usage Notes
Customize the list of ETFs and associated buy prices within the script via arrays to suit your watchlist. (Make a working copy to update Arrays, ensure pair matching).
Best applied on daily or higher timeframes for clearer trend dynamics.
This is a visual aid and should be combined with your own analysis and risk management techniques and other standard/established indicators.
Swing High/Low with Liquidity Sweeps🧠 Overview
This indicator identifies swing highs and swing lows based on user-defined candle lengths and checks for liquidity sweeps—situations where the price breaks a previous swing level but then closes back inside, indicating a potential false breakout or stop hunt. It also supports visual labeling and alerts for these events.
⚙️ Inputs
Swing Length (must be odd number ≥ 3):
Determines how many candles are used to identify swing highs/lows. The central candle must be higher or lower than all neighbors within the range.
Example: If swingLength = 5, the central candle must be higher/lower than the 2 candles on both sides.
Sweep Lookback (bars):
Defines how many bars to look back for possible liquidity sweeps.
Show Swing Labels (checkbox):
Optionally display labels on the chart when a swing high or low is detected.
Show Sweep Labels (checkbox):
Optionally display labels on the chart when a liquidity sweep occurs.
🕯️ Swing Detection Logic
A Swing High is detected when the high of the central candle is greater than the highs of all candles around it (as per the defined length).
A Swing Low is detected when the low of the central candle is lower than the lows of surrounding candles.
Swing labels are placed slightly above (for highs) or below (for lows) the candle.
💧 Liquidity Sweep Logic
A Sweep High is triggered if:
The current high breaks above a previously detected swing high,
And then the candle closes below that swing high,
Within the configured lookback window.
A Sweep Low is triggered if:
The current low breaks below a previous swing low,
And then closes above it,
Within the lookback window.
These are often seen as stop hunts or fake breakouts.
🔔 Alerts
Sweep High Alert: Triggered when a sweep above a swing high occurs.
Sweep Low Alert: Triggered when a sweep below a swing low occurs.
You can use these to set up TradingView alerts to notify you of potential liquidity grabs.
📊 Use Cases
Identifying market structure shifts.
Spotting fake breakouts and potential reversals.
Assisting in smart money concepts and liquidity-based trading.
Supporting entry timing in trend continuation or reversal strategies.
Timeframe Resistance Evaluation And Detection - CoffeeKillerTREAD - Timeframe Resistance Evaluation And Detection Guide
🔔 Important Technical Limitation 🔔
**This indicator does NOT fetch true higher timeframe data.** Instead, it simulates higher timeframe levels by aggregating data from your current chart timeframe. This means:
- Results will vary depending on what chart timeframe you're viewing
- Levels may not match actual higher timeframe candle highs/lows
- You might miss important wicks or gaps that occurred between chart timeframe bars
- **Always verify levels against actual higher timeframe charts before trading**
Welcome traders! This guide will walk you through the TREAD (Timeframe Resistance Evaluation And Detection) indicator, a multi-timeframe analysis tool developed by CoffeeKiller that identifies support and resistance confluence across different time periods.(I am 50+ year old trader and always thought I was bad a teaching and explaining so you get a AI guide. I personally use this on the 5 minute chart with the default settings, but to each there own and if you can improve the trend detection methods please DM me. I would like to see the code. Thanks)
Core Components
1. Dual Timeframe Level Tracking
- Short Timeframe Levels: Tracks opening price extremes within shorter periods
- Long Timeframe Levels: Tracks actual high/low extremes within longer periods
- Dynamic Reset Mechanism: Levels reset at the start of each new timeframe period
- Momentum Detection: Identifies when levels change mid-period, indicating active price movement
2. Visual Zone System
- High Zones: Areas between long timeframe highs and short timeframe highs
- Low Zones: Areas between long timeframe lows and short timeframe lows
- Fill Coloring: Dynamic colors based on whether levels are static or actively changing
- Momentum Highlighting: Special colors when levels break during active periods
3. Customizable Display Options
- Multiple Plot Styles: Line, circles, or cross markers
- Flexible Timeframe Selection: Wide range of short and long timeframe combinations
- Color Customization: Separate colors for each level type and momentum state
- Toggle Controls: Show/hide different elements based on trading preference
Main Features
Timeframe Settings
- Short Timeframe Options: 15m, 30m, 1h, 2h, 4h
- Long Timeframe Options: 1h, 2h, 4h, 8h, 12h, 1D, 1W
- Recommended Combinations:
- Scalping: 15m/1h or 30m/2h
- Day Trading: 30m/4h or 1h/4h
- Swing Trading: 4h/1D or 1D/1W
Display Configuration
- Level Visibility: Toggle short/long timeframe levels independently
- Fill Zone Control: Enable/disable colored zones between levels
- Momentum Fills: Special highlighting for actively changing levels
- Line Customization: Width, style, and color options for all elements
Color System
- Short TF High: Default red for resistance levels
- Short TF Low: Default green for support levels
- Long TF High: Transparent red for broader resistance context
- Long TF Low: Transparent green for broader support context
- Momentum Colors: Brighter colors when levels are actively changing
Technical Implementation Details
How Level Tracking Works
The indicator uses a custom tracking function that:
1. Detects Timeframe Periods: Uses `time()` function to identify when new periods begin
2. Tracks Extremes: Monitors highest/lowest values within each period
3. Resets on New Periods: Clears tracking when timeframe periods change
4. Updates Mid-Period: Continues tracking if new extremes are reached
The Timeframe Limitation Explained
`pinescript
// What the indicator does:
short_tf_start = ta.change(time(short_timeframe)) != 0 // Detects 30m period start
= track_highest(open, short_tf_start) // BUT uses chart TF opens!
// What true multi-timeframe would be:
// short_tf_high = request.security(syminfo.tickerid, short_timeframe, high)
`
This means:
- On a 5m chart with 30m/4h settings: Tracks 5m bar opens during 30m and 4h windows
- On a 1m chart with same settings: Tracks 1m bar opens during 30m and 4h windows
- Results will be different between chart timeframes
- May miss important price action that occurred between your chart's bars
Visual Elements
1. Level Lines
- Short TF High: Upper resistance line from shorter timeframe analysis
- Short TF Low: Lower support line from shorter timeframe analysis
- Long TF High: Broader resistance context from longer timeframe
- Long TF Low: Broader support context from longer timeframe
2. Zone Fills
- High Zone: Area between long TF high and short TF high (potential resistance cluster)
- Low Zone: Area between long TF low and short TF low (potential support cluster)
- Regular Fill: Standard transparency when levels are static
- Momentum Fill: Enhanced visibility when levels are actively changing
3. Dynamic Coloring
- Static Periods: Normal colors when levels haven't changed recently
- Active Periods: Momentum colors when levels are being tested/broken
- Confluence Zones: Different intensities based on timeframe alignment
Trading Applications
1. Support/Resistance Trading
- Entry Points: Trade bounces from zone boundaries
- Confluence Areas: Focus on areas where short and long TF levels cluster
- Zone Breaks: Enter on confirmed breaks through entire zones
- Multiple Timeframe Confirmation: Stronger signals when both timeframes align
2. Range Trading
- Zone Boundaries: Use fill zones as range extremes
- Mean Reversion: Trade back toward opposite zone when price reaches extremes
- Breakout Preparation: Watch for momentum color changes indicating potential breakouts
- Risk Management: Place stops outside the opposite zone
3. Trend Following
- Direction Bias: Trade in direction of zone breaks
- Pullback Entries: Enter on pullbacks to broken zones (now support/resistance)
- Momentum Confirmation: Use momentum coloring to confirm trend strength
- Multiple Timeframe Alignment: Strongest trends when both timeframes agree
4. Scalping Applications
- Quick Bounces: Trade rapid moves between zone boundaries
- Momentum Signals: Enter when momentum colors appear
- Short-Term Targets: Use opposite zone as profit target
- Tight Stops: Place stops just outside current zone
Optimization Guide
1. Timeframe Selection
For Different Trading Styles:
- Scalping: 15m/1h - Quick levels, frequent updates
- Day Trading: 30m/4h - Balanced view, good for intraday moves
- Swing Trading: 4h/1D - Longer-term perspective, fewer false signals
- Position Trading: 1D/1W - Major structural levels
2. Chart Timeframe Considerations
**Important**: Your chart timeframe affects results
- Lower Chart TF: More granular level tracking, but may be noisy
- Higher Chart TF: Smoother levels, but may miss important price action
- Recommended: Use chart timeframe 2-4x smaller than short indicator timeframe
3. Display Settings
- Busy Charts: Disable fills, show only key levels
- Clean Analysis: Enable all fills and momentum coloring
- Multi-Monitor Setup: Use different color schemes for easy identification
- Mobile Trading: Increase line width for visibility
Best Practices
1. Level Verification
- Always Cross-Check: Verify levels against actual higher timeframe charts
- Multiple Timeframes: Check 2-3 different chart timeframes for consistency
- Price Action Confirmation: Wait for candlestick confirmation at levels
- Volume Analysis: Combine with volume for stronger confirmation
2. Risk Management
- Stop Placement: Use zones rather than exact prices for stops
- Position Sizing: Reduce size when zones are narrow (higher risk)
- Multiple Targets: Scale out at different zone boundaries
- False Break Protection: Allow for minor zone penetrations
3. Signal Quality Assessment
- Momentum Colors: Higher probability when momentum coloring appears
- Zone Width: Wider zones often provide stronger support/resistance
- Historical Testing: Backtest on your preferred timeframe combinations
- Market Conditions: Adjust sensitivity based on volatility
Advanced Features
1. Momentum Detection System
The indicator tracks when levels change mid-period:
`pinescript
short_high_changed = short_high != short_high and not short_tf_start
`
This identifies:
- Active level testing
- Potential breakout situations
- Increased market volatility
- Trend acceleration points
2. Dynamic Color System
Complex conditional logic determines fill colors:
- Static Zones: Regular transparency for stable levels
- Active Zones: Enhanced colors for changing levels
- Mixed States: Different combinations based on user preferences
- Custom Overrides: User can prioritize certain color schemes
3. Zone Interaction Analysis
- Convergence: When short and long TF levels approach each other
- Divergence: When timeframes show conflicting levels
- Alignment: When both timeframes agree on direction
- Transition: When one timeframe changes while other remains static
Common Issues and Solutions
1. Inconsistent Levels
Problem: Levels look different on various chart timeframes
Solution: Always verify against actual higher timeframe charts
2. Missing Price Action
Problem: Important wicks or gaps not reflected in levels
Solution: Use chart timeframe closer to indicator's short timeframe setting
3. Too Many Signals
Problem: Excessive level changes and momentum alerts
Solution: Increase timeframe settings or reduce chart timeframe granularity
4. Lagging Signals
Problem: Levels seem to update too slowly
Solution: Decrease chart timeframe or use more sensitive timeframe combinations
Recommended Setups
Conservative Approach
- Timeframes: 4h/1D
- Chart: 1h
- Display: Show fills only, no momentum coloring
- Use: Swing trading, position management
Aggressive Approach
- Timeframes: 15m/1h
- Chart: 5m
- Display: All features enabled, momentum highlighting
- Use: Scalping, quick reversal trades
Balanced Approach
- Timeframes: 30m/4h
- Chart: 15m
- Display: Selective fills, momentum on key levels
- Use: Day trading, multi-session analysis
Final Notes
**Remember**: This indicator provides a synthetic view of multi-timeframe levels, not true higher timeframe data. While useful for identifying potential confluence areas, always verify important levels by checking actual higher timeframe charts.
**Best Results When**:
- Combined with actual multi-timeframe analysis
- Used for confluence confirmation rather than primary signals
- Applied with proper risk management
- Verified against price action and volume
**DISCLAIMER**: This indicator and its signals are intended solely for educational and informational purposes. The timeframe limitation means results may not reflect true higher timeframe levels. Always conduct your own analysis and verify levels independently before making trading decisions. Trading involves significant risk of loss.
Killzones [Plug&Play]Highlight the most important institutional trading hours with precision.
The Setup Agent Killzones indicator automatically plots vertical lines to mark the key “Killzone” windows each day — London (08:00–09:00) and New York (15:00–16:00), shown in UK time. These timeframes represent periods of high volatility, where smart money activity is most likely to create the day’s major moves.
How it works:
Instantly visualise the London and New York Killzones with subtle vertical lines.
Customise which sessions to show to fit your trading style.
Stay focused on the windows where market makers are most active.
Perfect for intraday traders and anyone using session-based strategies.
Combine with our session indicator for a complete Plug&Play edge.
Why EMA Isn't What You Think It IsMany new traders adopt the Exponential Moving Average (EMA) believing it's simply a "better Simple Moving Average (SMA)". This common misconception leads to fundamental misunderstandings about how EMA works and when to use it.
EMA and SMA differ at their core. SMA use a window of finite number of data points, giving equal weight to each data point in the calculation period. This makes SMA a Finite Impulse Response (FIR) filter in signal processing terms. Remember that FIR means that "all that we need is the 'period' number of data points" to calculate the filter value. Anything beyond the given period is not relevant to FIR filters – much like how a security camera with 14-day storage automatically overwrites older footage, making last month's activity completely invisible regardless of how important it might have been.
EMA, however, is an Infinite Impulse Response (IIR) filter. It uses ALL historical data, with each past price having a diminishing - but never zero - influence on the calculated value. This creates an EMA response that extends infinitely into the past—not just for the last N periods. IIR filters cannot be precise if we give them only a 'period' number of data to work on - they will be off-target significantly due to lack of context, like trying to understand Game of Thrones by watching only the final season and wondering why everyone's so upset about that dragon lady going full pyromaniac.
If we only consider a number of data points equal to the EMA's period, we are capturing no more than 86.5% of the total weight of the EMA calculation. Relying on he period window alone (the warm-up period) will provide only 1 - (1 / e^2) weights, which is approximately 1−0.1353 = 0.8647 = 86.5%. That's like claiming you've read a book when you've skipped the first few chapters – technically, you got most of it, but you probably miss some crucial early context.
▶️ What is period in EMA used for?
What does a period parameter really mean for EMA? When we select a 15-period EMA, we're not selecting a window of 15 data points as with an SMA. Instead, we are using that number to calculate a decay factor (α) that determines how quickly older data loses influence in EMA result. Every trader knows EMA calculation: α = 1 / (1+period) – or at least every trader claims to know this while secretly checking the formula when they need it.
Thinking in terms of "period" seriously restricts EMA. The α parameter can be - should be! - any value between 0.0 and 1.0, offering infinite tuning possibilities of the indicator. When we limit ourselves to whole-number periods that we use in FIR indicators, we can only access a small subset of possible IIR calculations – it's like having access to the entire RGB color spectrum with 16.7 million possible colors but stubbornly sticking to the 8 basic crayons in a child's first art set because the coloring book only mentioned those by name.
For example:
Period 10 → alpha = 0.1818
Period 11 → alpha = 0.1667
What about wanting an alpha of 0.17, which might yield superior returns in your strategy that uses EMA? No whole-number period can provide this! Direct α parameterization offers more precision, much like how an analog tuner lets you find the perfect radio frequency while digital presets force you to choose only from predetermined stations, potentially missing the clearest signal sitting right between channels.
Sidenote: the choice of α = 1 / (1+period) is just a convention from 1970s, probably started by J. Welles Wilder, who popularized the use of the 14-day EMA. It was designed to create an approximate equivalence between EMA and SMA over the same number of periods, even thought SMA needs a period window (as it is FIR filter) and EMA doesn't. In reality, the decay factor α in EMA should be allowed any valye between 0.0 and 1.0, not just some discrete values derived from an integer-based period! Algorithmic systems should find the best α decay for EMA directly, allowing the system to fine-tune at will and not through conversion of integer period to float α decay – though this might put a few traditionalist traders into early retirement. Well, to prevent that, most traditionalist implementations of EMA only use period and no alpha at all. Heaven forbid we disturb people who print their charts on paper, draw trendlines with rulers, and insist the market "feels different" since computers do algotrading!
▶️ Calculating EMAs Efficiently
The standard textbook formula for EMA is:
EMA = CurrentPrice × alpha + PreviousEMA × (1 - alpha)
But did you know that a more efficient version exists, once you apply a tiny bit of high school algebra:
EMA = alpha × (CurrentPrice - PreviousEMA) + PreviousEMA
The first one requires three operations: 2 multiplications + 1 addition. The second one also requires three ops: 1 multiplication + 1 addition + 1 subtraction.
That's pathetic, you say? Not worth implementing? In most computational models, multiplications cost much more than additions/subtractions – much like how ordering dessert costs more than asking for a water refill at restaurants.
Relative CPU cost of float operations :
Addition/Subtraction: ~1 cycle
Multiplication: ~5 cycles (depending on precision and architecture)
Now you see the difference? 2 * 5 + 1 = 11 against 5 + 1 + 1 = 7. That is ≈ 36.36% efficiency gain just by swapping formulas around! And making your high school math teacher proud enough to finally put your test on the refrigerator.
▶️ The Warmup Problem: how to start the EMA sequence right
How do we calculate the first EMA value when there's no previous EMA available? Let's see some possible options used throughout the history:
Start with zero : EMA(0) = 0. This creates stupidly large distortion until enough bars pass for the horrible effect to diminish – like starting a trading account with zero balance but backdating a year of missed trades, then watching your balance struggle to climb out of a phantom debt for months.
Start with first price : EMA(0) = first price. This is better than starting with zero, but still causes initial distortion that will be extra-bad if the first price is an outlier – like forming your entire opinion of a stock based solely on its IPO day price, then wondering why your model is tanking for weeks afterward.
Use SMA for warmup : This is the tradition from the pencil-and-paper era of technical analysis – when calculators were luxury items and "algorithmic trading" meant your broker had neat handwriting. We first calculate an SMA over the initial period, then kickstart the EMA with this average value. It's widely used due to tradition, not merit, creating a mathematical Frankenstein that uses an FIR filter (SMA) during the initial period before abruptly switching to an IIR filter (EMA). This methodology is so aesthetically offensive (abrupt kink on the transition from SMA to EMA) that charting platforms hide these early values entirely, pretending EMA simply doesn't exist until the warmup period passes – the technical analysis equivalent of sweeping dust under the rug.
Use WMA for warmup : This one was never popular because it is harder to calculate with a pencil - compared to using simple SMA for warmup. Weighted Moving Average provides a much better approximation of a starting value as its linear descending profile is much closer to the EMA's decay profile.
These methods all share one problem: they produce inaccurate initial values that traders often hide or discard, much like how hedge funds conveniently report awesome performance "since strategy inception" only after their disastrous first quarter has been surgically removed from the track record.
▶️ A Better Way to start EMA: Decaying compensation
Think of it this way: An ideal EMA uses an infinite history of prices, but we only have data starting from a specific point. This creates a problem - our EMA starts with an incorrect assumption that all previous prices were all zero, all close, or all average – like trying to write someone's biography but only having information about their life since last Tuesday.
But there is a better way. It requires more than high school math comprehension and is more computationally intensive, but is mathematically correct and numerically stable. This approach involves compensating calculated EMA values for the "phantom data" that would have existed before our first price point.
Here's how phantom data compensation works:
We start our normal EMA calculation:
EMA_today = EMA_yesterday + α × (Price_today - EMA_yesterday)
But we add a correction factor that adjusts for the missing history:
Correction = 1 at the start
Correction = Correction × (1-α) after each calculation
We then apply this correction:
True_EMA = Raw_EMA / (1-Correction)
This correction factor starts at 1 (full compensation effect) and gets exponentially smaller with each new price bar. After enough data points, the correction becomes so small (i.e., below 0.0000000001) that we can stop applying it as it is no longer relevant.
Let's see how this works in practice:
For the first price bar:
Raw_EMA = 0
Correction = 1
True_EMA = Price (since 0 ÷ (1-1) is undefined, we use the first price)
For the second price bar:
Raw_EMA = α × (Price_2 - 0) + 0 = α × Price_2
Correction = 1 × (1-α) = (1-α)
True_EMA = α × Price_2 ÷ (1-(1-α)) = Price_2
For the third price bar:
Raw_EMA updates using the standard formula
Correction = (1-α) × (1-α) = (1-α)²
True_EMA = Raw_EMA ÷ (1-(1-α)²)
With each new price, the correction factor shrinks exponentially. After about -log₁₀(1e-10)/log₁₀(1-α) bars, the correction becomes negligible, and our EMA calculation matches what we would get if we had infinite historical data.
This approach provides accurate EMA values from the very first calculation. There's no need to use SMA for warmup or discard early values before output converges - EMA is mathematically correct from first value, ready to party without the awkward warmup phase.
Here is Pine Script 6 implementation of EMA that can take alpha parameter directly (or period if desired), returns valid values from the start, is resilient to dirty input values, uses decaying compensator instead of SMA, and uses the least amount of computational cycles possible.
// Enhanced EMA function with proper initialization and efficient calculation
ema(series float source, simple int period=0, simple float alpha=0)=>
// Input validation - one of alpha or period must be provided
if alpha<=0 and period<=0
runtime.error("Alpha or period must be provided")
// Calculate alpha from period if alpha not directly specified
float a = alpha > 0 ? alpha : 2.0 / math.max(period, 1)
// Initialize variables for EMA calculation
var float ema = na // Stores raw EMA value
var float result = na // Stores final corrected EMA
var float e = 1.0 // Decay compensation factor
var bool warmup = true // Flag for warmup phase
if not na(source)
if na(ema)
// First value case - initialize EMA to zero
// (we'll correct this immediately with the compensation)
ema := 0
result := source
else
// Standard EMA calculation (optimized formula)
ema := a * (source - ema) + ema
if warmup
// During warmup phase, apply decay compensation
e *= (1-a) // Update decay factor
float c = 1.0 / (1.0 - e) // Calculate correction multiplier
result := c * ema // Apply correction
// Stop warmup phase when correction becomes negligible
if e <= 1e-10
warmup := false
else
// After warmup, EMA operates without correction
result := ema
result // Return the properly compensated EMA value
▶️ CONCLUSION
EMA isn't just a "better SMA"—it is a fundamentally different tool, like how a submarine differs from a sailboat – both float, but the similarities end there. EMA responds to inputs differently, weighs historical data differently, and requires different initialization techniques.
By understanding these differences, traders can make more informed decisions about when and how to use EMA in trading strategies. And as EMA is embedded in so many other complex and compound indicators and strategies, if system uses tainted and inferior EMA calculatiomn, it is doing a disservice to all derivative indicators too – like building a skyscraper on a foundation of Jell-O.
The next time you add an EMA to your chart, remember: you're not just looking at a "faster moving average." You're using an INFINITE IMPULSE RESPONSE filter that carries the echo of all previous price actions, properly weighted to help make better trading decisions.
EMA done right might significantly improve the quality of all signals, strategies, and trades that rely on EMA somewhere deep in its algorithmic bowels – proving once again that math skills are indeed useful after high school, no matter what your guidance counselor told you.
TLC sessionA Professional Intraday Session Tracker with VWAP and Economic Event Integration
Description
This indicator provides visual tracking of major trading sessions (Asian, London, New York) combined with VWAP calculations and macroeconomic event zones. It's designed for intraday traders who need to monitor session overlaps, liquidity periods, and high-impact news events.
The basic script of trading sessions was taken as a basis and refined for greater convenience.
Key Features:
Customizable Session Tracking: Visualize up to 3 trading sessions with adjustable time zones (supports IANA & GMT formats)
Dynamic VWAP Integration: Built-in Volume-Weighted Average Price calculation
Macro Event Zones: Highlights key economic announcement windows (adjustable for summer/winter time)
Price Action Visualization: Displays open/close prices, session ranges, and average price levels
Automatic DST Adjustment: Uses IANA timezone database for daylight savings awareness
How It Works
1. Trading Session Detection
Three fully configurable sessions (e.g., Asia, London, New York)
Each session displays:
Colored background zone
Opening price (dashed line)
Closing price (dashed line)
Average price (dotted line)
Optional label with session name
2. VWAP Calculation
Standard Volume-Weighted Average Price plotted as circled line
Helps identify fair value within each session
3. Macro Event Zones
Special highlighted period for economic news releases
Automatically adjusts for summer/winter time
Default set to 1000-1200 (summer) or 0900-1100 (winter) GMT-5 (US session open)
Why This Indicator is Unique
Multi-Session Awareness
Unlike simple session indicators, this tool:
Tracks price development within each session
Shows session overlaps (critical for volatility periods)
Maintains separate VWAP calculations across sessions
Professional-Grade Features
IANA timezone support (automatic DST handling)
Customizable visual elements (toggle labels, ranges, averages)
Object-based architecture (clean, efficient rendering)
News event integration (helps avoid trading during high-impact releases)
Usage Recommendations
Best Timeframes
1-minute to 1-hour charts (intraday focus)
Not recommended for daily+ timeframes
Trading Applications
1. Session Breakout Strategy: Trade breakouts when London/New York sessions open
2. VWAP Reversion: Fade moves that deviate too far from VWAP
3. News Avoidance: Reduce position sizing during macro event windows
Visual Example
Asian session (red)
London session (blue)
New York session (purple)
Macro event zone (white)
VWAP line (gold circles)
The basic script of trading sessions was taken as a basis and refined for greater convenience.
Dskyz (DAFE) MAtrix with ATR-Powered Precision Dskyz (DAFE) MAtrix with ATR-Powered Precision
This cutting‐edge futures trading strategy built to thrive in rapidly changing market conditions. Developed for high-frequency futures trading on instruments such as the CME Mini MNQ, this strategy leverages a matrix of sophisticated moving averages combined with ATR-based filters to pinpoint high-probability entries and exits. Its unique combination of adaptable technical indicators and multi-timeframe trend filtering sets it apart from standard strategies, providing enhanced precision and dynamic responsiveness.
imgur.com
Core Functional Components
1. Advanced Moving Averages
A distinguishing feature of the DAFE strategy is its robust, multi-choice moving averages (MAs). Clients can choose from a wide array of MAs—each with specific strengths—in order to fine-tune their trading signals. The code includes user-defined functions for the following MAs:
imgur.com
Hull Moving Average (HMA):
The hma(src, len) function calculates the HMA by using weighted moving averages (WMAs) to reduce lag considerably while smoothing price data. This function computes an intermediate WMA of half the specified length, then a full-length WMA, and finally applies a further WMA over the square root of the length. This design allows for rapid adaptation to price changes without the typical delays of traditional moving averages.
Triple Exponential Moving Average (TEMA):
Implemented via tema(src, len), TEMA uses three consecutive exponential moving averages (EMAs) to effectively cancel out lag and capture price momentum. The final formula—3 * (ema1 - ema2) + ema3—produces a highly responsive indicator that filters out short-term noise.
Double Exponential Moving Average (DEMA):
Through the dema(src, len) function, DEMA calculates an EMA and then a second EMA on top of it. Its simplified formula of 2 * ema1 - ema2 provides a smoother curve than a single EMA while maintaining enhanced responsiveness.
Volume Weighted Moving Average (VWMA):
With vwma(src, len), this MA accounts for trading volume by weighting the price, thereby offering a more contextual picture of market activity. This is crucial when volume spikes indicate significant moves.
Zero Lag EMA (ZLEMA):
The zlema(src, len) function applies a correction to reduce the inherent lag found in EMAs. By subtracting a calculated lag (based on half the moving average window), ZLEMA is exceptionally attuned to recent price movements.
Arnaud Legoux Moving Average (ALMA):
The alma(src, len, offset, sigma) function introduces ALMA—a type of moving average designed to be less affected by outliers. With parameters for offset and sigma, it allows customization of the degree to which the MA reacts to market noise.
Kaufman Adaptive Moving Average (KAMA):
The custom kama(src, len) function is noteworthy for its adaptive nature. It computes an efficiency ratio by comparing price change against volatility, then dynamically adjusts its smoothing constant. This results in an MA that quickly responds during trending periods while remaining smoothed during consolidation.
Each of these functions—integrated into the strategy—is selectable by the trader (via the fastMAType and slowMAType inputs). This flexibility permits the tailored application of the MA most suited to current market dynamics and individual risk management preferences.
2. ATR-Based Filters and Risk Controls
ATR Calculation and Volatility Filter:
The strategy computes the Average True Range (ATR) over a user-defined period (atrPeriod). ATR is then used to derive both:
Volatility Assessment: Expressed as a ratio of ATR to closing price, ensuring that trades are taken only when volatility remains within a safe, predefined threshold (volatilityThreshold).
ATR-Based Entry Filters: Implemented as atrFilterLong and atrFilterShort, these conditions ensure that for long entries the price is sufficiently above the slow MA and vice versa for shorts. This acts as an additional confirmation filter.
Dynamic Exit Management:
The exit logic employs a dual approach:
Fixed Stop and Profit Target: Stops and targets are set at multiples of ATR (fixedStopMultiplier and profitTargetATRMult), helping manage risk in volatile markets.
Trailing Stop Adjustments: A trailing stop is calculated using the ATR multiplied by a user-defined offset (trailOffset), which captures additional profits as the trade moves favorably while protecting against reversals.
3. Multi-Timeframe Trend Filtering
The strategy enhances its signal reliability by leveraging a secondary, higher timeframe analysis:
15-Minute Trend Analysis:
By retrieving 15-minute moving averages (fastMA15m and slowMA15m) via request.security, the strategy determines the broader market trend. This secondary filter (enabled or disabled through useTrendFilter) ensures that entries are aligned with the prevailing market direction, thereby reducing the incidence of false signals.
4. Signal and Execution Logic
Combined MA Alignment:
The entry conditions are based primarily on the alignment of the fast and slow MAs. A long condition is triggered when the current price is above both MAs and the fast MA is above the slow MA—complemented by the ATR filter and volume conditions. The reverse applies for a short condition.
Volume and Time Window Validation:
Trades are permitted only if the current volume exceeds a minimum (minVolume) and the current hour falls within the predefined trading window (tradingStartHour to tradingEndHour). An additional volume spike check (comparing current volume to a moving average of past volumes) further filters for optimal market conditions.
Comprehensive Order Execution:
The strategy utilizes flexible order execution functions that allow pyramiding (up to 10 positions), ensuring that it can scale into positions as favorable conditions persist. The use of both market entries and automated exits (with profit targets, stop-losses, and trailing stops) ensures that risk is managed at every step.
5. Integrated Dashboard and Metrics
For transparency and real-time analysis, the strategy includes:
On-Chart Visualizations:
Both fast and slow MAs are plotted on the chart, making it easy to see the market’s technical foundation.
Dynamic Metrics Dashboard:
A built-in table displays crucial performance statistics—including current profit/loss, equity, ATR (both raw and as a percentage), and the percentage gap between the moving averages. These metrics offer immediate insight into the health and performance of the strategy.
Input Parameters: Detailed Breakdown
Every input is meticulously designed to offer granular control:
Fast & Slow Lengths:
Determine the window size for the fast and slow moving averages. Smaller values yield more sensitivity, while larger values provide a smoother, delayed response.
Fast/Slow MA Types:
Choose the type of moving average for fast and slow signals. The versatility—from basic SMA and EMA to more complex ones like HMA, TEMA, ZLEMA, ALMA, and KAMA—allows customization to fit different market scenarios.
ATR Parameters:
atrPeriod and atrMultiplier shape the volatility assessment, directly affecting entry filters and risk management through stop-loss and profit target levels.
Trend and Volume Filters:
Inputs such as useTrendFilter, minVolume, and the volume spike condition help confirm that a trade occurs in active, trending markets rather than during periods of low liquidity or market noise.
Trading Hours:
Restricting trade execution to specific hours (tradingStartHour and tradingEndHour) helps avoid illiquid or choppy markets outside of prime trading sessions.
Exit Strategies:
Parameters like trailOffset, profitTargetATRMult, and fixedStopMultiplier provide multiple layers of risk management and profit protection by tailoring how exits are generated relative to current market conditions.
Pyramiding and Fixed Trade Quantity:
The strategy supports multiple entries within a trend (up to 10 positions) and sets a predefined trade quantity (fixedQuantity) to maintain consistent exposure and risk per trade.
Dashboard Controls:
The resetDashboard input allows for on-the-fly resetting of performance metrics, keeping the strategy’s performance dashboard accurate and up-to-date.
Why This Strategy is Truly Exceptional
Multi-Faceted Adaptability:
The ability to switch seamlessly between various moving average types—each suited to particular market conditions—enables the strategy to adapt dynamically. This is a testament to the high level of coding sophistication and market insight infused within the system.
Robust Risk Management:
The integration of ATR-based stops, profit targets, and trailing stops ensures that every trade is executed with well-defined risk parameters. The system is designed to mitigate unexpected market swings while optimizing profit capture.
Comprehensive Market Filtering:
By combining moving average crossovers with volume analysis, volatility thresholds, and multi-timeframe trend filters, the strategy only enters trades under the most favorable conditions. This multi-layered filtering reduces noise and enhances signal quality.
-Final Thoughts-
The Dskyz Adaptive Futures Elite (DAFE) MAtrix with ATR-Powered Precision strategy is not just another trading algorithm—it is a multi-dimensional, fully customizable system built on advanced technical principles and sophisticated risk management techniques. Every function and input parameter has been carefully engineered to provide traders with a system that is both powerful and transparent.
For clients seeking a state-of-the-art trading solution that adapts dynamically to market conditions while maintaining strict discipline in risk management, this strategy truly stands in a class of its own.
****Please show support if you enjoyed this strategy. I'll have more coming out in the near future!!
-Dskyz
Caution
DAFE is experimental, not a profit guarantee. Futures trading risks significant losses due to leverage. Backtest, simulate, and monitor actively before live use. All trading decisions are your responsibility.
RSI3M3+ v.1.8RSI3M3+ v.1.8 Indicator
This script is an advanced trading indicator based on Walter J. Bressert's cycle analysis methodology, combined with an RSI (Relative Strength Index) variation. Let me break it down and explain how it works.
Core Concepts
The RSI3M3+ indicator combines:
A short-term RSI (3-period)
A 3-period moving average to smooth the RSI
Bressert's cycle analysis principles to identify optimal trading points
RSI3M3+ Indicator VisualizationImage Walter J. Bressert's Cycle Analysis Concepts
Walter Bressert was a pioneer in cycle analysis trading who believed markets move in cyclical patterns that can be measured and predicted. His key principles integrated into this indicator include:
Trading Cycles: Markets move in cycles with measurable time spans from low to low
Timing Bands: Projected periods when the next cyclical low or high is anticipated
Oscillator Use: Using oscillators like RSI to confirm cycle position
Entry/Exit Rules: Specific rules for trade entry and exit based on cycle position
Key Parameters in the Script
Basic RSI Parameters
Required bars: Minimum number of bars needed (default: 20)
Overbought region: RSI level considered overbought (default: 70)
Oversold region: RSI level considered oversold (default: 30)
Bressert-Specific Parameters
Cycle Detection Length: Lookback period for cycle identification (default: 30)
Minimum/Maximum Cycle Length: Expected cycle duration in days (default: 15-30)
Buy Line: Lower threshold for buy signals (default: 40)
Sell Line: Upper threshold for sell signals (default: 60)
How the Indicator Works
RSI3M3 Calculation:
Calculates a 3-period RSI (sRSI)
Smooths it with a 3-period moving average (sMA)
Cycle Detection:
Identifies bottoms: When the RSI is below the buy line (40) and starting to turn up
Identifies tops: When the RSI is above the sell line (60) and starting to turn down
Records these points to calculate cycle lengths
Timing Bands:
Projects when the next cycle bottom or top should occur
Creates visual bands on the chart showing these expected time windows
Signal Generation:
Buy signals occur when the RSI turns up from below the oversold level (30)
Sell signals occur when the RSI turns down from above the overbought level (70)
Enhanced by Bressert's specific timing rules
Bressert's Five Trading Rules (Implemented in the Script)
Cycle Timing: The low must be 15-30 market days from the previous Trading Cycle bottom
Prior Top Validation: A Trading Cycle high must have occurred with the oscillator above 60
Oscillator Behavior: The oscillator must drop below 40 and turn up
Entry Trigger: Entry is triggered by a rise above the price high of the upturn day
Protective Stop: Place stop slightly below the Trading Cycle low (implemented as 99% of bottom price)
How to Use the Indicator
Reading the Chart
Main Plot Area:
Green line: 3-period RSI
Red line: 3-period moving average of the RSI
Horizontal bands: Oversold (30) and Overbought (70) regions
Dotted lines: Buy line (40) and Sell line (60)
Yellow vertical bands: Projected timing windows for next cycle bottom
Signals:
Green up arrows: Buy signals
Red down arrows: Sell signals
Trading Strategy
For Buy Signals:
Wait for the RSI to drop below the buy line (40)
Look for an upturn in the RSI from below this level
Enter the trade when price rises above the high of the upturn day
Place a protective stop at 99% of the Trading Cycle low
For Sell Signals:
Wait for the RSI to rise above the sell line (60)
Look for a downturn in the RSI from above this level
Consider exiting or taking profits when a sell signal appears
Alternative exit: When price moves below the low of the downturn day
Cycle Timing Enhancement:
Pay attention to the yellow timing bands
Signals occurring within these bands have higher probability of success
Signals outside these bands may be less reliable
Practical Tips for Using RSI3M3+
Timeframe Selection:
The indicator works best on daily charts for intermediate-term trading
Can be used on weekly charts for longer-term position trading
On intraday charts, adjust cycle lengths accordingly
Market Applicability:
Works well in trending markets with clear cyclical behavior
Less effective in choppy, non-trending markets
Consider additional indicators for trend confirmation
Parameter Adjustment:
Different markets may have different natural cycle lengths
You may need to adjust the min/max cycle length parameters
Higher volatility markets may need wider overbought/oversold levels
Trade Management:
Enter trades when all Bressert's conditions are met
Use the protective stop as defined (99% of cycle low)
Consider taking partial profits at the projected cycle high timing
Advanced Techniques
Multiple Timeframe Analysis:
Confirm signals with the same indicator on higher timeframes
Enter in the direction of the larger cycle when smaller and larger cycles align
Divergence Detection:
Look for price making new lows while RSI makes higher lows (bullish)
Look for price making new highs while RSI makes lower highs (bearish)
Confluence with Price Action:
Combine with support/resistance levels
Use with candlestick patterns for confirmation
Consider volume confirmation of cycle turns
This RSI3M3+ indicator combines the responsiveness of a short-term RSI with the predictive power of Bressert's cycle analysis, offering traders a sophisticated tool for identifying high-probability trading opportunities based on market cycles and momentum shifts.
THANK YOU FOR PREVIOUS CODER THAT EFFORT TO CREATE THE EARLIER VERSION THAT MAKE WALTER J BRESSERT CONCEPT IN TRADINGVIEW @ADutchTourist
Casa_SessionsLibrary "Casa_Sessions"
Advanced trading session management library that enhances TradingView's default functionality:
Key Features:
- Accurate session detection for futures markets
- Custom session hour definitions
- Drop-in replacements for standard TradingView session functions
- Flexible session map customization
- Full control over trading windows and market hours
Perfect for traders who need precise session timing, especially when working
with futures markets or custom trading schedules.
SetSessionTimes(session_type_input, custom_session_times_input, syminfo_type, syminfo_root, syminfo_timezone)
Parameters:
session_type_input (simple string) : Input string for session selection:
- 'Custom': User-defined session times
- 'FX-Tokyo': Tokyo forex session
- 'FX-London': London forex session
- 'FX-New York': NY forex session
- 'Overnight Session (ON)': After-hours trading
- 'Day Session (RTH)': Regular trading hours
custom_session_times_input (simple string) : Session parameter for custom time windows
Only used when session_type_input is 'Custom'
syminfo_type (simple string)
syminfo_root (simple string)
syminfo_timezone (simple string)
Returns:
session_times: Trading hours for selected session
session_timezone: Market timezone (relevant for forex)
getSessionMap()
Get futures trading session hours map
Keys are formatted as 'symbol:session', examples:
- 'ES:market' - Regular trading hours (RTH)
- 'ES:overnight' - Extended trading hours (ETH)
- 'NQ:market' - NASDAQ futures RTH
- 'CL:overnight' - Crude Oil futures ETH
Returns: Map
Key: Symbol:session identifier
Value: Session hours in format "HH:MM-HH:MM"
getSessionString(session, symbol, sessionMap)
Returns a session string representing the session hours (and days) for the requested symbol (or the chart's symbol if the symbol value is not provided). If the session string is not found in the collection, it will return a blank string.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
symbol (string) : The symbol to check. Optional. Defaults to chart symbol.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
inSession(session, sessionMap, barsBack)
Returns true if the current symbol is currently in the session parameters defined by sessionString.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
barsBack (int) : Private. Only used by futures to check islastbar. Optional. The default is 0.
ismarket(sessionMap)
Returns true if the current bar is a part of the regular trading hours (i.e. market hours), false otherwise. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar()
Returns true if the current bar is the first bar of the day's session, false otherwise. If extended session information is used, only returns true on the first bar of the pre-market bars. Works for futures (TradingView's methods do not).
Returns: bool
islastbar()
Returns true if the current bar is the last bar of the day's session, false otherwise. If extended session information is used, only returns true on the last bar of the post-market bars. Works for futures (TradingView's methods do not).
Returns: bool
ispremarket(sessionMap)
Returns true if the current bar is a part of the pre-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
ispostmarket(sessionMap)
Returns true if the current bar is a part of the post-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar_regular(sessionMap)
Returns true on the first regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
islastbar_regular(sessionMap)
Returns true on the last regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isovernight(sessionMap)
Returns true if the current bar is a part of the pre-market or post-market, false otherwise. On non-intraday charts always returns false.
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
getSessionHighAndLow(session, sessionMap)
Returns a tuple containing the high and low print during the specified session.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: A tuple containing
getSessionHigh(session, sessionMap)
Convenience function to return the session high. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The high of the session
getSessionLow(session, sessionMap)
Convenience function to return the session low. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The low of the session
VIDYA For-Loop | QuantEdgeB Introducing VIDYA For-Loop by QuantEdgeB
Overview
The VIDYA For-Loop indicator by QuantEdgeB is a dynamic trend-following tool that leverages Variable Index Dynamic Average (VIDYA) along with a rolling loop function to assess trend strength and direction. By utilizing adaptive smoothing and a recursive loop for threshold evaluation, this indicator provides a more responsive and robust signal framework for traders.
______
Key Components & Features
📌 VIDYA (Variable Index Dynamic Average)
- Adaptive Moving Average that adjusts its responsiveness based on market volatility.
- Uses a dynamic smoothing constant based on standard deviations.
- Allows for better trend detection compared to static moving averages.
📌 Loop Function (Rolling Calculation)
- A for-loop algorithm continuously compares VIDYA values over a defined lookback range.
- Measures the number of times price trends higher or lower within the rolling window.
- Generates a momentum-based score that helps quantify trend persistence.
📌 Trend Signal Calculation
- A long signal is triggered when the loop score exceeds the upper threshold.
- A short signal is triggered when the loop score falls below the lower threshold.
- The result is a clear directional bias that adapts to changing market conditions.
______
How It Works in Trading
✅ Detects Trend Strength – By measuring cumulative movements within a window.
✅ Filters Noise – Uses adaptive smoothing to avoid whipsaws.
✅ Dynamic Thresholds – Enables customized entry & exit conditions.
✅ Color-Coded Candles – Provides visual clarity for traders.
______
Visual Representation
Trend Signals:
🔵 Blue Candles – Strong Uptrend
🔴 Red Candles – Strong Downtrend
Thresholds:
📈 Long Threshold – Upper bound for bullish confirmation.
📉 Short Threshold – Lower bound for bearish confirmation.
Labels & Annotations (Optional):
✅ Long & Short Labels can be turned on or off for trade signal clarity.
📊 Display of entry & exit points based on loop calculations.
______
Settings:
VIDYA Length: 2 → Number of bars for VIDYA calculation.
SD Length: 5 → Standard deviation length for VIDYA calculation.
Source: Close → Defines the input data source (Close price).
Start Loop: 1 → Initial lookback period for the loop function.
End Loop: 60 → Maximum lookback range for trend scoring.
Long Threshold: 40 → Upper bound for a long signal.
Short Threshold: 10 → Lower bound for a short signal.
Extra Plots: True → Enables additional moving averages for visualization.
______
Conclusion
The VIDYA For-Loop by QuantEdgeB is a next-gen adaptive trend filter that combines dynamic smoothing with recursive trend evaluation, making it an invaluable tool for traders seeking precision and consistency in their strategies.
🔹 Who should use VIDYA For Loop :
📊 Trend-Following Traders – Helps identify sustained trends.
⚡ Momentum Traders – Captures strong price swings.
🚀 Algorithmic & Systematic Trading – Ideal for automated entries & exits.
🔹 Disclaimer: Past performance is not indicative of future results. No trading strategy can guarantee success in financial markets.
🔹 Strategic Advice: Always backtest, optimize, and align parameters with your trading objectives and risk tolerance before live trading.