ETF Trends//@Devendra Akolkar - @dakolkar - This indicator will compare and show relative performance of 3 symbols.
// It'll compare those 3 symbols on 3 different Timeframe (Weekly - 5 sessions , BiWeekly - 10 sessions and Monthly - 20 sessions) and display performance in %
Cari dalam skrip untuk "session"
VolatilityLibrary "Volatility"
Functions for determining if volatility (true range) is within or exceeds normal.
The "True Range" (ta.tr) is used for measuring volatility.
Values are normalized by the volume adjusted weighted moving average (VAWMA) to be more like percent moves than price.
current(len) Returns the current price adjusted volatitlity ratio.
Parameters:
len : Number of bars to get a volume adjusted weighted average price.
normal(len, maxDeviation, level, gapDays, spec, res) Returns the normal upper range of volatility. Compensates for overnight gaps within a regular session.
Parameters:
len : Number of bars to measure volatility.
maxDeviation : The limit of volatility before considered an outlier.
level : The amount of standard deviation after cleaning outliers to be considered within normal.
gapDays : The number of days in the past to measure overnight gap volaility.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
isNormal(len, maxDeviation, level, gapDays, spec, res) Returns true if the volatility (true range) is within normal levels. Compensates for overnight gaps within a regular session.
Parameters:
len : Number of bars to measure volatility.
maxDeviation : The limit of volatility before considered an outlier.
level : The amount of standard deviation after cleaning outliers to be considered within normal.
gapDays : The number of days in the past to measure overnight gap volaility.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
severity(len, maxDeviation, level, gapDays, spec, res) Returns ratio of the current value to the normal value. Compensates for overnight gaps within a regular session.
Parameters:
len : Number of bars to measure volatility.
maxDeviation : The limit of volatility before considered an outlier.
level : The amount of standard deviation after cleaning outliers to be considered within normal.
gapDays : The number of days in the past to measure overnight gap volaility.
spec : session.regular (default), session.extended or other time spec.
res : The resolution (default = '1440').
The Multi-day Central Pivot RangeThe indicator is a Multi-day CPR.
It shows CPR range as per yesterday's HLC and also CPR range for last n number of trading sessions.
For example: If you mention the value as two in Multi-day CPR (blue color) then it calculates the CPR using HLC of the last two trading sessions.
Also, the daily CPR is designed in such a way to highlight Virgin CPR (purple color) separately from the normal CPR(fuchsia color) .
CM Time Based Vertical LinesCM Time Based Lines
Requested by codetrader to Visually Show Day Change on Intra-Day Charts.
Custom Indicator: Ability To Plot Recurring Time Lines On Chart!
Example of Uses:
Plot Lines at Midnight to Show Daily Change.
Plot Lines at Opening of Different Sessions.
Plot Lines at Opening and Closing of Sessions.
Plot Lines Every 4 Hours (Forex) To See 4-Hour Price Action!
Ability to Change Times!
Ability to Plot Up To 6 Recurring Time Based Lines!
Plus Many Other Uses!
Ability To Turn On/Off Any of the 6 Customizable Lines in Inputs Tab!
Ability To Change Thickness of Lines to Cover Multiple Bars!
LANZ Strategy 4.0🔷 LANZ Strategy 4.0 — Trend Impulse Detection with Risk Management
LANZ Strategy 4.0 is a multi-indicator trend strategy designed for short to medium-term trading on any asset or timeframe. It combines Parabolic SAR, Supertrend, ADX, and time zone highlighting to detect and confirm trend impulses, while managing entries with dynamic Stop Loss (SL) and Take Profit (TP) levels.
🧠 Core Components:
Parabolic SAR: Identifies short-term trend reversals.
Supertrend: Highlights trend continuation zones.
ADX Filter: Ensures trend strength by filtering entries when ADX exceeds a defined threshold.
Impulse Detection Logic: Detects and confirms movement impulses with a counter, only generating trade signals on confirmed sequences.
Risk Management: Calculates dynamic SL/TP with a default risk-reward ratio of 1:2, minimum SL of 4 pts, and maximum of 12 pts.
📊 Visual Features:
Trend lines from Supertrend and SAR.
Colored background zones for different sessions (Asia, NY).
Labels and lines for entry, SL, and TP.
Movement number labels help visualize impulse progression.
Alerts when a new impulse is confirmed.
⚙️ How It Works:
The strategy waits for a confirmed impulse (i.e., change in SAR + Supertrend + ADX filter).
Once a valid impulse is confirmed:
A trade signal (BUY/SELL) is shown.
SL and TP levels are calculated and drawn.
The script monitors live price to determine if SL or TP is hit.
Impulse counter advances to label movement progression.
🔔 Alerts:
You will receive an alert each time a new valid impulse is confirmed, indicating a potential trading opportunity.
📝 Notes:
Script is intended for discretionary or assisted trading, not automated execution.
Works best during active sessions with visible trend direction.
You can adjust ATR period, multiplier, SL padding, and impulse thresholds.
Credits:
Developed by LANZ combines established technical indicators and original impulse-count logic.
EXODUS EXODUS by (DAFE) Trading Systems
EXODUS is a sophisticated trading algorithm built by Dskyz (DAFE) Trading Systems for competitive and competition purposes, designed to identify high-probability trades with robust risk management. this strategy leverages a multi-signal voting system, combining three core components—SPR, VWMO, and VEI—alongside ADX, choppiness filters, and ATR-based volatility gates to ensure trades are taken only in favorable market conditions. the algo uses a take-profit to stop-loss ratio, dynamic position sizing, and a strict voting mechanism requiring all signals to align before entering a trade.
EXODUS was not overfitted for any specific symbol. instead, it uses a generic tuned setting, making it versatile across various markets. while it can trade futures, it’s not currently set up for it but has the potential to do more with further development. visuals are intentionally minimal due to its competition focus, prioritizing performance over aesthetics. a more visually stunning version may be released in the future with enhanced graphics.
The Unique Core Components Developed for EXODUS
SPR (Session Price Recalibration)
SPR measures momentum during regular trading hours (RTH, 0930-1600, America/New_York) to catch session-specific trends.
spr_lookback = input.int(15, "SPR Lookback") this sets how many bars back SPR looks to calculate momentum (default 15 bars). it compares the current session’s price-volume score to the score 15 bars ago to gauge momentum strength.
how it works: a longer lookback smooths out the signal, focusing on bigger trends. a shorter one makes SPR more sensitive to recent moves.
how to adjust: on a 1-hour chart, 15 bars is 15 hours (about 2 trading days). if you’re on a shorter timeframe like 5 minutes, 15 bars is just 75 minutes, so you might want to increase it to 50 or 100 to capture more meaningful trends. if you’re trading a choppy stock, a shorter lookback (like 5) can help catch quick moves, but it might give more false signals.
spr_threshold = input.float (0.7, "SPR Threshold")
this is the cutoff for SPR to vote for a trade (default 0.7). if SPR’s normalized value is above 0.7, it votes for a long; below -0.7, it votes for a short.
how it works: SPR normalizes its momentum score by ATR, so this threshold ensures only strong moves count. a higher threshold means fewer trades but higher conviction.
how to adjust: if you’re getting too few trades, lower it to 0.5 to let more signals through. if you’re seeing too many false entries, raise it to 1.0 for stricter filtering. test on your chart to find a balance.
spr_atr_length = input.int(21, "SPR ATR Length") this sets the ATR period (default 21 bars) used to normalize SPR’s momentum score. ATR measures volatility, so this makes SPR’s signal relative to market conditions.
how it works: a longer ATR period (like 21) smooths out volatility, making SPR less jumpy. a shorter one makes it more reactive.
how to adjust: if you’re trading a volatile stock like TSLA, a longer period (30 or 50) can help avoid noise. for a calmer stock, try 10 to make SPR more responsive. match this to your timeframe—shorter timeframes might need a shorter ATR.
rth_session = input.session("0930-1600","SPR: RTH Sess.") rth_timezone = "America/New_York" this defines the session SPR uses (0930-1600, New York time). SPR only calculates momentum during these hours to focus on RTH activity.
how it works: it ignores pre-market or after-hours noise, ensuring SPR captures the main market action.
how to adjust: if you trade a different session (like London hours, 0300-1200 EST), change the session to match. you can also adjust the timezone if you’re in a different region, like "Europe/London". just make sure your chart’s timezone aligns with this setting.
VWMO (Volume-Weighted Momentum Oscillator)
VWMO measures momentum weighted by volume to spot sustained, high-conviction moves.
vwmo_momlen = input.int(21, "VWMO Momentum Length") this sets how many bars back VWMO looks to calculate price momentum (default 21 bars). it takes the price change (close minus close 21 bars ago).
how it works: a longer period captures bigger trends, while a shorter one reacts to recent swings.
how to adjust: on a daily chart, 21 bars is about a month—good for trend trading. on a 5-minute chart, it’s just 105 minutes, so you might bump it to 50 or 100 for more meaningful moves. if you want faster signals, drop it to 10, but expect more noise.
vwmo_volback = input.int(30, "VWMO Volume Lookback") this sets the period for calculating average volume (default 30 bars). VWMO weights momentum by volume divided by this average.
how it works: it compares current volume to the average to see if a move has strong participation. a longer lookback smooths the average, while a shorter one makes it more sensitive.
how to adjust: for stocks with spiky volume (like NVDA on earnings), a longer lookback (50 or 100) avoids overreacting to one-off spikes. for steady volume stocks, try 20. match this to your timeframe—shorter timeframes might need a shorter lookback.
vwmo_smooth = input.int(9, "VWMO Smoothing")
this sets the SMA period to smooth VWMO’s raw momentum (default 9 bars).
how it works: smoothing reduces noise in the signal, making VWMO more reliable for voting. a longer smoothing period cuts more noise but adds lag.
how to adjust: if VWMO is too jumpy (lots of false votes), increase to 15. if it’s too slow and missing trades, drop to 5. test on your chart to see what keeps the signal clean but responsive.
vwmo_threshold = input.float(10, "VWMO Threshold") this is the cutoff for VWMO to vote for a trade (default 10). above 10, it votes for a long; below -10, a short.
how it works: it ensures only strong momentum signals count. a higher threshold means fewer but stronger trades.
how to adjust: if you want more trades, lower it to 5. if you’re getting too many weak signals, raise it to 15. this depends on your market—volatile stocks might need a higher threshold to filter noise.
VEI (Velocity Efficiency Index)
VEI measures market efficiency and velocity to filter out choppy moves and focus on strong trends.
vei_eflen = input.int(14, "VEI Efficiency Smoothing") this sets the EMA period for smoothing VEI’s efficiency calc (bar range / volume, default 14 bars).
how it works: efficiency is how much price moves per unit of volume. smoothing it with an EMA reduces noise, focusing on consistent efficiency. a longer period smooths more but adds lag.
how to adjust: for choppy markets, increase to 20 to filter out noise. for faster markets, drop to 10 for quicker signals. this should match your timeframe—shorter timeframes might need a shorter period.
vei_momlen = input.int(8, "VEI Momentum Length") this sets how many bars back VEI looks to calculate momentum in efficiency (default 8 bars).
how it works: it measures the change in smoothed efficiency over 8 bars, then adjusts for inertia (volume-to-range). a longer period captures bigger shifts, while a shorter one reacts faster.
how to adjust: if VEI is missing quick reversals, drop to 5. if it’s too noisy, raise to 12. test on your chart to see what catches the right moves without too many false signals.
vei_threshold = input.float(4.5, "VEI Threshold") this is the cutoff for VEI to vote for a trade (default 4.5). above 4.5, it votes for a long; below -4.5, a short.
how it works: it ensures only strong, efficient moves count. a higher threshold means fewer trades but higher quality.
how to adjust: if you’re not getting enough trades, lower to 3. if you’re seeing too many false entries, raise to 6. this depends on your market—fast stocks like NQ1 might need a lower threshold.
Features
Multi-Signal Voting: requires all three signals (SPR, VWMO, VEI) to align for a trade, ensuring high-probability setups.
Risk Management: uses ATR-based stops (2.1x) and take-profits (4.1x), with dynamic position sizing based on a risk percentage (default 0.4%).
Market Filters: ADX (default 27) ensures trending conditions, choppiness index (default 54.5) avoids sideways markets, and ATR expansion (default 1.12) confirms volatility.
Dashboard: provides real-time stats like SPR, VWMO, VEI values, net P/L, win rate, and streak, with a clean, functional design.
Visuals
EXODUS prioritizes performance over visuals, as it was built for competitive and competition purposes. entry/exit signals are marked with simple labels and shapes, and a basic heatmap highlights market regimes. a more visually stunning update may be released later, with enhanced graphics and overlays.
Usage
EXODUS is designed for stocks and ETFs but can be adapted for futures with adjustments. it performs best in trending markets with sufficient volatility, as confirmed by its generic tuning across symbols like TSLA, AMD, NVDA, and NQ1. adjust inputs like SPR threshold, VWMO smoothing, or VEI momentum length to suit specific assets or timeframes.
Setting I used: (Again, these are a generic setting, each security needs to be fine tuned)
SPR LB = 19 SPR TH = 0.5 SPR ATR L= 21 SPR RTH Sess: 9:30 – 16:00
VWMO L = 21 VWMO LB = 18 VWMO S = 6 VWMO T = 8
VEI ES = 14 VEI ML = 21 VEI T = 4
R % = 0.4
ATR L = 21 ATR M (S) =1.1 TP Multi = 2.1 ATR min mult = 0.8 ATR Expansion = 1.02
ADX L = 21 Min ADX = 25
Choppiness Index = 14 Chop. Max T = 55.5
Backtesting: TSLA
Frame: Jan 02, 2018, 08:00 — May 01, 2025, 09:00
Slippage: 3
Commission .01
Disclaimer
this strategy is for educational purposes. past performance is not indicative of future results. trading involves significant risk, and you should only trade with capital you can afford to lose. always backtest and validate any strategy before using it in live markets.
(This publishing will most likely be taken down do to some miscellaneous rule about properly displaying charting symbols, or whatever. Once I've identified what part of the publishing they want to pick on, I'll adjust and repost.)
About the Author
Dskyz (DAFE) Trading Systems is dedicated to building high-performance trading algorithms. EXODUS is a product of rigorous research and development, aimed at delivering consistent, and data-driven trading solutions.
Use it with discipline. Use it with clarity. Trade smarter.
**I will continue to release incredible strategies and indicators until I turn this into a brand or until someone offers me a contract.
2025 Created by Dskyz, powered by DAFE Trading Systems. Trade smart, trade bold.
PumpC Opening Range Breakout (ORB) 5min Range📄 PumpC ORB 5-Minute Opening Range Breakout Indicator
✨ Overview
The PumpC ORB 5-Minute Opening Range Breakout indicator captures early session price action by tracking the high, low, and open of a defined 5-minute window at market open (customized for Futures or Stocks).
It plots breakout levels, extension targets, average range calculations, volume tracking, and provides visual and table-based data summaries.
This indicator is designed for traders seeking a complete, clean visualization of Opening Range Breakouts (ORB) with flexible customization.
⚙️ Main Features
Opening Range Box (ORB Box) Draws a box around the high and low of the first 5-minute session (8:30–8:35 ET for Futures, 9:30–9:35 ET for Stocks). Box extends from the session open to the session close (4:00 PM ET). Option to enable/disable historical boxes. Box color and opacity are customizable. Core ORB Levels Open Level: Plots the open price of the 5-minute ORB window. ORB Levels: Plots breakout levels at multiples: +0.5x the range +1.5x the range (customizable factor) Each level has independent color settings and visibility toggles. Option to show or hide historic extension levels. Table Display Compact table in the top-right corner showing: ORB ATR (average range) ORB ATR in ticks Today's ORB range ORB Volume ATR (average volume during ORB) Today's ORB Volume Volume is formatted automatically into "K" (thousands) or "M" (millions) for readability. Background Highlights After the ORB window closes: Blue highlight if today's ORB range is greater than the 10-day ATR average. Orange highlight if today's ORB range is smaller than the 10-day ATR average. Helps quickly assess relative strength or weakness compared to historical behavior. Alerts Breakout Confirmations: Fires when price closes above ORB High or below ORB Low. Fallout Traps: Alerts when price wick crosses ORB High/Low but closes back inside the range. Alerts use clean titles and simple messages for easy identification.
🔧 Inputs and Customization
Mode Toggle: Choose between Futures (8:30 ET open) or Stocks (9:30 ET open). Show/Hide Labels: Control label visibility for ORB and extension levels. Line Width Control: Customize thickness for ORB lines and extension levels. ORB Level Level Visibility: Independently enable or disable each extension line. Table Appearance: Customize table background color, font color, and padding. ORB Box Settings: Customize box color and control whether historical boxes are drawn.
📚 How to Use
Select Mode: Choose Futures or Stocks depending on your instrument. Observe the Opening Range: Focus on the ORB High and ORB Low during the first 5 minutes after the open. Monitor Breakouts: Breakout alerts will fire when price closes outside the ORB range, signaling potential continuation. Watch for Fallout Traps: Fallout alerts signal when price briefly wicks above/below but closes back inside the ORB range. Use Table Metrics: Instantly compare today's ORB range and volume versus historical averages to assess session strength or weakness.
🛡️ Notes
Best used on the 1-minute or 5-minute chart for intraday trading. Ensure your TradingView chart time zone is set to New York for correct functioning. Alerts must be manually configured after adding the indicator to your chart.
RTH and ETH RangesKey Functions :
Visualizes Regular Trading Hours (RTH) and Extended Trading Hours (ETH) price ranges
Tracks session highs, lows, and 50% levels where significant market reactions occur
Detects breakouts beyond previous session extremes
Trading Applications :
Exposes potential liquidity raids at session boundaries where smart money targets stop orders
Identifies critical price thresholds where institutional activity concentrates
Highlights divergences between RTH and ETH behavior that precede directional moves
Provides measurement of session volatility differences
Maps key price levels for objective entry and exit parameters
Reveals market dynamics at session transitions where institutional positioning changes
Highlight Time of InterestEST Time Period Background Indicator
This TradingView indicator visually highlights up to four custom-defined time periods on your chart using distinct background colors.
Key Features:
Custom Time Periods: Define up to four separate time intervals with individual start and end times, perfect for emphasizing key trading sessions or events.
Automatic Time zone Conversion: Automatically calculates the offset between the broker’s time zone and New York time (EST) so that your periods are correctly aligned with the Eastern market hours.
Visual Clarity:*Each period can be assigned a unique background color, providing clear visual cues directly on your chart for easier analysis and decision-making.
This indicator is ideal for traders who need a clear, automated visual reference for specific trading sessions or periods, streamlining the analysis process by highlighting critical timeframes directly on the chart.
Daily separator, Open, HTF candlesScript Overview
This TradingView script is designed to enhance market structure analysis by providing a clear visual representation of key trading elements. It integrates multiple technical features that help traders assess price action, trend direction, and potential trade setups efficiently.
Main Features & Functionality
1. Daily Separator
• A vertical line is plotted to clearly mark the start of each trading day.
• Helps traders visually differentiate daily sessions, making it easier to analyze price action over different periods.
2. Exponential Moving Average (EMA) with EMA Continuity Table
• The script calculates an EMA of choice and displays whether the price is above or below it across five customizable timeframes.
• Use Case:
• Identifies if the price is in a retracement or a trend continuation phase.
• Helps determine trend strength—if price is consistently above the EMA across multiple timeframes, the trend is bullish; if below, it’s bearish.
• Aids in making trading decisions such as whether to go long or short.
3. Higher Timeframe (HTF) Candles
• Plots candles from a higher timeframe (HTF) onto the current chart.
• Use Case:
• Provides a macro view of price action while trading on a lower timeframe.
• Helps traders see if the price is interacting with HTF support/resistance levels.
• Useful for confirming entries/exits based on the HTF trend.
4. Opening Line
• Draws a daily opening price level, allowing traders to track price movement relative to the open.
• Use Case:
• Useful for intraday traders who analyze whether price is holding above or below the daily open.
• Helps in identifying key price behaviors, such as breakouts, fakeouts, or potential reversals.
Additional Considerations
• Customization: The script allows traders to adjust key parameters such as the EMA length, timeframes for EMA continuity, and HTF candle settings.
• Market Structure & Decision Making: By combining EMAs, HTF analysis, and the daily open, the script assists traders in determining whether price action aligns with their trade thesis.
• Potential Enhancements:
• Adding alerts for EMA crossovers or when price crosses the daily open.
• Incorporating color coding for the EMA table to improve readability.
Use Case Summary
This script is particularly beneficial for trend-following traders, intraday traders, and swing traders who want to:
1. Confirm market direction with EMA-based trend analysis.
2. Monitor HTF price action while trading on lower timeframes.
3. Track intraday price movement relative to the daily open.
4. Differentiate trading sessions for better structure analysis.
Gap Down Reversal Strategy█ STRATEGY OVERVIEW
The "Gap Down Reversal Strategy" capitalizes on price recovery patterns following bearish gap-down openings. This mean-reversion approach enters long positions on confirmed intraday recoveries and exits when prices breach previous session highs. This strategy is NOT optimized.
█ What is a Gap Down Reversal?
A gap down reversal occurs when:
An instrument opens significantly below its prior session's low (price gap)
Selling pressure exhausts itself during the session
Buyers regain control, pushing price back above the opening level
Creates a candlestick with:
• Open < Prior Session Low (true gap)
• Close > Open (bullish reversal candle)
█ SIGNAL GENERATION
1. LONG ENTRY CONDITION
Previous candle closes BELOW its opening price (bearish candle)
Current session opens BELOW prior candle's low (gap down)
Current candle closes ABOVE its opening price (bullish reversal)
Executes market order at session close
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the highest high of the previous seven bars (`close > _highest `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ PERFORMANCE OVERVIEW
Ideal Market: High volatility instruments with frequent gaps
Key Risk: False reversals in sustained downtrends
Optimization Tip: Test varying gap thresholds (1-3% ranges)
Volume EquilibriumThe intent behind this indicator is to provide comprehensive information relating to volume compared to multiple timeframes. This indicator allows one to see what the market 'theoretically' sees as 'fair-value' whilst also allowing one to gauge where the price of a stock is headed.
Volume Equilibrium
The main indicator finds the difference between buying volume and selling volume, under the basic presumption that more buying volume indicates greater bullish sentiment and vice versa.
Buying Volume = volume when close price is higher than open price.
Selling Volume = volume when close price is lower than open price.
Volume Balance = Cumulative Buying Volume − Cumulative Selling Volume
Volume Balance is then expressed as a percentage by dividing by total volume
This indicator is composed of three different lengths of the same indicator. Short, Mid, and Long term representations of Volume Equilibrium. The difference between the mid and long term are highlighted so to make it easy to see where volume is going relative to a longer time frame.
HOW TO USE:
At 0 ---> Equilibrium ---> Equal Buying/Selling Volume
Above 0 ---> More buying Volume
Below 0 ---> More selling Volume
Using theory, it is assumed that the price is at a 'fair-value' when the buying/selling volume is at 0. This is of course relative to the respective timeframe of your choosing. More weight given to larger timeframes.
Volume Histogram
It is a basic volume chart that represents the total volume though has highlighted bars so to indicate buying(green) and selling(red) volume. This allows one to see what the indicator is based off of.
Open-Close Oscillator(not needed)
Calculates the average open-close for a selected timeframe and then provides the current closing price relative to that average open-close. Very simply put, values below 0 indicate bearish and values above 0 generally indicate bullishness. This indicator is for a quick reference of price action relative to volume.
Another way to use this indicator, though unique, is to analyze the separate open-close lines themselves. Using the open-close bands, bullishness is defined as increasing closing prices and bearish as decreasing closing prices. So, in regard to this indicator, bear sessions can be indicated by the opening line being below the closing line and bull sessions as the opening line being above. Use the 'flip' of these lines to your advantage, they are very helpful at capturing long continuous sentiment.
This indicator is composed of great information though I still think it best to use many different indicators to help you with your trades.
NOTE: Be aware of what we are trying to analyze, Volume. This means that one should also look out for divergences to capture early indications of reversals. This indicator can be leveraged greatly.
Adaptive Squeeze Momentum StrategyThe Adaptive Squeeze Momentum Strategy is a versatile trading algorithm designed to capitalize on periods of low volatility that often precede significant price movements. By integrating multiple technical indicators and customizable settings, this strategy aims to identify optimal entry and exit points for both long and short positions.
Key Features:
Long/Short Trade Control:
Toggle Options: Easily enable or disable long and short trades according to your trading preferences or market conditions.
Flexible Application: Adapt the strategy for bullish, bearish, or neutral market outlooks.
Squeeze Detection Mechanism:
Bollinger Bands and Keltner Channels: Utilizes the convergence of Bollinger Bands inside Keltner Channels to detect "squeeze" conditions, indicating a potential breakout.
Dynamic Squeeze Length: Calculates the average squeeze duration to adapt to changing market volatility.
Momentum Analysis:
Linear Regression: Applies linear regression to price changes over a specified momentum length to gauge the strength and direction of momentum.
Dynamic Thresholds: Sets momentum thresholds based on standard deviations, allowing for adaptive sensitivity to market movements.
Momentum Multiplier: Adjustable setting to fine-tune the aggressiveness of momentum detection.
Trend Filtering:
Exponential Moving Average (EMA): Implements a trend filter using an EMA to align trades with the prevailing market direction.
Customizable Length: Adjust the EMA length to suit different trading timeframes and assets.
Relative Strength Index (RSI) Filtering:
Overbought/Oversold Signals: Incorporates RSI to avoid entering trades during overextended market conditions.
Adjustable Levels: Set your own RSI oversold and overbought thresholds for personalized signal generation.
Advanced Risk Management:
ATR-Based Stop Loss and Take Profit:
Adaptive Levels: Uses the Average True Range (ATR) to set stop loss and take profit points that adjust to market volatility.
Custom Multipliers: Modify ATR multipliers for both stop loss and take profit to control risk and reward ratios.
Minimum Volatility Filter: Ensures trades are only taken when market volatility exceeds a user-defined minimum, avoiding periods of low activity.
Time-Based Exit:
Holding Period Multiplier: Defines a maximum holding period based on the momentum length to reduce exposure to adverse movements.
Automatic Position Closure: Closes positions after the specified holding period is reached.
Session Filtering:
Trading Session Control: Limits trading to predefined market hours, helping to avoid illiquid periods.
Custom Session Times: Set your preferred trading session to match market openings, closings, or specific timeframes.
Visualization Tools:
Indicator Plots: Displays Bollinger Bands, Keltner Channels, and trend EMA on the chart for visual analysis.
Squeeze Signals: Marks squeeze conditions on the chart, providing clear visual cues for potential trade setups.
Customization Options:
Indicator Parameters: Fine-tune lengths and multipliers for Bollinger Bands, Keltner Channels, momentum calculation, and ATR.
Entry Filters: Choose to use trend and RSI filters to refine trade entries based on your strategy.
Risk Management Settings: Adjust stop loss, take profit, and holding periods to match your risk tolerance.
Trade Direction Control: Enable or disable long and short trades independently to align with your market strategy or compliance requirements.
Time Settings: Modify the trading session times and enable or disable the time filter as needed.
Use Cases:
Trend Traders: Benefit from aligning entries with the broader market trend while capturing breakout movements.
Swing Traders: Exploit periods of low volatility leading to significant price swings.
Risk-Averse Traders: Utilize advanced risk management features to protect capital and manage exposure.
Disclaimer:
This strategy is a tool to assist in trading decisions and should be used in conjunction with other analyses and risk management practices. Past performance is not indicative of future results. Always test the strategy thoroughly and adjust settings to suit your specific trading style and market conditions.
Gap Detector [MS]This indicator helps traders identify and visualize price gaps in market data. When price movements create gaps between trading sessions or periods, the script highlights these areas with colored clouds and markers.
Key Features:
Automatically detects price gaps based on a customizable gap percentage threshold
Visualizes gaps using color-coded clouds (green when price moves upward, red for downward price action)
Places small triangle markers at gap locations for easy identification of gaps, and if many happen close together
Shows gray clouds when price is within the last gap
Use it For:
Watching for gap-fills
Gap support/resistance levels
Trading gap breakouts
...and more
How it Works:
The script compares each bar's opening price with the previous bar's closing price. A gap is identified when the opening price is significantly different from the previous close (beyond the user-defined gap percentage). The gap area is then marked with a colored cloud:
Green clouds: Show gaps where price jumped higher
Red clouds: Show gaps where price dropped lower
Gray clouds: Indicate price action within the gap
Settings:
Gap %: Controls the minimum price difference required to identify a gap (default 0.01 or 1%)
This indicator can help traders:
Identify potential support/resistance levels at gap areas
Monitor gap-filling scenarios
Spot significant price movements between trading sessions
The script is designed to work across all timeframes and markets.
Killzones And Macros LibraryKillzones & Macros Library for Trading Sessions
This Pine Script library is designed to help traders identify and act during high-volatility trading windows, commonly referred to as "Killzones." These are specific times during the day when institutional traders are most active, resulting in increased liquidity and price movement. The library provides boolean fields that return true when the current time falls within one of the killzones or macroeconomic event windows, allowing for enhanced trade timing and precision.
Killzones Include:
London Open, New York Open, Midnight Open, London Lunch, New York PM, and more.
Capture high-volume periods like Power Hour, Equities Open, and Asian Range.
Macros:
Identify key moments like London 02:33, New York 08:50, and other significant times aligned with market movements or events.
This library is perfect for integrating into your custom strategies, backtesting, or setting alerts for optimal trade execution during major trading sessions and events.
JordanSwindenLibraryLibrary "JordanSwindenLibrary"
TODO: add library description here
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
getPipSize(multiplier)
Calculates the pip size of the current market
Parameters:
multiplier (int) : The mintick point multiplier (1 by default, 10 for FX/Crypto/CFD but can be used to override when certain markets require)
Returns: The pip size for the current market
truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places
Parameters:
number (float) : The number to truncate
decimalPlaces (simple float) : (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(number)
Converts pips into whole numbers
Parameters:
number (float) : The pip number to convert into a whole number
Returns: The converted number
toPips(number)
Converts whole numbers back into pips
Parameters:
number (float) : The whole number to convert into pips
Returns: The converted number
getPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period
Parameters:
value1 (float) : The first value to reference
value2 (float) : The second value to reference
lookback (int) : The lookback period to analyze
Returns: The percent change over the two values and lookback period
random(minRange, maxRange)
Wichmann–Hill Pseudo-Random Number Generator
Parameters:
minRange (float) : The smallest possible number (default: 0)
maxRange (float) : The largest possible number (default: 1)
Returns: A random number between minRange and maxRange
bullFib(priceLow, priceHigh, fibRatio)
Calculates a bullish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio)
Calculates a bearish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(length, maType)
Gets a Moving Average based on type (! MUST BE CALLED ON EVERY TICK TO BE ACCURATE, don't place in scopes)
Parameters:
length (simple int) : The MA period
maType (string) : The type of MA
Returns: A moving average with the given parameters
barsAboveMA(lookback, ma)
Counts how many candles are above the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(lookback, ma)
Counts how many candles are below the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently (based on closing prices)
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA (based on closing prices)
getPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
lookback (int) : The lookback period to look back over
direction (int) : The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize()
Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize()
Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize()
Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent()
Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(fib, colorMatch)
Checks if the current bar is a hammer candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(fib, colorMatch)
Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(wickSize, bodySize)
Checks if the current bar is a doji candle based on the given parameters
Parameters:
wickSize (float) : (default=2) The maximum top wick size compared to the bottom (and vice versa)
bodySize (float) : (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bullish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bearish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar()
Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar()
Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range
Parameters:
startTime (int) : The UNIX date timestamp to begin searching from
endTime (int) : the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze
Parameters:
monday (bool) : Should the script analyze this day? (true/false)
tuesday (bool) : Should the script analyze this day? (true/false)
wednesday (bool) : Should the script analyze this day? (true/false)
thursday (bool) : Should the script analyze this day? (true/false)
friday (bool) : Should the script analyze this day? (true/false)
saturday (bool) : Should the script analyze this day? (true/false)
sunday (bool) : Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter(atrValue, maxSize)
Parameters:
atrValue (float)
maxSize (float)
tradeCount()
Calculate total trade count
Returns: Total closed trade count
isLong()
Check if we're currently in a long trade
Returns: True if our position size is positive
isShort()
Check if we're currently in a short trade
Returns: True if our position size is negative
isFlat()
Check if we're currentlyflat
Returns: True if our position size is zero
wonTrade()
Check if this bar falls after a winning trade
Returns: True if we just won a trade
lostTrade()
Check if this bar falls after a losing trade
Returns: True if we just lost a trade
maxDrawdownRealized()
Gets the max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
Returns: The max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
totalPipReturn()
Gets the total amount of pips won/lost (as a whole number)
Returns: Total amount of pips won/lost (as a whole number)
longWinCount()
Count how many winning long trades we've had
Returns: Long win count
shortWinCount()
Count how many winning short trades we've had
Returns: Short win count
longLossCount()
Count how many losing long trades we've had
Returns: Long loss count
shortLossCount()
Count how many losing short trades we've had
Returns: Short loss count
breakEvenCount(allowanceTicks)
Count how many break-even trades we've had
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even count
longCount()
Count how many long trades we've taken
Returns: Long trade count
shortCount()
Count how many short trades we've taken
Returns: Short trade count
longWinPercent()
Calculate win rate of long trades
Returns: Long win rate (0-100)
shortWinPercent()
Calculate win rate of short trades
Returns: Short win rate (0-100)
breakEvenPercent(allowanceTicks)
Calculate break even rate of all trades
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even win rate (0-100)
averageRR()
Calculate average risk:reward
Returns: Average winning trade divided by average losing trade
unitsToLots(units)
(Forex) Convert the given unit count to lots (multiples of 100,000)
Parameters:
units (float) : The units to convert into lots
Returns: Units converted to nearest lot size (as float)
getFxPositionSize(balance, risk, stopLossPips, fxRate, lots)
(Forex) Calculate fixed-fractional position size based on given parameters
Parameters:
balance (float) : The account balance
risk (float) : The % risk (whole number)
stopLossPips (float) : Pip distance to base risk on
fxRate (float) : The conversion currency rate (more info below in library documentation)
lots (bool) : Whether or not to return the position size in lots rather than units (true by default)
Returns: Units/lots to enter into "qty=" parameter of strategy entry function
EXAMPLE USAGE:
string conversionCurrencyPair = (strategy.account_currency == syminfo.currency ? syminfo.tickerid : strategy.account_currency + syminfo.currency)
float fx_rate = request.security(conversionCurrencyPair, timeframe.period, close )
if (longCondition)
strategy.entry("Long", strategy.long, qty=zen.getFxPositionSize(strategy.equity, 1, stopLossPipsWholeNumber, fx_rate, true))
skipTradeMonteCarlo(chance, debug)
Checks to see if trade should be skipped to emulate rudimentary Monte Carlo simulation
Parameters:
chance (float) : The chance to skip a trade (0-1 or 0-100, function will normalize to 0-1)
debug (bool) : Whether or not to display a label informing of the trade skip
Returns: True if the trade is skipped, false if it's not skipped (idea being to include this function in entry condition validation checks)
fillCell(tableID, column, row, title, value, bgcolor, txtcolor, tooltip)
This updates the given table's cell with the given values
Parameters:
tableID (table) : The table ID to update
column (int) : The column to update
row (int) : The row to update
title (string) : The title of this cell
value (string) : The value of this cell
bgcolor (color) : The background color of this cell
txtcolor (color) : The text color of this cell
tooltip (string)
Returns: Nothing.
Weighted Volume Profile Pivot Points | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Weighted Volume Profile Pivot Points (WVPPP) Indicator! This indicator renders a volume profile using the latest pivot points, automatically adjusting itself when new pivots occur. The pivoting mode can be switched between default pivot points and order blocks mode. It can be adjusted to give more weight to recent or past candlesticks, or can be used as a normal volume profile. For more information, please read the full write-up.
Features of the new Weighted Volume Profile Pivot Points (WVPPP) Indicator :
Renders Volume Profile Of The Range Between Latest Pivots
Two Pivoting Modes Including Order Blocks Mode
Adjustable Weighthing Towards Past or Recent
Customizable Row Count & Maximum Distance
Left or Right Alignment
More Styling Options
🚩UNIQUENESS
This indicator stands out with two key features. One is it's ability to weight volumes based on their distance to the current time. Giving weight to volumes may offer new trading opportunities to traders as they can now see the most recent Point Of Control (POC) or a more powerful but past POC based on their choice. Another key feature the indicator has is that it automatically finds latest valid pivot points, and uses that range for the volume profile. The range changes dynamically as new pivots points emerge. You can select between normal pivot points and order blocks mode. The indicator also has a variety of useful styling settings such as aligning the volume profile to the right or the left of the chart, POC Line styling and color settings for bullish & bearish volumes.
📌 HOW DOES IT WORK ?
A volume profile provides an in-depth look at trading activity over a period of time by plotting a histogram on the price axis. This indicator can also give weight to volumes based on their distance to the current time, essentially determining their importance for the profile. The range which the volume profile will cover is determined by the latest pivot points. Here is how it works step-by-step :
1. Determine how much candlesticks the volume profile will cover (Analyze Bars setting)
2. Find the latest pivot points. If the mode is set to "Pivots", the pivot points are the candlesticks which has the highest / lowest wick in X amount of bars (Swing Length setting). If the mode is set to "Order Blocks", the volume profile range is the area between the latest buyside order block and the sellside order block. Order blocks occur when there is a high amount of market orders exist on a price range. It is possible to find order blocks using specific candlestick formations on the chart. For more information about the order block detection, I suggest you checking the write-up of our "Volumized Order Blocks" script. Increasing the "Swing Length" setting is recommended when the mode is set to "Pivots", as this will help in finding stronger pivot points.
3. Make a range using the latest pivot points, then divide it into rows (Row Count setting)
4. Then for each candlestick, add it's volume to the corresponding row in the range. Note that the volume can be added into several rows if it overlaps with them all.
5. If the candlestick is a bullish candlestick, we add it's volume into the bullish volume of the row, if it's a bearish candlestick, we add it to the bearish volume of the row.
With the weighted volume mode, which is activated if "Volume Weighthing" setting is set to "Recent" or "Past", all volumes get a penalty based on their distance to the latest candletstick. For example, if the setting is set to "Recent", the latest candlestick contributes it's volume by 100% to the corresponding row, but the candlestick which is 50 candlesticks far from the current candlestick only contributes it's volume by ~17% to the row. The same applies to the "Past" setting, but in the reversed order, where past candlesticks have more priority than the current ones.
Volume contribution percent for "Recent" setting : ((100 * 0.85) / (i + 1)) + (100 * (1.0 - 0.85))
Volume contribution percent for "Past" setting : ((100 * 0.85) * ((i + 1) / N)) + (100 * (1.0 - 0.85))
Where i = candlestick index from right to left, N = total number of candlesticks analyzed by the volume profile.
The Point Of Control (POC) line is drawn from the row with the most total volume, and is generally considered as a strong level because a lot of trading volume happened on that particular row. Traders may use this line as a support & resistance level.
We believe that automatically ranging the volume profile to important pivot points will help traders see crucial volume information easier without unnecessary hassle. Traders can use this indicator to have an insight of areas which price moves quickly without much volume, or see areas that holds the price still for much longer and plan their trades accordingly.
⚙️SETTINGS
1. General Configuration
Mode -> The pivoting mode that is switchable between "Pivots" and "Order Blocks" as described in the write-up. Please read the upper section to understand how this setting works.
Analyze Bars -> Total amount of bars that will be analyzed by the indicator from right to left.
Row Count -> The amount of rows that will the vertical range between pivot points will be divided into.
Volume Weighting -> The volume weighting mode as explained in the write-up.
2. Style
Highlight Sessions -> The volume profile sessions will be highlighted with a blue tint. To prevent confusion, highlighting will not work if the alignment is set to "Right".
Align To -> The alignment of the volume profile.
VWAP SuiteThis indicator automates the plotting of various timeframe based VWAP Values. This utilizes a different calculation method for the standard deviations bands compared to the native Tradingview AVWAP. While the Tradingview AVWAP indicator calculates the standard devation based on the VWAP variance, this indicator calculates the std dev based on the price sum variance (i.e. the variance of the hlc3, ohlc4, etc. values).
Current timeframes include:
- Daily VWAP with three user configurable standard deviation bands
- Multi-Day VWAP that allows you to plot 2-day to 5-day VWAP
- Weekly VWAP with three user configurable standard deviation bands
- Monthly VWAP with three user configurable standard deviation bands
Some unique aspects of this indicator is that it allows the user to calculate VWAP for only a specific session range if you are only interested in the VWAP when specific participants are active in the market. For example, the default session range only calculates VWAP for the New York RTH session (0930-1600).
If the user wants to compare how the session range chosen varies from the VWAP calculation with ETH you can select the 'Include Extended Trading Hours' check box which will ignore the session range input variable and simply calculate what is exactly on the chart without filtering.
You can also toggle whether the VWAP values show up in the price scale, status line, or both which can limit the amount of clutter that shows up on the chart based upon the user's preferences.
NY Open Breakout Strategy - High Liquidity & Favorable RRR Pine Description:
The NY Open Breakout Strategy is an advanced Pine Script indicator tailored for the TradingView platform. This strategy is specifically designed to exploit the high liquidity found during the New York session opening in the Forex market. Its primary goal is to provide traders with an opportunity to engage in positions with lower risk and higher potential profits, thereby ensuring an advantageous risk-to-reward ratio (RRR).
Core Objectives:
Leveraging High Liquidity: Capitalizes on the significant market movements at the New York session opening, known for its high liquidity, to identify strong breakout signals.
Achieving Favorable RRR: By setting strategic stop-loss and take-profit levels, the strategy aims for a higher RRR. This approach can lead to overall profitability, even if the win rate is lower than the loss rate.
Functionality:
Dynamic Breakout Identification: Uses the first 15-minute candle’s high and low after NY open as benchmarks for detecting potential breakouts.
Customizable Stop-Loss & Take-Profit: Provides options to configure stop-loss at the last swing or the previous candle’s close. The take-profit levels are determined based on a favorable risk-reward ratio.
Visual Session Indicators: Includes distinct background coloring and vertical lines to mark the New York session for easy visibility.
Methodology:
This strategy hinges on the premise that the opening of the New York session often triggers key price movements due to an influx of trading activity. By focusing on these moments, our indicator aims to capture strong trends and breakout patterns. The carefully calibrated stop-loss and take-profit settings ensure that each trade aims for a higher potential reward compared to the risk undertaken.
Unique Features:
Enhanced Risk Management: With adaptable risk-reward settings, traders can tailor their trading strategies to align with individual risk appetites.
Personalized User Experience: Offers a range of customizable settings for visual elements, allowing traders to adjust the look and feel of the indicator to their preferences.
Usage Guidelines:
Customize the indicator settings, including the stop-loss reference and risk-reward ratio, to match your trading style.
Watch for 'Buy Enter' and 'Sell Enter' signals during the New York session opening.
Utilize the displayed stop-loss and take-profit levels to effectively manage each trade.
This NY Open Breakout Strategy is ideal for traders who prioritize efficient risk management while aiming to capitalize on the high liquidity periods of the Forex market. The strategy is designed to be robust, providing a pathway to profitability even in scenarios where the number of losing trades surpasses winning ones, thanks to its emphasis on a high risk-to-reward ratio.
Tips,Notes,RulesEasy Annotation:
Quickly create custom annotations during your trading sessions to capture important ideas, strategies and observations as you go.
User-friendly Interface:
The indicator offers an intuitive interface, ensuring a smooth experience for adding notes to your chart.
Custom Appearance:
Personalize your annotations according to your preferences.
Adjust the text size to make your notes easily readable and tailored to your visual preferences.
Choose from a variety of colors to make your annotations visually distinct and recognizable.
Align your text according to your preferences to create a visually appealing graphic.
Flexible Positioning:
Place your annotations at the top, middle, or bottom of the chart, providing flexibility without obstructing your view of the price action.
Clear View of Price Action:
Make sure your personalized notes don't interfere with your analysis of market movements.
Tracking Trading Rules:
Use the indicator to record your trading rules, ensuring that you follow your established strategies consistently.
Implement and follow your risk management plans, helping you maintain control over your transactions.
Capture and examine the psychological cues that influence your decisions, promoting greater discipline in your approach to trading.
Improved Trading Experience:
The Trading Notes indicator integrates seamlessly into your trading workflow, allowing you to focus on market analysis and decision-making.
Develop a complete record of your trading sessions, facilitating post-analysis and continuous improvement.
Daily Gaps & Trapped PositionsThis script builds substantially upon the default Gaps script provided by Tradingview. Functionality was added to allow users to decide what price from the previous session is used to determine a daily gap, added support for showing gaps across all timeframes up to the daily time frame, and also allow gaps to be shown even with ETH enabled on the chart. This script provides support across normal securities, futures, and also crypto.
Users can decide between the following selections to determine if a daily gap has formed:
- Previous Session Close
- Previous Session High/Low
- Last RTH Candle High/Low
The other larger piece that was added is something called trapped positions or what some folks familiar with Market Profile would call "single prints". They could also be considered FVGs but they are a specific subset of FVGs as these must from above or below the current session's high/low.
Single prints form above or below a current session's high/low and can be considered an area where price has moved too fast in that area and price will most likely return to these areas at a later point in time. In some teachings, these are also looked at as "trapped shorts" (lighter blue box color) or "trapped supply" (yellow orange box color) which creates an area where there will be potential support (trapped shorts) or resistance (trapped supply) when this area is revisited in the future. Adding these to your chart will simply provide additional areas of interest where you may see buying or selling.
Both gaps and trapped positions have the following options:
- Show only active gaps/trapped positions. Selecting this will only show areas where price has not completely traded through the box.
- Close gaps/trapped positions partially. If this is selected, it will reduce the box size as price is traded through the area. If it is not selected, the box will only disappear once price has traded through the entire box completely.
There are some additional settings that allow you to tailor how many boxes show up on the chart. These settings are as follows:
- Max number of boxes. This setting will only plot up to this number of gaps/trapped positions.
- Minimum Deviation. This will prevent gaps/trapped positions from showing if they are too small relative to average across that last 14 periods.
- Limit Max Box Trail Length (bars). If checkbox is selected, the box will stop being extended after X number of bars given in this input.
Three Bar Gap (Simple Price Action - with 1 line plot)This script is tailored towards experienced traders who prefer to view raw price charts during live execution. It searches for a three-bar pattern of what is colloquially called "fair value gap", or "imbalance" and uses a single line to plot the results. The goal is to display price in a way that is as simple as possible so that chart readers who don't prefer to add indicators on their screen will still find this indicator as an acceptable option to consider for.
From a code perspective, this script explores a new PineScript feature called UDT (user-defined types). This is an incredible update because it brings developers one step close to having the ability to create abstract data types.
█ What is price action?
Experienced traders will tell you that the chart that they use for live execution is raw, clean, and uses no indicators. They say they execute on price action, so what exactly is price action?
There is no formal definition to it, but one can agree that it implies the process of analyzing price without considering the fundamentals, without needing to know what the news was about, and without needing to know any of the Greeks (except for the desire to “seek alpha” Ha.haa...). This is not to say that price action traders are executing in their own vacuums without the need to know what is happening around the world. Surely fundamentals and financial models can be used beforehand for developing a bias for what is being traded, but it’s price-first at the moment of execution. That said, Factor (A) is Price.
Factor (B) is time-perception, it’s how the trader reads the tape. How the trader perceives price to change with respect to time is valuable information. Interpretation of "time" will be elaborated in the next section that talks about candlestick patterns detected by this script.
Putting this together, price action means the analysis of price movement by only considering (A) price, and (B) time, to predict which direction the market will move. A speculative trader is timing the market with the expectation to make a quick in-and-out profit; she/she is using price action. On the other hand, a long term investor holding a diversified portfolio with a strategy based on modern portfolio theory combined with fundamental analysis (at this point candlesticks are irrelevant) but has one additional criteria of, say, can only go Long on a stock when it has closed Green on Daily; he/she is also considered to be executing on price action.
█ Candlestick patterns
This script calculates the displacement of highs and lows over three consecutive bars.
A) Down move = When High of the recent confirmed bar is lower than the Low of the previous-previous candle
B) Up move = When Low of the recent confirmed bar is higher than the High of the previous-previous candle
(Note that its the confirmed bar that is being talked about, so it does not repaint)
An ATR filter will be applied to reduce the number of lines generated as many times they might just be associated with minor price changes.
Interpretations:
When price moves quickly across three bars, it can be thought that it has gapped. Although the candle in the middle appears to be solid, it’s not from a conceptual perspective. This is because time itself is arbitrary; timeframes don’t necessarily have to be fixed intervals. Take stocks with regular trading hours for example, if price makes a breakaway gap and you bundle the after-hours and pre-market sessions together as one candle, never minding that intervals should be fixed, then you will see the exact three-bar-gap patterns. Similar happens during intraday sessions on lower timeframes, if you zoom-in closer, you’ll see that ticks within the middle candle are sparsely dispersed. This is why it's called a gap.
█ Parameters with fixed inputs & assumptions used:
ATR is used for filtering out minor movements that will likely be deemed as irrelevant by trader for the purpose of live execution. The following inputs are required:
A) ATR lookback period
B) Multiplier
The product of ATR(len=A) and B produces a threshold for minimum distance that price must gap by. Initially, it was proposed to be only based on one ATR, but often an ATR is too wide and using it will filter out too many lines. Because of this observation, a multiplier (Parameter B) has been introduced to allow users to apply fractional ATR as a threshold.
█ Applications:
For trend followers: Follow the direction of the gap. Entering above recent high/low points above/below the first impulse with a stop-limit order is a viable tactic.
For contrarians fading a trend: The mid-point is a good point of reference for predicting potential areas of support/resistance.
PSAR BBPT ZLSMA BTC 1minLong entry:
PSAR gives buy signal
BBPT prints green histogram
ZLSMA is below the price
ZLSMA has uptrend
SL is smaller than the max SL
Optional Sessions and EMA filters
Short entry
PSAR gives sell signal
BBPT prints red histogram
ZLSMA is above the price
ZLSMA has downtrend
SL is smaller than the max SL
Optional Sessions and EMA filters
SL:
Placed below ZLSMA + offset on long
Placed above ZLSMA + offset on short
TP1:
1x the SL by default
Takes no profit by default, 50% is also a good setting
TP2:
2x the SL by default
Take out all remaining position size.
If price reaches TP1, the SL is set to the entry price.