ORB with Alerts - Current Day OnlyORB with Alerts - Current Day Only
This script plots the Opening Range Breakout (ORB) levels and provides alerts when price breaks above or below the range. It is designed for intraday trading and resets daily.
How It Works:
The ORB time in settings should be set to 15 minutes.
The Session Time should be set to 09:30 - 09:45.
The script marks the high and low of the ORB period and tracks price action for breakouts.
Alerts trigger when price crosses above the ORB high or below the ORB low.
This tool helps traders identify breakout opportunities based on early price action, aiding in momentum-based strategies
在腳本中搜尋"daily"
Keltner Channel StrategyOverview
The Keltner Channel Strategy is a powerful trend-following and mean-reversion system that leverages the Keltner Channels, EMA crossovers, and ATR-based stop-losses to optimize trade entries and exits. This strategy has proven to be highly effective, particularly when applied to Gold (XAUUSD) and other commodities with strong trend characteristics.
📈 How It Works
This strategy incorporates two trading approaches: 1️⃣ Keltner Channel Reversal Trades – Identifies overbought and oversold conditions when price touches the outer bands.
2️⃣ Trend Following Trades – Uses the 9 EMA & 21 EMA crossover, with confirmation from the 50 EMA, to enter trades in the direction of the trend.
🔍 Entry & Exit Criteria
📊 Keltner Channel Entries (Reversal Strategy)
✅ Long Entry: When the price crosses below the lower Keltner Band (potential reversal).
✅ Short Entry: When the price crosses above the upper Keltner Band (potential reversal).
⏳ Exit Conditions:
Long positions close when price crosses back above the mid-band (EMA-based).
Short positions close when price crosses back below the mid-band (EMA-based).
📈 Trend Following Entries (Momentum Strategy)
✅ Long Entry: When the 9 EMA crosses above the 21 EMA, and price is above the 50 EMA (bullish momentum).
✅ Short Entry: When the 9 EMA crosses below the 21 EMA, and price is below the 50 EMA (bearish momentum).
⏳ Exit Conditions:
Long positions close when the 9 EMA crosses back below the 21 EMA.
Short positions close when the 9 EMA crosses back above the 21 EMA.
📌 Risk Management & Profit Targeting
ATR-based Stop-Losses:
Long trades: Stop set at 1.5x ATR below entry price.
Short trades: Stop set at 1.5x ATR above entry price.
Take-Profit Levels:
Long trades: Profit target 2x ATR above entry price.
Short trades: Profit target 2x ATR below entry price.
🚀 Why Use This Strategy?
✅ Works exceptionally well on Gold (XAUUSD) due to high volatility.
✅ Combines reversal & trend strategies for improved adaptability.
✅ Uses ATR-based risk management for dynamic position sizing.
✅ Fully automated alerts for trade entries and exits.
🔔 Alerts
This script includes automated TradingView alerts for:
🔹 Keltner Band touches (Reversal signals).
🔹 EMA crossovers (Momentum trades).
🔹 Stop-loss & Take-profit activations.
📊 Ideal Markets & Timeframes
Best for: Gold (XAUUSD), NASDAQ (NQ), Crude Oil (CL), and trending assets.
Recommended Timeframes: 15m, 1H, 4H, Daily.
⚡️ How to Use
1️⃣ Add this script to your TradingView chart.
2️⃣ Select a 15m, 1H, or 4H timeframe for optimal results.
3️⃣ Enable alerts to receive trade notifications in real time.
4️⃣ Backtest and tweak ATR settings to fit your trading style.
🚀 Optimize your Gold trading with this Keltner Channel Strategy! Let me know how it performs for you. 💰📊
Rolling Pivot PointsThe "Rolling Pivot Points" indicator, built in Pine Script (version 6) for TradingView, overlays dynamic pivot levels on a price chart. It calculates a 24-hour lookback period (length = 1440 / (timeframe.in_seconds() / 60)) using the prior period’s high, low, and close to determine a Pivot Point (vPP) and three resistance (vR1, vR2, vR3) and support (vS1, vS2, vS3) levels. Plotted lines include vPP (yellow), vR1 (red), and vS1 (blue) in a cross style, with a customizable reset time (default: 8 AM) to refresh levels daily.
The indicator updates at the specified resetTime (minute = 0), otherwise retaining prior levels, making it ideal for intraday traders. The averageDays input (default: 5) is present but unclear in function. Suited for identifying key price zones, it adapts across timeframes, offering a concise, color-coded tool for technical analysis on TradingView.
Premarket Gap MomoTrader(SC)🚀 Pre-Market Momentum Trader | Dynamic Position Sizing 🔥
📈 Trade explosive pre-market breakouts with confidence! This algorithmic strategy automatically detects high-momentum setups, dynamically adjusts position size, and ensures risk control with a one-trade-per-day rule.
⸻
🎯 Key Features
✅ Pre-Market Trading (4:00 - 9:30 AM EST) – Only trades during the most volatile session for early breakouts.
✅ Dynamic Position Sizing – Adapts trade size based on candle strength:
• ≥90% body → 100% position
• ≥85% body → 50% position
• ≥75% body → 25% position
✅ 1 Trade Per Day – Avoids overtrading by allowing only one high-quality trade daily.
✅ Momentum Protection – Stays in the trade as long as:
• Every candle remains green (no red candles).
• Each new candle has increasing volume (confirming strong buying).
✅ Automated Exit – Closes position if:
• A red candle appears.
• Volume fails to increase on a green candle.
⸻
🔍 How It Works
📌 Entry Conditions:
✔️ Candle gains ≥5% from previous close.
✔️ Candle is green & body size ≥75% of total range.
✔️ Volume >15K (confirming liquidity).
✔️ Occurs within pre-market session (4:00 - 9:30 AM EST).
✔️ Only the first valid trade of the day is taken.
📌 Exit Conditions:
❌ First red candle after entry → Exit trade.
❌ First green candle with lower volume → Exit trade.
⸻
🏆 Why Use This?
🔹 Eliminates Fake Breakouts – No trade unless volume & momentum confirm.
🔹 Prevents Overtrading – Restricts to one quality trade per day.
🔹 Adaptable to Any Market – Works on stocks, crypto, or forex.
🔹 Hands-Free Execution – No manual chart watching required!
⸻
🚨 Important Notes
📢 Not financial advice. Trading involves risk—always backtest & practice on paper trading before using real money.
📢 Enable pre-market data in your TradingView settings for accurate results.
📢 Optimized for 1-minute & 5-minute timeframes.
🔔 Like this strategy? Leave a comment, share your results, and don’t forget to hit Follow for more strategies! 🚀🔥
THE Bucknut test PARI (SPY)📌 THE Bucknut Test PARI – Market Momentum & Volatility Gauge
🔹 Description
THE Bucknut Test PARI Indicator is a momentum and volatility-based market gauge designed to provide clear, actionable insights on price movement. This indicator calculates a Price Action Relative Index (PARI) score to help traders evaluate risk and potential market reversals.
It utilizes exponential moving average (EMA)-based momentum, standard deviation volatility, and SPY correlation to generate a PARI score between 1-100. The score is then categorized into risk zones, helping traders identify when conditions are favorable for entries or caution is needed.
Ideal for intraday traders, options traders (including SPX 0DTE), and swing traders looking to gauge volatility-driven market shifts.
🔥 Features & Functionality
✅ Momentum Calculation via EMA Filtering – Ensures smooth, responsive signals.
✅ Volatility-Based Adjustments – Uses standard deviation-based volatility scaling.
✅ SPY Correlation Filtering – Helps align momentum signals with market sentiment.
✅ User-Defined Timeframe Settings – Adjusts dynamically based on selected time intervals.
✅ Customizable Risk Thresholds – Allows traders to define high-risk, neutral, and low-risk zones.
✅ Non-Repainting Algorithm – Ensures reliable, static signals without revision.
⚙️ Settings & Adjustments
Setting Default Value Description
Time Frame Mode "5m-15m" Choose between 1m-3m, 5m-15m, or 1H-Daily. Affects smoothing values.
Scaling Factor 10 Adjusts PARI score sensitivity. Higher values amplify movement.
Background Color Black Custom background for the indicator panel.
Background Transparency 85 Controls indicator panel opacity (0 = solid, 100 = invisible).
High-Risk Threshold 80 Above this level, market is in overbought/high-risk conditions.
Low-Risk Threshold 20 Below this level, market is oversold/low-risk for potential reversals.
Neutral Level 50 Middle ground where price action is balanced.
📈 How to Use THE Bucknut Test PARI
🔴 Above 80 (High-Risk Zone)
Market may be overheated, strong momentum may fade or reverse soon.
Caution with calls; potential put opportunities.
🟢 Below 20 (Low-Risk Zone)
Market is oversold, potential reversal or bounce incoming.
Consider long entries or avoiding shorts.
⚪ Between 20-80 (Neutral Zone)
Market is in equilibrium; follow primary trend direction.
No extreme risk, trend-following strategies preferred.
🔍 Example Use Cases
✔ Intraday Traders → Gauge market strength on short-term charts (1m-15m).
✔ SPX 0DTE Options Traders → Time high-confidence call/put setups.
✔ Swing Traders → Identify periods of excessive momentum or exhaustion.
Quarter Shift IdentifierQuarter Shift Identifier
This indicator helps traders and analysts identify significant price movements between quarters. It calculates the percentage change from the close of the previous quarter to the current price and signals when this change exceeds a 4% threshold.
Key Features:
• Automatically detects quarter transitions
• Calculates quarter-to-quarter price changes
• Signals significant shifts when the change exceeds 4%
• Displays blue up arrows for bullish shifts and red down arrows for bearish shifts
How it works:
1. The script tracks the closing price of each quarter
2. When a new quarter begins, it calculates the percentage change from the previous quarter's close
3. If the change exceeds 4%, an arrow is plotted on the chart
This tool can be useful for:
• Identifying potential trend changes at quarter boundaries
• Analyzing seasonal patterns in price movements
• Supplementing other technical analysis tools for a comprehensive market view
Recommended Timeframes are Weekly and Daily.
Disclaimer:
This indicator is for informational and educational purposes only. It is not financial advice and should not be the sole basis for any investment decisions. Always conduct your own research and consider your personal financial situation before trading or investing. Past performance does not guarantee future results.
SOPR | QuantumResearchIntroducing Rocheur’s SOPR Indicator
The Spent Output Profit Ratio (SOPR) indicator by Rocheur is a powerful tool designed for analyzing Bitcoin market dynamics using on-chain data. By leveraging SOPR data and smoothing it through short- and long-term moving averages, this indicator provides traders with valuable insights into market behavior, helping them identify trends, reversals, and potential trading opportunities.
Understanding SOPR and Its Role in Trading
SOPR is a metric derived from on-chain data that measures the profit or loss of spent outputs on the Bitcoin network. It reflects the behavior of market participants based on the price at which Bitcoin was last moved. When SOPR is above 1, it indicates that outputs are being spent at a profit. Conversely, values below 1 suggest that outputs are being spent at a loss.
Rocheur’s SOPR indicator enhances this raw data by incorporating short-term and long-term smoothed trends, allowing traders to observe shifts in market sentiment and momentum.
How It Works
Data Source: The indicator uses SOPR data from Glassnode’s BTC_SOPR metric, updated daily.
Short-Term Trend (STH SOPR):
A Double Exponential Moving Average (DEMA) is applied over a customizable short-term length (default: 150 days).
This reflects recent market participant behavior.
Long-Term Trend (1-Year SOPR):
A Weighted Moving Average (WMA) is applied over a customizable long-term length (default: 365 days).
This captures broader market trends and investor behavior.
Trend Comparison:
Bullish Market: When STH SOPR exceeds the 1-year SOPR, the market is considered bullish.
Bearish Market: When STH SOPR falls below the 1-year SOPR, the market is considered bearish.
Neutral Market: When the two values are equal, the market is neutral.
Visual Representation
The indicator provides a color-coded visual representation for easy trend identification:
Green Bars: Indicate a bullish market where STH SOPR is above the 1-year SOPR.
Red Bars: Represent a bearish market where STH SOPR is below the 1-year SOPR.
Gray Bars: Show a neutral market condition where STH SOPR equals the 1-year SOPR.
The dynamic bar coloring allows traders to quickly assess the prevailing market sentiment and adjust their strategies accordingly.
Customization & Parameters
The SOPR Indicator offers several customizable settings to adapt to different trading styles and preferences:
Short-Term Length: Default set to 150 days, defines the smoothing period for the STH SOPR .
Long-Term Length: Default set to 365 days, defines the smoothing period for the 1-year SOPR.
Color Modes: Choose from seven distinct color schemes to personalize the indicator’s appearance.
Final Note
Rocheur’s SOPR Indicator is a unique tool that combines on-chain data with technical analysis to provide actionable insights for Bitcoin traders. Its ability to blend short- and long-term trends with a visually intuitive interface makes it an invaluable resource for navigating market dynamics. As with all indicators, backtesting and integration into a comprehensive strategy are essential for optimizing performance.
Austin MTF EMA Entry PointsAustin MTF EMA Entry Points
Overview
The Austin MTF EMA Entry Points is a custom TradingView indicator designed to assist traders in identifying high-probability entry points by combining multiple time frame (MTF) analysis. It leverages exponential moving averages (EMAs) from the daily, 1-hour, and 15-minute charts to generate buy and sell signals that align with the overall trend.
This indicator is ideal for traders who:
Want to trade in the direction of the broader daily trend.
Seek precise entry points on lower time frames (1H and 15M).
Prefer using EMAs as their main trend-following tool.
How It Works
Daily Trend Filter:
The indicator calculates the 50 EMA on the daily chart.
The daily EMA acts as the primary trend filter:
If the current price is above the daily 50 EMA, the trend is bullish.
If the current price is below the daily 50 EMA, the trend is bearish.
Lower Time Frame Entry Points:
The indicator calculates the 20 EMA on both the 1-hour (1H) and 15-minute (15M) time frames.
Buy and sell signals are generated when the price aligns with the trend on all three time frames:
Buy Signal: Price is above the daily 50 EMA and also above the 20 EMA on both the 1H and 15M charts.
Sell Signal: Price is below the daily 50 EMA and also below the 20 EMA on both the 1H and 15M charts.
Visual and Alert Features:
Plot Lines:
The daily 50 EMA is plotted in yellow for easy identification of the main trend.
The 20 EMA from the 1H chart is plotted in blue, and the 15M chart's EMA is in purple for comparison.
Buy/Sell Markers:
Green "Up" arrows appear for buy signals.
Red "Down" arrows appear for sell signals.
Alerts:
Alerts notify users when a buy or sell signal is triggered, making it easier to act on trading opportunities in real-time.
How to Use the Indicator
Identify the Main Trend:
Check the relationship between the price and the daily 50 EMA (yellow line):
Only look for buy signals if the price is above the daily 50 EMA.
Only look for sell signals if the price is below the daily 50 EMA.
Wait for Lower Time Frame Alignment:
For a valid signal, ensure that the price is also above or below the 20 EMA (blue and purple lines) on both the 1H and 15M time frames:
This alignment confirms short-term momentum in the same direction as the daily trend.
Act on Signals:
Use the arrows as visual cues for entry points:
Enter long trades on green "Up" arrows.
Enter short trades on red "Down" arrows.
The alerts will notify you of these signals, so you don’t have to monitor the chart constantly.
Exit Strategy:
Use your preferred stop-loss, take-profit, or trailing stop strategy.
You can also exit trades if the price crosses back below/above the daily 50 EMA, signaling a potential reversal.
Use Cases
Swing Traders: Use the daily trend filter to trade in the direction of the dominant trend, while using 1H and 15M signals to fine-tune entries.
Day Traders: Leverage the 1H and 15M time frames to capitalize on short-term momentum while respecting the broader daily trend.
Position Traders: Monitor the indicator to determine potential reversals or significant alignment across time frames.
Customizable Inputs
The indicator includes the following inputs:
Daily EMA Length: Default is 50. Adjust this to change the length of the trend filter EMA.
Lower Time Frame EMA Length: Default is 20. Adjust this to change the short-term EMA for the 1H and 15M charts.
Time Frames: Hardcoded to "D", "60", and "15", but you can modify the script for different time frames if needed.
Example Scenarios
Buy Signal:
Price is above the daily 50 EMA.
Price crosses above the 20 EMA on both the 1H and 15M time frames.
A green "Up" arrow is displayed, and an alert is triggered.
Sell Signal:
Price is below the daily 50 EMA.
Price crosses below the 20 EMA on both the 1H and 15M time frames.
A red "Down" arrow is displayed, and an alert is triggered.
Strengths and Limitations
Strengths:
Aligns trades with the higher time frame trend for increased probability.
Uses multiple time frame analysis to identify precise entry points.
Visual signals and alerts make it easy to use in real-time.
Limitations:
May produce fewer signals in choppy or ranging markets.
Requires discipline to avoid overtrading when conditions are unclear.
Lag in EMAs could result in late entries in fast-moving markets.
Final Notes
The Austin MTF EMA Entry Points indicator is a powerful tool for traders who value multiple time frame alignment and trend-following strategies. While it simplifies decision-making, it is always recommended to backtest and practice proper risk management before using it in live markets.
Try it out and make smarter, trend-aligned trades today! 🚀
Bollinger Breakout Strategy with Direction Control [4H crypto]Bollinger Breakout Strategy with Direction Control - User Guide
This strategy leverages Bollinger Bands, RSI, and directional filters to identify potential breakout trading opportunities. It is designed for traders looking to capitalize on significant price movements while maintaining control over trade direction (long, short, or both). Here’s how to use this strategy effectively:
How the Strategy Works
Indicators Used:
Bollinger Bands:
A volatility-based indicator with an upper and lower band around a simple moving average (SMA). The bands expand or contract based on market volatility.
RSI (Relative Strength Index):
Measures momentum to determine overbought or oversold conditions. In this strategy, RSI is used to confirm breakout strength.
Trade Direction Control:
You can select whether to trade:
Long only: Buy positions.
Short only: Sell positions.
Both: Trade in both directions depending on conditions.
Breakout Conditions:
Long Trade:
The price closes above the upper Bollinger Band.
RSI is above the midline (50), confirming upward momentum.
The "Trade Direction" setting allows either "Long" or "Both."
Short Trade:
The price closes below the lower Bollinger Band.
RSI is below the midline (50), confirming downward momentum.
The "Trade Direction" setting allows either "Short" or "Both."
Risk Management:
Stop-Loss:
Long trades: Set at 2% below the entry price.
Short trades: Set at 2% above the entry price.
Take-Profit:
Calculated using a Risk/Reward Ratio (default is 2:1).
Adjust this in the strategy settings.
Inputs and Customization
Key Parameters:
Bollinger Bands Length: Default is 20. Adjust based on the desired sensitivity.
Multiplier: Default is 2.0. Higher values widen the bands; lower values narrow them.
RSI Length: Default is 14, which is standard for RSI.
Risk/Reward Ratio: Default is 2.0. Increase for more aggressive profit targets, decrease for conservative exits.
Trade Direction:
Options: "Long," "Short," or "Both."
Example: Set to "Long" in a bullish market to focus only on buy trades.
How to Use This Strategy
Adding the Strategy:
Paste the script into TradingView’s Pine Editor and add it to your chart.
Setting Parameters:
Adjust the Bollinger Band settings, RSI, and Risk/Reward Ratio to fit the asset and timeframe you're trading.
Analyzing Signals:
Green line (Upper Band): Signals breakout potential for long trades.
Red line (Lower Band): Signals breakout potential for short trades.
Blue line (Basis): Central Bollinger Band (SMA), helpful for understanding price trends.
Testing the Strategy:
Use the Strategy Tester in TradingView to backtest performance on your chosen asset and timeframe.
Optimizing for Assets:
Forex pairs, cryptocurrencies (like BTC), or stocks with high volatility are ideal for this strategy.
Works best on higher timeframes like 4H or Daily.
Best Practices
Combine with Volume: Confirm breakouts with increased volume for higher reliability.
Avoid Sideways Markets: Use additional trend filters (like ADX) to avoid trades in low-volatility conditions.
Optimize Parameters: Regularly adjust the Bollinger Bands multiplier and RSI settings to match the asset's behavior.
By utilizing this strategy, you can effectively trade breakouts while maintaining flexibility in trade direction. Adjust the parameters to match your trading style and market conditions for optimal results!
Honest Volatility Grid [Honestcowboy]The Honest Volatility Grid is an attempt at creating a robust grid trading strategy but without standard levels.
Normal grid systems use price levels like 1.01;1.02;1.03;1.04... and place an order at each of these levels. In this program instead we create a grid using keltner channels using a long term moving average.
🟦 IS THIS EVEN USEFUL?
The idea is to have a more fluid style of trading where levels expand and follow price and do not stick to precreated levels. This however also makes each closed trade different instead of using fixed take profit levels. In this strategy a take profit level can even be a loss. It is useful as a strategy because it works in a different way than most strategies, making it a good tool to diversify a portfolio of trading strategies.
🟦 STRATEGY
There are 10 levels below the moving average and 10 above the moving average. For each side of the moving average the strategy uses 1 to 3 orders maximum (3 shorts at top, 3 longs at bottom). For instance you buy at level 2 below moving average and you increase position size when level 6 is reached (a cheaper price) in order to spread risks.
By default the strategy exits all trades when the moving average is reached, this makes it a mean reversion strategy. It is specifically designed for the forex market as these in my experience exhibit a lot of ranging behaviour on all the timeframes below daily.
There is also a stop loss at the outer band by default, in case price moves too far from the mean.
What are the risks?
In case price decides to stay below the moving average and never reaches the outer band one trade can create a very substantial loss, as the bands will keep following price and are not at a fixed level.
Explanation of default parameters
By default the strategy uses a starting capital of 25000$, this is realistic for retail traders.
Lot sizes at each level are set to minimum lot size 0.01, there is no reason for the default to be risky, if you want to risk more or increase equity curve increase the number at your own risk.
Slippage set to 20 points: that's a normal 2 pip slippage you will find on brokers.
Fill limit assumtion 20 points: so it takes 2 pips to confirm a fill, normal forex spread.
Commission is set to 0.00005 per contract: this means that for each contract traded there is a 5$ or whatever base currency pair has as commission. The number is set to 0.00005 because pinescript does not know that 1 contract is 100000 units. So we divide the number by 100000 to get a realistic commission.
The script will also multiply lot size by 100000 because pinescript does not know that lots are 100000 units in forex.
Extra safety limit
Normally the script uses strategy.exit() to exit trades at TP or SL. But because these are created 1 bar after a limit or stop order is filled in pinescript. There are strategy.orders set at the outer boundaries of the script to hedge against that risk. These get deleted bar after the first order is filled. Purely to counteract news bars or huge spikes in price messing up backtest.
🟦 VISUAL GOODIES
I've added a market profile feature to the edge of the grid. This so you can see in which grid zone market has been the most over X bars in the past. Some traders may wish to only turn on the strategy whenever the market profile displays specific characteristics (ranging market for instance).
These simply count how many times a high, low, or close price has been in each zone for X bars in the past. it's these purple boxes at the right side of the chart.
🟦 Script can be fully automated to MT5
There are risk settings in lot sizes or % for alerts and symbol settings provided at the bottom of the indicator. The script will send alert to MT5 broker trying to mimic the execution that happens on tradingview. There are always delays when using a bridge to MT5 broker and there could be errors so be mindful of that. This script sends alerts in format so they can be read by tradingview.to which is a bridge between the platforms.
Use the all alert function calls feature when setting up alerts and make sure you provide the right webhook if you want to use this approach.
Almost every setting in this indicator has a tooltip added to it. So if any setting is not clear hover over the (?) icon on the right of the setting.
ICT Professional Accumulation DistributionICT Professional Accumulation Distribution (ICT AD) provides a x-ray view into market accumulation and distribution. You can literally see the institutions at work.
The indicator consists of two cumulative lines derived from:
Cumulative change from open to close
Cumulative change from previous close to new open
By overlaying these two cumulative lines, you can detect real meaningful divergence that is narrative based not mathematically derived. You're seeing the real works of algorithms in play working in this area.
These divergences are only useful at extremes (topping or bottoming formations), not while trending. It will probably confirm your suspicion about making a important high or low.
This works on all timeframes but is most impactful on the daily.
How to use:
Method 1:
Enable the option for "Show Open vs Close."
Calculate the shift by subtracting the "Open vs Close" line value from the ICT Accumulation/Distribution (AD) line value.
Look for divergences between the two cumulative lines.
Method 2:
Switch the chart's display mode to "Line View" (representing the Open vs Close).
look for divergences between the line chart and the ICT AD line.
Trade Entry Detector, Wick to Body Ratio Trade Entry Detector: Wick-to-Body Ratio Strategy with Bollinger Bands
Overview
The Trade Entry Detector is a custom strategy for TradingView that leverages the Bollinger Bands and a unique wick-to-body ratio approach to capture precise entry opportunities. This indicator is designed for traders who want to pinpoint high-probability reversal points when price interacts with Bollinger Bands, all while offering flexible entry fill options.
The strategy performs primary analysis on the daily time frame, regardless of your current chart setting, allowing you to view daily Bollinger Band levels and entry signals even on lower time frames. This approach is suitable for swing traders and short-term traders looking to align intraday moves with higher time frame signals.
How the Strategy Works
1. Bollinger Band Analysis on the Daily Time Frame
Bollinger Bands are calculated using a 20-period simple moving average (SMA) and a standard deviation multiplier (default is 2). These bands dynamically expand and contract based on market volatility, making them ideal for identifying overbought and oversold conditions:
* Upper Band: Indicates potential overbought levels.
* Lower Band: Indicates potential oversold levels.
2. Wick-to-Body Ratio Condition
This strategy places significant emphasis on candle wicks relative to the candle body. Here’s why:
* A large upper wick relative to the body signals potential selling pressure after testing the upper Bollinger Band.
* A large lower wick relative to the body indicates buying support after testing the lower Bollinger Band.
* Ratio Threshold: You can set a minimum wick-to-body ratio (default is 1.0), meaning that the wick must be at least equal in size to the body. This ensures only candles with significant reversals are considered for entry.
3. Flexible Entry Timing
To adapt to various trading styles, the indicator allows you to choose the entry fill timing:
* Daily Close: Enter at the close of the daily candle.
* Daily Open: Enter at the open of the following daily candle.
* HOD (High of Day): Set entry at the daily high, for those who want confirmation of upward momentum.
* LOD (Low of Day): Set entry at the daily low, ideal for confirming downward movement.
4. Position Sizing and Risk Management
The strategy calculates position size based on a fixed risk percentage of your account balance (default is 1%). This approach dynamically adjusts position sizes based on stop-loss distance:
* Stop Loss: Placed at the nearest swing high (for shorts) or swing low (for longs).
* Take Profit: Exits are triggered when the price reaches the opposite Bollinger Band.
5. Order Expiration
Each pending order (long or short) expires after two days if unfilled, allowing for new setups on subsequent candles if conditions are met again.
Using the Trade Entry Detector
Step-by-Step Guide
1. Set the Primary Time Frame
The core calculations run on the daily time frame, but the strategy can be applied to intraday charts (e.g., 65-minute or 15-minute) for deeper insights.
2. Adjust Bollinger Band Settings
* Length: Default is 20, which determines the period for calculating the moving average.
* Standard Deviation Multiplier: Default is 2.0, which sets the width of the bands. Adjusting this can help you capture broader or tighter volatility ranges.
3. Define the Wick-to-Body Ratio
Set the minimum ratio between wick and body (default 1.0). Higher values filter out candles with less wick-to-body contrast, focusing on stronger rejection moves.
4. Choose Entry Fill Timing
Select your preferred fill condition:
* Daily Close: Confirms the trade at the end of the daily session.
* Daily Open: Executes the entry at the open of the next day.
* HOD/LOD: Uses the daily high or low as an additional confirmation for upward or downward moves.
5. Position Sizing and Risk Management
* Set your account balance and risk percentage. The strategy automatically calculates position sizes based on the stop distance to manage risk efficiently.
* Stop Loss and Take Profit points are automatically set based on swing highs/lows and opposing Bollinger Bands, respectively.
Practical Example
Let’s say SPY (S&P 500 ETF) tests the lower Bollinger Band on the daily time frame, with a lower wick that is twice the size of the body (meeting the 1.0 ratio threshold). Here’s how the strategy might proceed:
1. Signal: The lower wick on SPY suggests buying interest at the lower Bollinger Band.
2. Entry Fill Timing: If you’ve selected "Daily Open," the entry order will be placed at the next day's open price.
3. Stop Loss: Positioned at the nearest daily swing low to minimize risk.
4. Take Profit: If SPY price moves up and reaches the upper Bollinger Band, the position is automatically closed.
Indicator Features and Benefits
* Multi-Time Frame Compatibility: Perform daily analysis while tracking signals on any intraday chart.
* Automatic Position Sizing: Tailor risk per trade based on account balance and desired risk percentage.
* Flexible Entry Options: Choose from close, open, HOD, or LOD for optimal timing.
* Effective Trend Reversal Identification: Uses wick-to-body ratio and Bollinger Band interaction to pinpoint potential reversals.
* Dynamic Visualization: Bollinger Bands are displayed on your chosen time frame, allowing seamless intraday tracking.
Summary
The Trade Entry Detector provides a unique, data-driven way to spot reversal points with customizable entry options. By combining Bollinger Bands with wick-to-body ratio conditions, it identifies potential trade setups where price has tested extremes and shown reversal signals. With its flexible entry timing, risk management features, and multi-time frame compatibility, this indicator is ideal for traders looking to blend daily market context with shorter-term execution.
Tips for Usage:
* For swing trading, consider the Daily Open or Close entry options.
* For momentum entries, HOD or LOD may offer better alignment with the direction of the wick.
* Backtest on different assets to find optimal Bollinger Band and wick-to-body settings for your market.
Use this indicator to enhance your understanding of price behavior at key levels and improve the precision of your entry points. Happy trading!
MTF SqzMom [tradeviZion]Credits:
John Carter for creating the TTM Squeeze and TTM Squeeze Pro.
Lazybear for the original interpretation of the TTM Squeeze: Squeeze Momentum Indicator.
Makit0 for evolving Lazybear's script by incorporating TTM Squeeze Pro upgrades – Squeeze PRO Arrows.
MTF SqzMom - Multi-Timeframe Squeeze & Momentum Tool
MTF SqzMom is a tool designed to help traders easily monitor squeeze and momentum signals across multiple timeframes in a simple, organized format. Built using Pine Script 5, it ensures that data remains consistent, even when switching between different time intervals on the chart.
Key Features:
Multi-Timeframe Monitoring: Track squeeze and momentum signals across various timeframes, all in one view. This includes key timeframes like 1-minute, 5-minute, hourly, and daily.
Dynamic Table Display: A color-coded table that automatically adjusts based on the selected timeframes, offering a clear view of market conditions.
Alerts for Key Market Events: Get notifications when a squeeze starts or fires across your chosen timeframes, so you can stay informed without needing to monitor the chart continuously.
Customizable Appearance: Tailor the look of the table by selecting colors for squeeze levels and momentum shifts, and choose the best position on your chart for easy access.
How It Works:
MTF SqzMom is based on the concept of the squeeze, which signals periods of lower volatility where price breakouts may occur. The tool tracks this by monitoring the contraction of Bollinger Bands within Keltner Channels. Along with this, it provides momentum analysis to help you gauge the potential direction of the market after a squeeze.
Squeeze Conditions: The script tracks four levels of squeeze conditions (no squeeze, low, mid, and high), each represented by a different color in the table.
Momentum Analysis: Momentum is visually represented by colors indicating four stages: up increasing, up decreasing, down increasing, and down decreasing. This color coding helps you quickly assess whether the market is gaining or losing momentum.
Using Alerts:
You can enable two types of alerts: when a squeeze starts (indicating consolidation) and when a squeeze fires (indicating a breakout). These alerts cover all timeframes you’ve selected, so you never miss important signals.
How to Set It Up:
1. Enable Alerts in Settings: Turn on "Alert for Squeeze Start" and "Alert for Squeeze Fire" in the settings.
2. Add Alerts to Your Chart:
Click the three dots next to the indicator name.
Select "Add alert on tradeviZion - MTF SqzMom."
3. Customize and Save: Adjust alert options, choose your notification type, and click "Create."
Why Use MTF SqzMom ?
Consistent Data: The tool ensures that squeeze and momentum data remain consistent, even when you switch between chart intervals.
Real-Time Alerts: Stay updated with alerts for squeeze conditions without needing to constantly watch the chart.
Simple to Use, Customizable to Fit: You can easily adjust the table’s look and choose the timeframes and colors that best suit your trading style.
Acknowledgment:
While this tool builds on the TTM Squeeze concept developed by John Carter of Simpler Trading, it offers added flexibility through multi-timeframe analysis, alerts, and customizability to make monitoring market conditions more accessible.
Multiple Naked LevelsPURPOSE OF THE INDICATOR
This indicator autogenerates and displays naked levels and gaps of multiple types collected into one simple and easy to use indicator.
VALUE PROPOSITION OF THE INDICATOR AND HOW IT IS ORIGINAL AND USEFUL
1) CONVENIENCE : The purpose of this indicator is to offer traders with one coherent and robust indicator providing useful, valuable, and often used levels - in one place.
2) CLUSTERS OF CONFLUENCES : With this indicator it is easy to identify levels and zones on the chart with multiple confluences increasing the likelihood of a potential reversal zone.
THE TYPES OF LEVELS AND GAPS INCLUDED IN THE INDICATOR
The types of levels include the following:
1) PIVOT levels (Daily/Weekly/Monthly) depicted in the chart as: dnPIV, wnPIV, mnPIV.
2) POC (Point of Control) levels (Daily/Weekly/Monthly) depicted in the chart as: dnPoC, wnPoC, mnPoC.
3) VAH/VAL STD 1 levels (Value Area High/Low with 1 std) (Daily/Weekly/Monthly) depicted in the chart as: dnVAH1/dnVAL1, wnVAH1/wnVAL1, mnVAH1/mnVAL1
4) VAH/VAL STD 2 levels (Value Area High/Low with 2 std) (Daily/Weekly/Monthly) depicted in the chart as: dnVAH2/dnVAL2, wnVAH2/wnVAL2, mnVAH1/mnVAL2
5) FAIR VALUE GAPS (Daily/Weekly/Monthly) depicted in the chart as: dnFVG, wnFVG, mnFVG.
6) CME GAPS (Daily) depicted in the chart as: dnCME.
7) EQUILIBRIUM levels (Daily/Weekly/Monthly) depicted in the chart as dnEQ, wnEQ, mnEQ.
HOW-TO ACTIVATE LEVEL TYPES AND TIMEFRAMES AND HOW-TO USE THE INDICATOR
You can simply choose which of the levels to be activated and displayed by clicking on the desired radio button in the settings menu.
You can locate the settings menu by clicking into the Object Tree window, left-click on the Multiple Naked Levels and select Settings.
You will then get a menu of different level types and timeframes. Click the checkboxes for the level types and timeframes that you want to display on the chart.
You can then go into the chart and check out which naked levels that have appeared. You can then use those levels as part of your technical analysis.
The levels displayed on the chart can serve as additional confluences or as part of your overall technical analysis and indicators.
In order to back-test the impact of the different naked levels you can also enable tapped levels to be depicted on the chart. Do this by toggling the 'Show tapped levels' checkbox.
Keep in mind however that Trading View can not shom more than 500 lines and text boxes so the indocator will not be able to give you the complete history back to the start for long duration assets.
In order to clean up the charts a little bit there are two additional settings that can be used in the Settings menu:
- Selecting the price range (%) from the current price to be included in the chart. The default is 25%. That means that all levels below or above 20% will not be displayed. You can set this level yourself from 0 up to 100%.
- Selecting the minimum gap size to include on the chart. The default is 1%. That means that all gaps/ranges below 1% in price difference will not be displayed on the chart. You can set the minimum gap size yourself.
BASIC DESCRIPTION OF THE INNER WORKINGS OF THE INDICTATOR
The way the indicator works is that it calculates and identifies all levels from the list of levels type and timeframes above. The indicator then adds this level to a list of untapped levels.
Then for each bar after, it checks if the level has been tapped. If the level has been tapped or a gap/range completely filled, this level is removed from the list so that the levels displayed in the end are only naked/untapped levels.
Below is a descrition of each of the level types and how it is caluclated (algorithm):
PIVOT
Daily, Weekly and Monthly levels in trading refer to significant price points that traders monitor within the context of a single trading day. These levels can provide insights into market behavior and help traders make informed decisions regarding entry and exit points.
Traders often use D/W/M levels to set entry and exit points for trades. For example, entering long positions near support (daily close) or selling near resistance (daily close).
Daily levels are used to set stop-loss orders. Placing stops just below the daily close for long positions or above the daily close for short positions can help manage risk.
The relationship between price movement and daily levels provides insights into market sentiment. For instance, if the price fails to break above the daily high, it may signify bearish sentiment, while a strong breakout can indicate bullish sentiment.
The way these levels are calculated in this indicator is based on finding pivots in the chart on D/W/M timeframe. The level is then set to previous D/W/M close = current D/W/M open.
In addition, when price is going up previous D/W/M open must be smaller than previous D/W/M close and current D/W/M close must be smaller than the current D/W/M open. When price is going down the opposite.
POINT OF CONTROL
The Point of Control (POC) is a key concept in volume profile analysis, which is commonly used in trading.
It represents the price level at which the highest volume of trading occurred during a specific period.
The POC is derived from the volume traded at various price levels over a defined time frame. In this indicator the timeframes are Daily, Weekly, and Montly.
It identifies the price level where the most trades took place, indicating strong interest and activity from traders at that price.
The POC often acts as a significant support or resistance level. If the price approaches the POC from above, it may act as a support level, while if approached from below, it can serve as a resistance level. Traders monitor the POC to gauge potential reversals or breakouts.
The way the POC is calculated in this indicator is by an approximation by analysing intrabars for the respective timeperiod (D/W/M), assigning the volume for each intrabar into the price-bins that the intrabar covers and finally identifying the bin with the highest aggregated volume.
The POC is the price in the middle of this bin.
The indicator uses a sample space for intrabars on the Daily timeframe of 15 minutes, 35 minutes for the Weekly timeframe, and 140 minutes for the Monthly timeframe.
The indicator has predefined the size of the bins to 0.2% of the price at the range low. That implies that the precision of the calulated POC og VAH/VAL is within 0.2%.
This reduction of precision is a tradeoff for performance and speed of the indicator.
This also implies that the bigger the difference from range high prices to range low prices the more bins the algorithm will iterate over. This is typically the case when calculating the monthly volume profile levels and especially high volatility assets such as alt coins.
Sometimes the number of iterations becomes too big for Trading View to handle. In these cases the bin size will be increased even more to reduce the number of iterations.
In such cases the bin size might increase by a factor of 2-3 decreasing the accuracy of the Volume Profile levels.
Anyway, since these Volume Profile levels are approximations and since precision is traded for performance the user should consider the Volume profile levels(POC, VAH, VAL) as zones rather than pin point accurate levels.
VALUE AREA HIGH/LOW STD1/STD2
The Value Area High (VAH) and Value Area Low (VAL) are important concepts in volume profile analysis, helping traders understand price levels where the majority of trading activity occurs for a given period.
The Value Area High/Low is the upper/lower boundary of the value area, representing the highest price level at which a certain percentage of the total trading volume occurred within a specified period.
The VAH/VAL indicates the price point above/below which the majority of trading activity is considered less valuable. It can serve as a potential resistance/support level, as prices above/below this level may experience selling/buying pressure from traders who view the price as overvalued/undervalued
In this indicator the timeframes are Daily, Weekly, and Monthly. This indicator provides two boundaries that can be selected in the menu.
The first boundary is 70% of the total volume (=1 standard deviation from mean). The second boundary is 95% of the total volume (=2 standard deviation from mean).
The way VAH/VAL is calculated is based on the same algorithm as for the POC.
However instead of identifying the bin with the highest volume, we start from range low and sum up the volume for each bin until the aggregated volume = 30%/70% for VAL1/VAH1 and aggregated volume = 5%/95% for VAL2/VAH2.
Then we simply set the VAL/VAH equal to the low of the respective bin.
FAIR VALUE GAPS
Fair Value Gaps (FVG) is a concept primarily used in technical analysis and price action trading, particularly within the context of futures and forex markets. They refer to areas on a price chart where there is a noticeable lack of trading activity, often highlighted by a significant price movement away from a previous level without trading occurring in between.
FVGs represent price levels where the market has moved significantly without any meaningful trading occurring. This can be seen as a "gap" on the price chart, where the price jumps from one level to another, often due to a rapid market reaction to news, events, or other factors.
These gaps typically appear when prices rise or fall quickly, creating a space on the chart where no transactions have taken place. For example, if a stock opens sharply higher and there are no trades at the prices in between the two levels, it creates a gap. The areas within these gaps can be areas of liquidity that the market may return to “fill” later on.
FVGs highlight inefficiencies in pricing and can indicate areas where the market may correct itself. When the market moves rapidly, it may leave behind price levels that traders eventually revisit to establish fair value.
Traders often watch for these gaps as potential reversal or continuation points. Many traders believe that price will eventually “fill” the gap, meaning it will return to those price levels, providing potential entry or exit points.
This indicator calculate FVGs on three different timeframes, Daily, Weekly and Montly.
In this indicator the FVGs are identified by looking for a three-candle pattern on a chart, signalling a discrete imbalance in order volume that prompts a quick price adjustment. These gaps reflect moments where the market sentiment strongly leans towards buying or selling yet lacks the opposite orders to maintain price stability.
The indicator sets the gap to the difference from the high of the first bar to the low of the third bar when price is moving up or from the low of the first bar to the high of the third bar when price is moving down.
CME GAPS (BTC only)
CME gaps refer to price discrepancies that can occur in charts for futures contracts traded on the Chicago Mercantile Exchange (CME). These gaps typically arise from the fact that many futures markets, including those on the CME, operate nearly 24 hours a day but may have significant price movements during periods when the market is closed.
CME gaps occur when there is a difference between the closing price of a futures contract on one trading day and the opening price on the following trading day. This difference can create a "gap" on the price chart.
Opening Gaps: These usually happen when the market opens significantly higher or lower than the previous day's close, often influenced by news, economic data releases, or other market events occurring during non-trading hours.
Gaps can result from reactions to major announcements or developments, such as earnings reports, geopolitical events, or changes in economic indicators, leading to rapid price movements.
The importance of CME Gaps in Trading is the potential for Filling Gaps: Many traders believe that prices often "fill" gaps, meaning that prices may return to the gap area to establish fair value.
This can create potential trading opportunities based on the expectation of gap filling. Gaps can act as significant support or resistance levels. Traders monitor these levels to identify potential reversal points in price action.
The way the gap is identified in this indicator is by checking if current open is higher than previous bar close when price is moving up or if current open is lower than previous day close when price is moving down.
EQUILIBRIUM
Equilibrium in finance and trading refers to a state where supply and demand in a market balance each other, resulting in stable prices. It is a key concept in various economic and trading contexts. Here’s a concise description:
Market Equilibrium occurs when the quantity of a good or service supplied equals the quantity demanded at a specific price level. At this point, there is no inherent pressure for the price to change, as buyers and sellers are in agreement.
Equilibrium Price is the price at which the market is in equilibrium. It reflects the point where the supply curve intersects the demand curve on a graph. At the equilibrium price, the market clears, meaning there are no surplus goods or shortages.
In this indicator the equilibrium level is calculated simply by finding the midpoint of the Daily, Weekly, and Montly candles respectively.
NOTES
1) Performance. The algorithms are quite resource intensive and the time it takes the indicator to calculate all the levels could be 5 seconds or more, depending on the number of bars in the chart and especially if Montly Volume Profile levels are selected (POC, VAH or VAL).
2) Levels displayed vs the selected chart timeframe. On a timeframe smaller than the daily TF - both Daily, Weekly, and Monthly levels will be displayed. On a timeframe bigger than the daily TF but smaller than the weekly TF - the Weekly and Monthly levels will be display but not the Daily levels. On a timeframe bigger than the weekly TF but smaller than the monthly TF - only the Monthly levels will be displayed. Not Daily and Weekly.
CREDITS
The core algorithm for calculating the POC levels is based on the indicator "Naked Intrabar POC" developed by rumpypumpydumpy (https:www.tradingview.com/u/rumpypumpydumpy/).
The "Naked intrabar POC" indicator calculates the POC on the current chart timeframe.
This indicator (Multiple Naked Levels) adds two new features:
1) It calculates the POC on three specific timeframes, the Daily, Weekly, and Monthly timeframes - not only the current chart timeframe.
2) It adds functionaly by calculating the VAL and VAH of the volume profile on the Daily, Weekly, Monthly timeframes .
RiskMetrics█ OVERVIEW
This library is a tool for Pine programmers that provides functions for calculating risk-adjusted performance metrics on periodic price returns. The calculations used by this library's functions closely mirror those the Broker Emulator uses to calculate strategy performance metrics (e.g., Sharpe and Sortino ratios) without depending on strategy-specific functionality.
█ CONCEPTS
Returns, risk, and volatility
The return on an investment is the relative gain or loss over a period, often expressed as a percentage. Investment returns can originate from several sources, including capital gains, dividends, and interest income. Many investors seek the highest returns possible in the quest for profit. However, prudent investing and trading entails evaluating such returns against the associated risks (i.e., the uncertainty of returns and the potential for financial losses) for a clearer perspective on overall performance and sustainability.
One way investors and analysts assess the risk of an investment is by analyzing its volatility , i.e., the statistical dispersion of historical returns. Investors often use volatility in risk estimation because it provides a quantifiable way to gauge the expected extent of fluctuation in returns. Elevated volatility implies heightened uncertainty in the market, which suggests higher expected risk. Conversely, low volatility implies relatively stable returns with relatively minimal fluctuations, thus suggesting lower expected risk. Several risk-adjusted performance metrics utilize volatility in their calculations for this reason.
Risk-free rate
The risk-free rate represents the rate of return on a hypothetical investment carrying no risk of financial loss. This theoretical rate provides a benchmark for comparing the returns on a risky investment and evaluating whether its excess returns justify the risks. If an investment's returns are at or below the theoretical risk-free rate or the risk premium is below a desired amount, it may suggest that the returns do not compensate for the extra risk, which might be a call to reassess the investment.
Since the risk-free rate is a theoretical concept, investors often utilize proxies for the rate in practice, such as Treasury bills and other government bonds. Conventionally, analysts consider such instruments "risk-free" for a domestic holder, as they are a form of government obligation with a low perceived likelihood of default.
The average yield on short-term Treasury bills, influenced by economic conditions, monetary policies, and inflation expectations, has historically hovered around 2-3% over the long term. This range also aligns with central banks' inflation targets. As such, one may interpret a value within this range as a minimum proxy for the risk-free rate, as it may correspond to the minimum rate required to maintain purchasing power over time.
The built-in Sharpe and Sortino ratios that strategies calculate and display in the Performance Summary tab use a default risk-free rate of 2%, and the metrics in this library's example code use the same default rate. Users can adjust this value to fit their analysis needs.
Risk-adjusted performance
Risk-adjusted performance metrics gauge the effectiveness of an investment by considering its returns relative to the perceived risk. They aim to provide a more well-rounded picture of performance by factoring in the level of risk taken to achieve returns. Investors can utilize such metrics to help determine whether the returns from an investment justify the risks and make informed decisions.
The two most commonly used risk-adjusted performance metrics are the Sharpe ratio and the Sortino ratio.
1. Sharpe ratio
The Sharpe ratio , developed by Nobel laureate William F. Sharpe, measures the performance of an investment compared to a theoretically risk-free asset, adjusted for the investment risk. The ratio uses the following formula:
Sharpe Ratio = (𝑅𝑎 − 𝑅𝑓) / 𝜎𝑎
Where:
• 𝑅𝑎 = Average return of the investment
• 𝑅𝑓 = Theoretical risk-free rate of return
• 𝜎𝑎 = Standard deviation of the investment's returns (volatility)
A higher Sharpe ratio indicates a more favorable risk-adjusted return, as it signifies that the investment produced higher excess returns per unit of increase in total perceived risk.
2. Sortino ratio
The Sortino ratio is a modified form of the Sharpe ratio that only considers downside volatility , i.e., the volatility of returns below the theoretical risk-free benchmark. Although it shares close similarities with the Sharpe ratio, it can produce very different values, especially when the returns do not have a symmetrical distribution, since it does not penalize upside and downside volatility equally. The ratio uses the following formula:
Sortino Ratio = (𝑅𝑎 − 𝑅𝑓) / 𝜎𝑑
Where:
• 𝑅𝑎 = Average return of the investment
• 𝑅𝑓 = Theoretical risk-free rate of return
• 𝜎𝑑 = Downside deviation (standard deviation of negative excess returns, or downside volatility)
The Sortino ratio offers an alternative perspective on an investment's return-generating efficiency since it does not consider upside volatility in its calculation. A higher Sortino ratio signifies that the investment produced higher excess returns per unit of increase in perceived downside risk.
█ CALCULATIONS
Return period detection
Calculating risk-adjusted performance metrics requires collecting returns across several periods of a given size. Analysts may use different period sizes based on the context and their preferences. However, two widely used standards are monthly or daily periods, depending on the available data and the investment's duration. The built-in ratios displayed in the Strategy Tester utilize returns from either monthly or daily periods in their calculations based on the following logic:
• Use monthly returns if the history of closed trades spans at least two months.
• Use daily returns if the trades span at least two days but less than two months.
• Do not calculate the ratios if the trade data spans fewer than two days.
This library's `detectPeriod()` function applies related logic to available chart data rather than trade data to determine which period is appropriate:
• It returns true if the chart's data spans at least two months, indicating that it's sufficient to use monthly periods.
• It returns false if the chart's data spans at least two days but not two months, suggesting the use of daily periods.
• It returns na if the length of the chart's data covers less than two days, signifying that the data is insufficient for meaningful ratio calculations.
It's important to note that programmers should only call `detectPeriod()` from a script's global scope or within the outermost scope of a function called from the global scope, as it requires the time value from the first bar to accurately measure the amount of time covered by the chart's data.
Collecting periodic returns
This library's `getPeriodicReturns()` function tracks price return data within monthly or daily periods and stores the periodic values in an array . It uses a `detectPeriod()` call as the condition to determine whether each element in the array represents the return over a monthly or daily period.
The `getPeriodicReturns()` function has two overloads. The first overload requires two arguments and outputs an array of monthly or daily returns for use in the `sharpe()` and `sortino()` methods. To calculate these returns:
1. The `percentChange` argument should be a series that represents percentage gains or losses. The values can be bar-to-bar return percentages on the chart timeframe or percentages requested from a higher timeframe.
2. The function compounds all non-na `percentChange` values within each monthly or daily period to calculate the period's total return percentage. When the `percentChange` represents returns from a higher timeframe, ensure the requested data includes gaps to avoid compounding redundant values.
3. After a period ends, the function queues the compounded return into the array , removing the oldest element from the array when its size exceeds the `maxPeriods` argument.
The resulting array represents the sequence of closed returns over up to `maxPeriods` months or days, depending on the available data.
The second overload of the function includes an additional `benchmark` parameter. Unlike the first overload, this version tracks and collects differences between the `percentChange` and the specified `benchmark` values. The resulting array represents the sequence of excess returns over up to `maxPeriods` months or days. Passing this array to the `sharpe()` and `sortino()` methods calculates generalized Information ratios , which represent the risk-adjustment performance of a sequence of returns compared to a risky benchmark instead of a risk-free rate. For consistency, ensure the non-na times of the `benchmark` values align with the times of the `percentChange` values.
Ratio methods
This library's `sharpe()` and `sortino()` methods respectively calculate the Sharpe and Sortino ratios based on an array of returns compared to a specified annual benchmark. Both methods adjust the annual benchmark based on the number of periods per year to suit the frequency of the returns:
• If the method call does not include a `periodsPerYear` argument, it uses `detectPeriod()` to determine whether the returns represent monthly or daily values based on the chart's history. If monthly, the method divides the `annualBenchmark` value by 12. If daily, it divides the value by 365.
• If the method call does specify a `periodsPerYear` argument, the argument's value supersedes the automatic calculation, facilitating custom benchmark adjustments, such as dividing by 252 when analyzing collected daily stock returns.
When the array passed to these methods represents a sequence of excess returns , such as the result from the second overload of `getPeriodicReturns()`, use an `annualBenchmark` value of 0 to avoid comparing those excess returns to a separate rate.
By default, these methods only calculate the ratios on the last available bar to minimize their resource usage. Users can override this behavior with the `forceCalc` parameter. When the value is true , the method calculates the ratio on each call if sufficient data is available, regardless of the bar index.
Look first. Then leap.
█ FUNCTIONS & METHODS
This library contains the following functions:
detectPeriod()
Determines whether the chart data has sufficient coverage to use monthly or daily returns
for risk metric calculations.
Returns: (bool) `true` if the period spans more than two months, `false` if it otherwise spans more
than two days, and `na` if the data is insufficient.
getPeriodicReturns(percentChange, maxPeriods)
(Overload 1 of 2) Tracks periodic return percentages and queues them into an array for ratio
calculations. The span of the chart's historical data determines whether the function uses
daily or monthly periods in its calculations. If the chart spans more than two months,
it uses "1M" periods. Otherwise, if the chart spans more than two days, it uses "1D"
periods. If the chart covers less than two days, it does not store changes.
Parameters:
percentChange (float) : (series float) The change percentage. The function compounds non-na values from each
chart bar within monthly or daily periods to calculate the periodic changes.
maxPeriods (simple int) : (simple int) The maximum number of periodic returns to store in the returned array.
Returns: (array) An array containing the overall percentage changes for each period, limited
to the maximum specified by `maxPeriods`.
getPeriodicReturns(percentChange, benchmark, maxPeriods)
(Overload 2 of 2) Tracks periodic excess return percentages and queues the values into an
array. The span of the chart's historical data determines whether the function uses
daily or monthly periods in its calculations. If the chart spans more than two months,
it uses "1M" periods. Otherwise, if the chart spans more than two days, it uses "1D"
periods. If the chart covers less than two days, it does not store changes.
Parameters:
percentChange (float) : (series float) The change percentage. The function compounds non-na values from each
chart bar within monthly or daily periods to calculate the periodic changes.
benchmark (float) : (series float) The benchmark percentage to compare against `percentChange` values.
The function compounds non-na values from each bar within monthly or
daily periods and subtracts the results from the compounded `percentChange` values to
calculate the excess returns. For consistency, ensure this series has a similar history
length to the `percentChange` with aligned non-na value times.
maxPeriods (simple int) : (simple int) The maximum number of periodic excess returns to store in the returned array.
Returns: (array) An array containing monthly or daily excess returns, limited
to the maximum specified by `maxPeriods`.
method sharpeRatio(returnsArray, annualBenchmark, forceCalc, periodsPerYear)
Calculates the Sharpe ratio for an array of periodic returns.
Callable as a method or a function.
Namespace types: array
Parameters:
returnsArray (array) : (array) An array of periodic return percentages, e.g., returns over monthly or
daily periods.
annualBenchmark (float) : (series float) The annual rate of return to compare against `returnsArray` values. When
`periodsPerYear` is `na`, the function divides this value by 12 to calculate a
monthly benchmark if the chart's data spans at least two months or 365 for a daily
benchmark if the data otherwise spans at least two days. If `periodsPerYear`
has a specified value, the function divides the rate by that value instead.
forceCalc (bool) : (series bool) If `true`, calculates the ratio on every call. Otherwise, ratio calculation
only occurs on the last available bar. Optional. The default is `false`.
periodsPerYear (simple int) : (simple int) If specified, divides the annual rate by this value instead of the value
determined by the time span of the chart's data.
Returns: (float) The Sharpe ratio, which estimates the excess return per unit of total volatility.
method sortinoRatio(returnsArray, annualBenchmark, forceCalc, periodsPerYear)
Calculates the Sortino ratio for an array of periodic returns.
Callable as a method or a function.
Namespace types: array
Parameters:
returnsArray (array) : (array) An array of periodic return percentages, e.g., returns over monthly or
daily periods.
annualBenchmark (float) : (series float) The annual rate of return to compare against `returnsArray` values. When
`periodsPerYear` is `na`, the function divides this value by 12 to calculate a
monthly benchmark if the chart's data spans at least two months or 365 for a daily
benchmark if the data otherwise spans at least two days. If `periodsPerYear`
has a specified value, the function divides the rate by that value instead.
forceCalc (bool) : (series bool) If `true`, calculates the ratio on every call. Otherwise, ratio calculation
only occurs on the last available bar. Optional. The default is `false`.
periodsPerYear (simple int) : (simple int) If specified, divides the annual rate by this value instead of the value
determined by the time span of the chart's data.
Returns: (float) The Sortino ratio, which estimates the excess return per unit of downside
volatility.
Multi-time Frame Trend DirectionThis is a multi-time frame trend direction indicator. It indicates whether the trend is ascending or descending across multiple time frames: 5M, 15M, 30M, 1H, 4H, and Daily.
The logic is based on the positions of EMA12 and EMA26.
These EMAs are smoothed with an SMA.
Why 12 and 26, and why are they smoothed with 9?
As you might surmise, these parameters are derived from the MACD.
I recommend not altering the parameters, but the choice is yours. Enjoy.
Donchian Quest Research// =================================
Trend following strategy.
// =================================
Strategy uses two channels. One channel - for opening trades. Second channel - for closing.
Channel is similar to Donchian channel, but uses Close prices (not High/Low). That helps don't react to wicks of volatile candles (“stop hunting”). In most cases openings occur earlier than in Donchian channel. Closings occur only for real breakout.
// =================================
Strategy waits for beginning of trend - when price breakout of channel. Default length of both channels = 50 candles.
Conditions of trading:
- Open Long: If last Close = max Close for 50 closes.
- Close Long: If last Close = min Close for 50 closes.
- Open Short: If last Close = min Close for 50 closes.
- Close Short: If last Close = max Close for 50 closes.
// =================================
Color of lines:
- black - channel for opening trade.
- red - channel for closing trade.
- yellow - entry price.
- fuchsia - stoploss and breakeven.
- vertical green - go Long.
- vertical red - go Short.
- vertical gray - close in end, don't trade anymore.
// =================================
Order size calculated with ATR and volatility.
You can't trade 1 contract in BTC and 1 contract in XRP - for example. They have different price and volatility, so 1 contract BTC not equal 1 contract XRP.
Script uses universal calculation for every market. It is based on:
- Risk - USD sum you ready to loss in one trade. It calculated as percent of Equity.
- ATR indicator - measurement of volatility.
With default setting your stoploss = 0.5 percent of equity:
- If initial capital is 1000 USD and used parameter "Permit stop" - loss will be 5 USD (0.5 % of equity).
- If your Equity rises to 2000 USD and used parameter "Permit stop"- loss will be 10 USD (0.5 % of Equity).
// =================================
This Risk works only if you enable “Permit stop” parameter in Settings.
If this parameter disabled - strategy works as reversal strategy:
⁃ If close Long - channel border works as stoploss and momentarily go Short.
⁃ If close Short - channel border works as stoploss and momentarily go Long.
Channel borders changed dynamically. So sometime your loss will be greater than ‘Risk %’. Sometime - less than ‘Risk %’.
If this parameter enabled - maximum loss always equal to 'Risk %'. This parameter also include breakeven: if profit % = Risk %, then move stoploss to entry price.
// =================================
Like all trend following strategies - it works only in trend conditions. If no trend - slowly bleeding. There is no special additional indicator to filter trend/notrend. You need to trade every signal of strategy.
Strategy gives many losses:
⁃ 30 % of trades will close with profit.
⁃ 70 % of trades will close with loss.
⁃ But profit from 30% will be much greater than loss from 70 %.
Your task - patiently wait for it and don't use risky setting for position sizing.
// =================================
Recommended timeframe - Daily.
// =================================
Trend can vary in lengths. Selecting length of channels determine which trend you will be hunting:
⁃ 20/10 - from several days to several weeks.
⁃ 20/20 or 50/20 - from several weeks to several months.
⁃ 50/50 or 100/50 or 100/100 - from several months to several years.
// =================================
Inputs (Settings):
- Length: length of channel for trade opening/closing. You can choose 20/10, 20/20, 50/20, 50/50, 100/50, 100/100. Default value: 50/50.
- Permit Long / Permit short: Longs are most profitable for this strategy. You can disable Shorts and enable Longs only. Default value: permit all directions.
- Risk % of Equity: for position sizing used Equity percent. Don't use values greater than 5 % - it's risky. Default value: 0.5%.
⁃ ATR multiplier: this multiplier moves stoploss up or down. Big multiplier = small size of order, small profit, stoploss far from entry, low chance of stoploss. Small multiplier = big size of order, big profit, stop near entry, high chance of stoploss. Default value: 2.
- ATR length: number of candles to calculate ATR indicator. It used for order size and stoploss. Default value: 20.
- Close in end - to close active trade in the end (and don't trade anymore) or leave it open. You can see difference in Strategy Tester. Default value: don’t close.
- Permit stop: use stop or go reversal. Default value: without stop, reversal strategy.
// =================================
Properties (Settings):
- Initial capital - 1000 USD.
- Script don't uses 'Order size' - you need to change 'Risk %' in Inputs instead.
- Script don't uses 'Pyramiding'.
- 'Commission' 0.055 % and 'Slippage' 0 - this parameters are for crypto exchanges with perpetual contracts (for example Bybit). If use on other markets - set it accordingly to your exchange parameters.
// =================================
Big dataset used for chart - 'BITCOIN ALL TIME HISTORY INDEX'. It gives enough trades to understand logic of script. It have several good trends.
// =================================
[GTH decimals heatmap] (wide screen advised)Preface
I share my personal general view on indicators below; skip ahead to the Description below if you are not interested.
It is my personal conviction that most - if not all - indicators rely mainly on trader's belief that they work, and in a feedback system like free markets they might become a self-fulfilling prophecy as a result, if (!) a big part of the traders believes in it, because some famous trader releases an indicator, or such person's public statement goes viral.
One of those voodoo indicators is the famous "follow-through day". There is zero statistical evidence for its validity, beyond the validity of a statement like "If it's bright at day it's usually the sun shining". The uselessness was proven exactly on its inventor's YT channel, Investors Business Daily. According to the examiner, its inventor William J. O'Neil himself could not explain the values used for this indicator. It might have been an incidental observation at some point without general validity. A.k.a "curve fitting". Still, it's being used by many today.
Another one of those indicators is the three points reversal on the S&P 500 Volatility Index (VIX) which allegedly might potentially maybe indicate a possible shift in trend. Both indicators share an immediately problematic feature: They use absolute values. Nothing is ever absolute in a highly subjective and emotionally driven game like the markets where a lot of money can be made and lost.
Most indicators can not produce additional information since they can only re-pack price/volume action. Many times an interpretion of the distance between price and a moving average and/or the slope of a moving average deliver very similar - if not better - results than MACD, RSI etc., especially with standard settings, the origin of which are usually unknown (always a warning sign). Very few indicators can deliver information which is otherwise hard to quantify, e. g. market noise (Kaufman's Efficiency Ratio or Price Density) or volatility, standard deviation etc.
It is common knowledge that trading the markets is a game of probability. No indicator works all the time (or at all, see above). In order to make decisions based on any indicator, the probability for its validity and the conditions under which validity seemed to have occurred, must be known. Otherwise it is just coffee grounds reading under the illusion of adding to the edge, when in fact it is only adding to the trees, making it even harder to see the forest.
Description
A common belief is that whole or half-dollar prices tend to be attraction points in price action, so a number of traders include those into decision making. But are they really...?
Spoiler Alert:
Generally, it is safe to say that for the big majority of stocks there is very thin evidence for it. It depends vastly on the asset, the timeframe used and the market period (pre/post/main trading times). If at all, there seems to be an above random but still thin evidence for whole prices being significant attraction points. Interesting/surprising patterns are visible on many stocks/timeframes/session periods, though.
The screenshot shows TSLA, 30m timeframe, two heatmaps added. The top one shows pre/post-market data only, the bottom one main market data only. The cyan fields indicate the strongest occurrence, the dark blue fields indicate the weakest occurrence of open/high/low/close prices at the respective decimal. The red field indicates the current/last price decimal.
Clearly, TSLA displays a strong pre-market attraction for .00, followed by .33 and .67 and .50. This pattern of thirds seems to be a unique feature of TSLA. In the main trading session it is being diluted by a more random distribution.
Other interesting equities to examine:
SPY: No significant pattern on any timeframe!
META: Generally weak patterns on all timeframes, but interestingly on the 1D there is evidence for less randomness on O and H, more on L and most on C.
AAPL: 1D, foggy attraction areas around .35 and .12. Whole price is no attraction area at all! Very weak attraction around .73.
AMD: Strong pattern on D, W, M, attraction areas around 1/16th intervals. No patterns on lower timeframes.
AMZN: Significant differences between pre/post and main session. Strong 1/16th pattern below D in pre/post.
TAOP: Strong 1/5th pattern on all timeframes.
Read the tool tips and go explore!
EMA 9/21 with Target Price [SS]Hey everyone,
Coming back with my EMA 9/21 indicator.
My original one was removed a long time ago because I didn't really realize that there were already plenty of similar indicators (my bad!) but this one is my unique, Steversteves edition haha.
About the Indicator:
Essentially, it just combines the 2 only EMA's I ever really use (the 9 and 21) with an ATR based analysis to calculate the average range a ticker undergoes after an EMA 9 / 21 Cross-over and Cross-under.
You can see the major example being in the chart above. I use this for dramatic effect as SPY just happened to have topped at the second expected bull target on the daily. But obviously the intention for this indicator is to be used on the smaller timeframes. Let's take a look at some examples with various tickers.
TSLA:
So let's just use the previous day as example (which was Friday). If we look to the chart below:
TSLA did an EMA 9/21 crossover (bullish) in premarket. This put the immediate TP at 234.59. If we play out the chart:
We shot right to it at open.
We then did a cross under with a TP of 225.93, but that was not realized as the sentiment was too bullish. We then cross back over to the upside, putthing next TP at 238.88 which was realized:
NVDA:
On Friday, NVDA was a bit of a mess, lots of whipsaw off open. But once we finally had a cross under with 3 consecutive closes below the EMA9/21 on the 5 minute chart, it solidified the likelihood of a short:
And this was the result:
We came down to the first target, held it actually as support before finally crossing back over, setting the next TP at 475.05. We got 3 consecutive closes above the EMA 9/21, so let's see what happened:
Nothing really, we closed before we got there, but we did make progress towards it.
And last but not least SPY:
We opened the day with a bullish crossover and 3 consecutive closes above the EMA9/21, making our TP 441.38 (chart above). Let's see what happened:
We came just shy of it after the fed release volatility slammed it down, where we got a crossunder (bearish) to a TP of 436.21:
This ended up playing out, we did get a bullish crossover later in the day and so let's see what happened then:
So those are the real examples, most recent examples of trading using this. They are not all perfect, which is intentional because you need to use a bit of your own analysis, of course, when you are using this type of strategy or indicator. The EMA 9/21 is not sufficient generally on its own, but it is very helpful to gauge the immediate PA and whether the expected move aligns with your overall thesis on the day in terms of realistic target prices.
Customizability:
In terms of the customizability, this is a very basic indicator aside from the assessment of ranges. So there really is not a lot to customize.
You can toggle off and on the labels if you do not want them, you can also adjust the lookback length for the ATR assessment. The lookback length is defaulted to 500, I do really highly suggest you leave it at 500 because this has worked well for me and in back-testing, it has performed above my own expectations.
But, that said, you can take this and back-test as you wish with whatever parameters you feel are most appropriate. I haven't back-tested this on every stock known to man, my go to's are SPY, QQQ, sometimes MSFT and so it works well on those. But perhaps some others will have differing results.
Final Thoughts:
That is the indicator in a nutshell! It is really self explanatory and its likely a strategy most of you already know. This just helps to add realistic price targets and context to those cross-overs and cross-unders.
It also works fine on larger timeframes. We can see it on the 1 hour with MSFT:
On the 2 hour hour with QQQ:
And I am sure you can find other examples!
That's it everyone, safe trades!
D-Bot Alpha RSI Breakout StrategyHello dear Traders,
Here is a simple yet effective strategy to use, for best profit higher time frame, such as daily.
Structure of the code
The code defines inputs for SMA (simple moving average) length, RSI (relative strength index) length, RSI entry level, RSI stop loss level, and RSI take profit level. The default values of these variables can be customized as per the user's preferences.
The script calculates SMA and RSI based on the input parameters and the closing price of the asset.
Trading logic
This strategy allows the placement of a long position when:
The RSI crosses above the RSI entry level and
The close price is above the SMA value.
After entering a long position, it applies a trailing stop mechanism. The stop price is updated to the close price if the close price is lower than the last close price.
The script closes the long position when:
RSI falls below the stop loss level.
RSI reaches or exceeds the take profit level.
If the trailing stop is activated (once RSI reaches or exceeds the take profit level), the closing price falls below the trailing stop level.
Strengths
The strategy includes mechanisms for entering a position, taking profit, and stopping losses, which are fundamental aspects of a trading strategy.
It applies a trailing stop mechanism that allows to capture further gains if the price keeps increasing while protecting from losses if the price starts to decrease.
Weaknesses
This strategy only contemplates long positions. Depending on the market situation, the strategy may miss opportunities for short selling when the market is on a downward trend.
The choice of the fixed RSI entry, stop loss, and take profit levels may not be ideal for all market conditions or assets. It might benefit from a more adaptive mechanism that adjusts these levels according to market volatility or trend.
The strategy doesn't factor in trading costs (such as spread or commission), which could have a significant impact on the net profit, especially if the user is trading with a high frequency or in a low liquidity market.
How to trade with this strategy
Given these parameters and the strategy outlined by the code, the trader would enter a long position when the RSI crosses above the RSI entry level (default 34) and the closing price is above the SMA value (SMA calculated with default period of 200). The trader would exit the position when either the RSI falls below the RSI stop loss level (default 30), or RSI rises above the RSI take profit level (default 50), or when the trailing stop is hit.
Remember "The strategies I have prepared are entirely for educational purposes and should not be considered as investment advice. Support your trades using other tools. Wishing everyone profitable trades..."
Fair Value Strategy UltimateThis is a strategy using an index's (SPX, NDX, RUT) Fair Value derived from Net Liquidity.
Net Liquidity function is simply: Fed Balance Sheet - Treasury General Account - Reverse Repo Balance
Formula for calculating the fair value of and Index using Net Liquidity looks like this: net_liquidity/1000000000/scalar - subtractor
The Index Fair Value is then subtracted from the Index value which creates an oscillating diff value.
When diff is greater than the overbought threshold, Index is considered overbought and we go short/sell.
When diff is less than the oversold signal, Index is considered oversold and we cover/buy.
The net liquidity values I calculate outside of TradingView. If you'd like the strategy to work for future dates, you'll need to update the reference to my NetLiquidityLibrary , which I update daily.
Parameters:
Index: SPX, NDX, RUT
Strategy: Short Only, Long Only, Long/Short
Inverse (bool): check if using an inverse ETF to go long instead of short.
Scalar (float)
Subtractor (int)
Overbought Threshold (int)
Oversold Threshold (int)
Start After Date: When the strategy should start trading
Close Date: Day to close open trades. I just like it to get complete results rather than the strategy ending with open trades.
Optimal Parameters:
I've optimized the parameters for each index using the python backtesting library and they are as follows =>
SPX
Scalar: 1.1
Subtractor: 1425
OB Threshold: 0
OS Threshold: -175
NDX
Scalar: 0.5
Subtractor: 250
OB Threshold: 0
OS Threshold: -25
RUT
Scalar: 3.2
Subtractor: 50
OB Threshold: 25
OS Threshold: -25
Kalman Gain Parameter MechanicsFrequently asked question is to explain how Gain parameter works in kalman funtion. This script serves as a visual representation of Gain parameter of Kalman function used in HMA-Kalman & Trendlines script. (The function creator's name was misspeled in that script as Kahlman)
To see better results set your Chart's timeframe to Daily.
Heikin Ashi Smoothed Buy Sell (Sunseeder) I like to use it on the daily. This helps with indicating buy signals on the DXY, BITCOIN and ETH charts. You're able to customize the colors of the buy signals etc. Enjoy!