OG MACD-Histogram 6/13/5 © 2025🧠 OG MACD Histogram
📈 Developed by: OG WEALTH
📜 Description for TradingView:
This custom MACD Histogram was developed by OG WEALTH to provide elite-level momentum clarity and intraday reversal precision. Unlike traditional MACD tools, the OG MACD Histogram includes:
🔍 Smoother signal line filters for reduced noise
🟢 Dynamic histogram coloring for trend shifts
🛠 Designed for scalping, swing trades, and trend continuation setups
✅ Color Logic:
Dark green: Momentum building (bullish)
Light green: Momentum fading (still bullish, weakening)
Dark red: Bearish pressure increasing
Light red: Bearish exhaustion
🎯 Best For:
Confirming continuation moves
Detecting early reversals during low volume pullbacks
Pairing with EMA stacks (8/21 or 9/20)
📘 How to Use:
Use with trend overlays, such as EMAs or VWAP.
Look for dark green bars rising = possible call setup.
Look for dark red bars rising = possible put setup.
Wait for the histogram color to flip to confirm a momentum shift.
⚠️ Pro Tip: Combine with OG Flow Signal or ATR Trail for sniper-grade entries.
趨勢分析
Out of the Noise Intraday Strategy with VWAP [YuL]This is my (naive) implementation of "Beat the Market An Effective Intraday Momentum Strategy for S&P500 ETF (SPY)" paper by Carlo Zarattini, Andrew Aziz, Andrea Barbon, so the credit goes to them.
It is supposed to run on SPY on 30-minute timeframe, there may be issues on other timeframes.
I've used settings that were used by the authors in the original paper to keep it close to the publication, but I understand that they are very aggressive and probably shouldn't be used like that.
Results are good, but not as good as they are stated in the paper (unsurprisingly?): returns are smaller and Sharpe is very low (which is actually weird given the returns and drawdown ratio), there are also margin calls if you enable margin check (and you should).
I have my own ideas of improvements which I will probably implement separately to keep this clean.
Expanded Cloud [LuxAlgo]The Expanded Cloud tool allows traders to identify and follow trends accurately. It is based on the well-known Donchian Channels, but with enhanced features.
It features a trailing cloud that expands with the price and a trading stats dashboard.
🔶 USAGE
The tool is super easy to use. Traders can identify bigger or smaller trends just by adjusting the length from the settings panel.
Trend identification is based on Donchian Channels. An uptrend is indicated when the cloud is located below the price, while a downtrend is indicated when the cloud is above it.
Dots signal the start of a new trend, and the width of the clouds identifies the strength of the price expansion. The wider the cloud, the bigger the move.
The expanded cloud, due to its visual, can also act as a trailing stop.
🔹 Trend Identification
As we can see in the chart above, different length values identify different trends on the same BTC daily chart. Larger values identify larger trends.
🔹 Cloud Expansion
From the settings panel, traders can adjust how the clouds expand based on the Expansion % parameter. It accepts values from 0 to 100, which controls how much of the expansion is taken into account. Higher values will make the cloud expand and get closer to the price faster.
When the cloud moves opposite to the direction of the indicated trend (e.g: the cloud decreases while being below the price), it is often indicative of the end of a retracement, and we can expect the price to move with the indicated trend.
The chart above shows the effect of different Expansion % values.
🔹 Dashboard
The trading statistics dashboard informs traders of key metrics derived from the tool. The following are notable:
PNL: Theoretical profit or loss from all trends identified by the tool in the right scale units.
EXPECT.: Expected value of each trade. It is derived from win rate and risk-to-reward metrics.
AVG: 1st TOUCH: The average number of bars from the beginning of a new trend until the price touches the cloud for the first time.
🔶 SETTINGS
Length: Length for trend detection
Expansion %: Percentage of price expansion for cloud formation
Source: Source of the data
🔹 Dashboard
Show Dashboard: Enable/disable the statistics dashboard
Location: Dashboard location
Size: Dashboard size
ICT Setup 04 [TradingFinder] SFP Sweep Liquidity Fake CHoCH/BOS🔵 Introduction
In smart money and ICT based trading, liquidity is never random. Some of the most meaningful market moves begin with a liquidity sweep where price intentionally hunts a previous swing high or swing low to trigger stop loss orders and absorb volume.
This manipulation is often followed by a sharp reversal from a reaction zone, creating ideal conditions for a high probability entry. This indicator is built to detect exactly that. It identifies a valid swing point and defines a reaction zone where price is likely to react.
For short setups, the zone lies between the swing high and the maximum of the candle’s open or close. For long setups, it’s drawn from the swing low to the minimum of the open or close.
When price returns to this zone and forms a qualified confirmation candle typically a doji or a small bodied candle that closes inside the zone while sweeping the liquidity this is a potential sign of reversal.
The candle must show both the sweep and the inability to hold above or below the key level, signaling a fake breakout or failed move. By combining elements of liquidity hunt, reaction zone rejection, and candle based entry confirmation, this tool highlights sniper entry points used by smart money to trap retail traders and reverse the trend. It helps filter out noise and enhances timing, making it ideal for trading in alignment with institutional order flow.
Long Position :
Short Position :
🔵 How to Use
This indicator is designed to highlight precise moments where price sweeps liquidity and reacts within a high probability reversal zone. By identifying clean swing highs and lows and defining a smart reaction zone around them, it filters out weak fakeouts and focuses only on setups with strong institutional footprints.
The tool works best when combined with market structure analysis and is suitable for both scalping and intraday trading. Below is a breakdown of how to interpret the signals for long and short positions based on the visual setups provided.
🟣 Long Setup
In a long setup, the indicator first detects a valid swing low where liquidity has likely accumulated below. A reaction zone is then drawn between the swing low and the minimum of the open or close of the swing candle.
When price returns to this zone, it must sweep the previous low and form a precise confirmation candle, such as a doji or a small bodied candle, that closes inside the zone. This candle must also reject the lower level, showing failure to continue downward.
As shown in the chart, once the liquidity grab is complete and the confirmation candle forms, a clean long signal is issued, indicating a potential bullish reversal backed by smart money behavior.
🟣 Short Setup
In a short setup, the indicator identifies a swing high where buy-side liquidity is resting. It then constructs a reaction zone between the high and the maximum of the open or close of the swing candle. Price must return to this zone, sweep the swing high, and form a bearish confirmation candle inside the zone.
A classic example is a doji or rejection candle that traps breakout buyers and fails to hold above the previous high. In the provided chart, the price aggressively hunts the liquidity above the swing high, but the close within the reaction zone signals exhaustion, prompting a short signal with high reversal probability.
These setups represent moments where price action, liquidity behavior, and candle structure align to offer strong entries. By focusing on clean sweeps and reactive confirmations, the indicator helps traders stay on the side of smart money and avoid common breakout traps.
🔵 Settings
🟣 Logical settings
Swing period : You can set the swing detection period.
Max Swing Back Method : It is in two modes "All" and "Custom". If it is in "All" mode, it will check all swings, and if it is in "Custom" mode, it will check the swings to the extent you determine.
Max Swing Back : You can set the number of swings that will go back for checking.
Maximum Distance Between Swing and Signal :The maximum number of candles allowed between the swing point and the potential signal. The default value is 50, ensuring that only recent and relevant price reactions are considered valid.
🟣 Display settings
Displaying or not displaying swings and setting the color of labels and lines.
🟣 Alert Settings
Alert SFP : Enables alerts for Swing Failure Pattern.
Message Frequency : Determines the frequency of alerts. Options include 'All' (every function call), 'Once Per Bar' (first call within the bar), and 'Once Per Bar Close' (final script execution of the real-time bar). Default is 'Once per Bar'.
Show Alert Time by Time Zone : Configures the time zone for alert messages. Default is 'UTC'.
🔵 Conclusion
This indicator is built for traders who rely on liquidity driven setups and smart money principles. By combining swing structure analysis with precision reaction zones and strict entry confirmation, it isolates the exact moments where price sweeps liquidity and fails to continue. These are high value points where institutional activity often reveals itself, and retail traps unfold.
Unlike generic breakout tools, this script focuses on quality over quantity by requiring both a sweep of a swing high or low and a confirmed rejection candle that closes inside a predefined zone. With customizable swing depth, proximity filters, visual highlights, and alert functions, it offers a complete framework for identifying and acting on fake breakouts with confidence. Whether you trade forex, crypto, or indices, this tool enhances your ability to align with true order flow and take entries where liquidity is most likely to shift.
NASDAQ Reaper📈 NASDAQ Reaper – The Ultimate Wall Street Killer
The NASDAQ Reaper is a highly advanced Smart Money Concepts (SMC) + Price Action based indicator, engineered for traders who demand accuracy, precision, and real-time edge in the NASDAQ (NQ) market.
This tool was crafted for serious traders looking to dominate the charts with institutional-grade logic, featuring:
✅ Smart Buy/Sell Zones
✅ Opening Range Breakout (ORB) Detection
✅ Volume Confirmation for Strong Entries
✅ Real-Time Entry & Exit Signals
✅ Trend & Momentum Alignment (Multi-Timeframe Logic)
✅ Trailing TP & SL with Visual Feedback
✅ Backtest Module for Strategy Validation
💡 Designed to filter noise and highlight only high-probability setups, NASDAQ Reaper helps you stay one step ahead of retail traders and ride the moves the smart money makes.
🔔 Works best on:
• 5M, 15M, and 30M charts
• London and New York sessions
• Scalping or intraday swing strategy
Whether you're aiming for 50+ tick scalps or sniper entries aligned with trend reversals, this is your secret weapon to level up your trading game.
Ergin Swing V2"Wealth doesn’t come in a hurry. Be patient with yellow, take a break with purple."
Ergin Swing V2 is a minimalistic yet highly effective visual strategy built on a single indicator: EMA14.
✅ Yellow candle → First close above EMA14 = Buy signal
🟣 Purple candle → First close below EMA14 = Sell signal
🔇 No noisy signals in between. Only the first cross is marked.
Ideal for:
Swing traders who prefer clean charts
Trend-followers who avoid indicator overload
Anyone who wants to "see the signal" clearly without alerts popping every bar
➕ Can be extended with RSI, TP/SL logic, or trend filters
Created by Ergin • Powered by Patience • Verified by Candles
MC TQQQ Alpha v1Plots the difference between the stock 1 / 3 month performance and the NASDAQ:TQQQ 1 / 3 month performance (pre-enabled is the 1 month performance, but you can also enable the 3 month performance).
Confirmed Candlestick Pattern DetectorConfirmed Candlestick Pattern Detector, such as Evening Star, Morning Star etc.
PINO EMA Rhythm Pack📌 PINO EMA Rhythm Pack
This indicator provides a multi-layered visual framework for analyzing the **rhythm and structure** of price movements using a customizable combination of EMAs and SMA. It is designed to simplify the interpretation of momentum shifts, pullbacks, and structural alignment across different time frames.
---
🔹 **Purpose & Use**
Use this tool to interpret short-term market rhythm (EMA 10/20/50), detect transitions through mid-term anchors (EMA 21), and align with long-term directional flow (EMA 200, SMA 200), all within one clean overlay.
---
🔹 **Key Features**
- Default view focuses on short-term rhythm:
• EMA 10 / EMA 20 / EMA 50
- Optional anchors and long-term guides:
• EMA 21 / EMA 200 / SMA 200
- Clean line colors and varied thickness for quick visual parsing
- Fully toggleable components to suit your trading framework
- No alerts, no signals — just visual context
---
🔹 **Note**
This open-source script was built for educational purposes and practical chart use. It brings together widely-used moving average concepts into one flexible overlay, aiming to support **structured discretionary analysis** and improve visual clarity.
This open-source script was built for educational purposes and practical chart use.
multi_tf_trendHere is a powerful trend indicator that uses data from 3 different time frames to analyze trend direction and direction switches. You can change the timeframes with the drop down menu. The index adds up all the bull signals and subtracts bear signals. The index can help gauge a trend's longevity and strength. For example, Index of +2 is strongly bullish while an Index of -2 is strongly bearish.
Opening Range Breakout (15 mins Range)Take the guesswork out of your trading with the Opening Range Breakout Pro script. This tool automatically marks the high and low of the first 15 minutes of the NYSE session, then highlights the first candle to break out above or below this range—removing ambiguity from your trade entries.
The opening range is one of the most powerful concepts in day trading. By identifying the price range set during the market’s first minutes, you gain a clear framework for your trades. When price breaks out above the range, it often signals a strong bullish move; a break below signals bearish momentum. This script visually marks these moments, so you can react quickly and confidently.
Why use Opening Range Breakout Pro?
• Defined Entry and Exit Points: The script gives you clear, objective breakout levels—no more guessing when to enter a trade.
• Removes Emotional Trading: With visual cues for breakouts, you can follow a systematic approach and avoid hesitation or FOMO.
• Backtested, Time-Tested Strategy: The opening range breakout has been used by professional traders for decades to capture early trends and maximize profit potential.
• High Reward Potential: By capitalizing on the volatility and momentum of the opening session, traders often catch the best moves of the day.
• Easy to Use: Just add to your chart—no configuration needed. The script works on any NYSE stock, on a 5-minute chart.
How it works:
• Draws the opening 15-minute high and low as orange lines.
• Labels the range prices for quick reference.
• Marks the first candle to close above the range with an orange ▲, and the first to close below with an orange ▼.
Take control of your trading day, remove uncertainty, and trade with confidence—just like the pros.
🕵️ Spy StepRange Hybrid v2.0NOW THATS I WANT! OH yaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa
Beep Boop Enhanced - ENEXSLBeep Boop Enhanced - ENEXSL
A MACD-based momentum oscillator with trend filtering that displays signal strength in oscillating bands. Uses EMA trend confirmation to distinguish between strong and weak signals. Strong signals require complete price action alignment with the 50-period EMA trend, while weak signals indicate momentum without full trend confirmation. Includes overlay signal lines on the main chart for real-time trade signal visualization.
LVN/HVN Auto Detection [PhenLabs]📊 PhenLabs - LVN/HVN Auto Detection
Version: PineScript™ v6
📌 Description
The PhenLabs LVN/HVN Auto Detection indicator is an advanced volume profile analysis tool that automatically identifies Low Volume Nodes (LVN) and High Volume Nodes (HVN) across multiple trading sessions. This sophisticated indicator analyzes volume distribution patterns to pinpoint critical support and resistance levels where price is likely to react, providing traders with high-probability zones for entries, exits, and risk management.
Unlike traditional volume indicators that only show current activity, this tool builds comprehensive volume profiles from historical sessions and intelligently filters the most significant levels. It combines real-time volume analysis with dynamic level detection, offering both visual bubbles for immediate volume activity and persistent horizontal lines that act as ongoing support/resistance references.
🚀 Points of Innovation
Multi-Session Volume Profile Analysis - Automatically calculates and analyzes volume profiles across the last 5 trading sessions
Intelligent Level Separation Logic - Prevents overlapping signals by maintaining minimum separation between LVN and HVN levels
Dynamic Timeframe Adaptation - Automatically adjusts session lengths based on chart timeframe for optimal level detection
Real-Time Activity Bubbles - Shows volume activity strength through different bubble sizes at key levels
Persistent Line Management - Creates horizontal lines that extend until price crosses them, providing ongoing reference points
Dual Threshold System - Independent percentage-based thresholds for both LVN and HVN identification
🔧 Core Components
Volume Profile Engine : Builds 20-row volume profiles for each analyzed session, distributing volume across price levels
Level Identification Algorithm : Uses percentage-based thresholds to classify volume distribution patterns
Separation Logic : Ensures minimum distance between conflicting levels, prioritizing HVN when overlap occurs
Line Management System : Tracks active support/resistance lines and removes them when price crosses through
Volume Activity Monitor : Compares current volume to 13-period moving average for activity classification
🔥 Key Features
Customizable Thresholds : LVN threshold (5-35%, default 20%) and HVN threshold (65-95%, default 80%) for precise level filtering
Volume Activity Multiplier : Adjustable volume threshold (0.5+, default 1.5) for bubble and line creation sensitivity
Flexible Display Modes : Choose between Lines only, Bubbles only, or Both for optimal chart clarity
Smart Level Separation : Minimum separation percentage (0.1-2%, default 0.5%) prevents conflicting signals
Color Customization : Independent color controls for LVN (red) and HVN (blue) elements
Performance Optimization : Processes every 15 bars with maximum 500 active lines for smooth operation
🎨 Visualization
Colored Bubbles : Three sizes (large, medium, small) indicate volume activity strength at key levels
Horizontal Lines : Persistent support/resistance lines with width corresponding to volume activity
Dual Color System : Semi-transparent red for LVN areas, semi-transparent blue for HVN zones
Information Tooltip : Optional table showing usage guidelines and optimization tips
📖 Usage Guidelines
Volume Thresholds
LVN Threshold
○ Default: 20.0%
○ Range: 5.0-35.0%
○ Description: Price levels with volume below this percentage are marked as LVNs. Lower values create fewer, more significant levels. Typical range 15-25% works for most instruments.
HVN Threshold
○ Default: 80.0%
○ Range: 65.0-95.0%
○ Description: Price levels with volume above this percentage are marked as HVNs. Higher values create fewer, stronger levels. Range 75-85% is optimal for most trading.
Display Controls
Volume Threshold
○ Default: 1.5
○ Range: 0.5+
○ Description: Multiplier for volume significance (High=2+threshold, Medium=1+threshold, Low=0+threshold). Higher values require more volume for signals.
✅ Best Use Cases
Swing Trading : Identify key levels for position entries and exits over multiple days
Scalping : Use bubbles for immediate volume activity confirmation at critical levels
Risk Management : Place stops beyond LVN levels where price moves quickly
Breakout Trading : Monitor HVN levels for potential breakout or rejection scenarios
Multi-Timeframe Analysis : Combine with higher timeframe levels for confluence
⚠️ Limitations
Timeframe Sensitivity : Lower timeframes may produce too many levels; higher timeframes recommended for cleaner signals
Volume Data Dependency : Accuracy depends on reliable volume data from your data provider
Historical Analysis : Uses past volume data which may not predict future price behavior
Performance Impact : High number of active lines may affect chart performance on slower devices
💡 What Makes This Unique
Automated Session Analysis : No manual drawing required - automatically analyzes multiple sessions
Intelligent Filtering : Advanced separation logic prevents overlapping and conflicting signals
Adaptive Processing : Adjusts to different timeframes automatically for optimal level detection
Dual Visualization System : Combines persistent lines with real-time activity indicators
🔬 How It Works
1. Volume Profile Construction :
Analyzes the last 5 trading sessions with dynamic session length based on timeframe
Divides each session’s price range into 20 equal levels for volume distribution analysis
2. Level Classification :
Calculates volume percentage at each price level relative to session maximum
Identifies LVN levels below threshold and HVN levels above threshold
3. Signal Generation :
Creates bubbles when volume activity exceeds thresholds at identified levels
Draws horizontal lines that persist until price crosses through them
💡 Note : For optimal results, increase your chart timeframe if you see too many levels. The indicator performs best on 15-minute and higher timeframes where volume patterns are more meaningful and less noisy.
Heikin Ashi Consolidation DotsStay aligned with the bigger trend using simple visual dots that track higher timeframe Heikin Ashi trends.
Green = Bullish
Red = Bearish
Grey = Consolidation (low volatility)
Customizable timeframe and adjustable consolidation sensitivity — perfect for trend confirmation and identifying sideways markets. Ideal for scalpers and intraday traders.
TZADIKAOT - Triple Convergence🚀 *TZADIK – Triple Convergence*
The ultimate convergence indicator that brings clarity through the power of consensus.
*What’s Inside?*
A smart fusion of *3 powerful momentum-based indicators*:
* *SMI (Stochastic Momentum Index)*
* *Stochastic RSI*
* *CCI Stochastic*
📊 Each one generates its own buy/sell signal — and TZADIKAOT combines them into a clear, unified consensus:
* ✅ *3/3 BUY / SELL* – Strong entry signals
* ⚠ *2/3 BUY / SELL* – Moderate signals worth watching
* ⚪ *Neutral* – No consensus yet
🎯 *Features*:
✔ Dynamic score histogram
✔ Color-coded background zones
✔ Visual arrows + status labels
✔ Real-time signal table
✔ Built-in alerts for full consensus
*Who is it for?*
Traders who want structured, data-driven signals instead of noise — and a single, trustworthy indicator to guide their decisions.
💡 Designed for clarity, precision, and ease of use on *any timeframe*. No more guesswork. Just signals that matter.
Simple Multi-Timeframe Trends with RSI (Realtime)Simple Multi-Timeframe Trends with RSI Realtime Updates
Overview
The Simple Multi-Timeframe Trends with RSI Realtime Updates indicator is a comprehensive dashboard designed to give you an at-a-glance understanding of market trends across nine key timeframes, from one minute (M1) to one month (M).
It moves beyond simple moving average crossovers by calculating a sophisticated Trend Score for each timeframe. This score is then intelligently combined into a single, weighted Confluence Signal , which adapts to your personal trading style. With integrated RSI and divergence detection, SMTT provides a powerful, all-in-one tool to confirm your trade ideas and stay on the right side of the market.
Key Features
Automatic Trading Presets: The most powerful feature of the script. Simply select your trading style, and the indicator will automatically adjust all internal parameters for you:
Intraday: Uses shorter moving averages and higher sensitivity, focusing on lower timeframe alignment for quick moves.
Swing Trading: A balanced preset using medium-term moving averages, ideal for capturing trends that last several days or weeks.
Investment: Uses long-term moving averages and lower sensitivity, prioritizing the major trends on high timeframes.
Advanced Trend Scoring: The trend for each timeframe isn't just "up" or "down". The score is calculated based on a combination of:
Price vs. Moving Average: Is the price above or below the MA?
MA Slope: Is the trend accelerating or decelerating? A steep slope indicates a strong trend.
Price Momentum: How quickly has the price moved recently?
Volatility Adjustment: The score's quality is adjusted based on current market volatility (using ATR) to filter out choppy conditions.
Weighted Confluence Score: The script synthesizes the trend scores from all nine timeframes into a single, actionable signal. The weights are dynamically adjusted based on your selected Trading Style , ensuring the most relevant timeframes have the most impact on the final result.
Integrated RSI & Divergence: Each timeframe includes a smoothed RSI value to help you spot overbought/oversold conditions. It also flags potential bullish (price lower, RSI higher) and bearish (price higher, RSI lower) divergences, which can be early warnings of a trend reversal.
Clean & Customizable Dashboard: The entire analysis is presented in a clean, easy-to-read table on your chart. You can choose its position and optionally display the raw numerical scores for a deeper analysis.
How to Use It
1. Add to Chart: Apply the "Simple Multi-Timeframe Trends" indicator to your chart.
2. Select Your Style: This is the most important step. Go to the indicator settings and choose the Trading Style that best fits your strategy (Intraday, Swing Trading, or Investment). All calculations will instantly adapt.
3. Analyze the Dashboard:
Look at the Trend row to see the direction and strength of the trend on individual timeframes. Strong alignment (e.g., all green or all red) indicates a powerful, market-wide move.
Check the RSI row. Is the trend overextended (RSI > 60) or is there room to run? Look for the fuchsia color, which signals a divergence and warrants caution.
Focus on the Signal row. This is your summary. A "STRONG SIGNAL" with high alignment suggests a high-probability setup. A "NEUTRAL" or "Weak" signal suggests waiting for a better opportunity.
4. Confirm Your Trades: Use the SMTT dashboard as a confirmation tool. For example, if you are looking for a long entry, wait for the dashboard to show a "BULLISH" or "STRONG SIGNAL" to confirm that the broader market structure supports your trade.
Dashboard Legend
Trend Row
This row shows the trend direction and strength for each timeframe.
⬆⬆ (Dark Green): Ultra Bullish - Very strong, established uptrend.
⬆ (Green): Strong Bullish - Confident uptrend.
▲ (Light Green): Bullish - The beginning of an uptrend or a weak uptrend.
━ (Orange): Neutral - Sideways or consolidating market.
▼ (Light Red): Bearish - The beginning of a downtrend or a weak downtrend.
⬇ (Red): Strong Bearish - Confident downtrend.
⬇⬇ (Dark Red): Ultra Bearish - Very strong, established downtrend.
RSI Row
This row displays the smoothed RSI value and its condition.
Green Text: Oversold (RSI < 40). Potential for a bounce or reversal upwards.
Red Text: Overbought (RSI > 60). Potential for a pullback or reversal downwards.
Fuchsia (Pink) Text: Divergence Detected! A potential reversal is forming.
White Text: Neutral (RSI between 40 and 60).
Signal Row
This is the final, weighted confluence of all timeframes.
Label:
🚀 STRONG SIGNAL / 💥 STRONG SIGNAL: High confluence and strong momentum.
🟢 BULLISH / 🔴 BEARISH: Clear directional bias across relevant timeframes.
🟡 Weak + / 🟠 Weak -: Minor directional bias, suggests caution.
⚪ NEUTRAL: No clear directional trend; market is likely choppy or undecided.
Numerical Score: The raw weighted confluence score. The further from zero, the stronger the signal.
Alignment %: The percentage of timeframes (out of 9) that are showing a clear bullish or bearish trend. Higher percentages indicate a more unified market.
US30 Stealth StrategyOnly works on US30 (CAPITALCOM) 5 Minute chart
📈 Core Concept:
This is a trend-following strategy that captures strong market continuations by entering on:
The 3rd swing in the current trend,
Confirmed by a volume-verified engulfing candle,
With adaptive SL/TP and position sizing based on risk.
🧠 Entry Logic:
✅ Trend Filter
Uses a 50-period Simple Moving Average (SMA).
Buy only if price is above SMA → Uptrend
Sell only if price is below SMA → Downtrend
✅ Swing Count Logic
For buy: Wait for the 3rd higher low
For sell: Wait for the 3rd lower high
Uses a 5-bar lookback to detect highs/lows
This ensures you’re not buying early — but after trend is confirmed with structure.
✅ Engulfing Candle Confirmation
Bullish engulfing for buys
Bearish engulfing for sells
Candle must engulf previous bar completely (body logic)
✅ Volume Filter
Current candle volume must be greater than the 20-period volume average
Ensures trades only occur with institutional participation
✅ MA Slope Filter
Requires the slope of the 50 SMA over the last 3 candles to exceed 0.1
Avoids chop or flat trends
Adds momentum confirmation to the trade
✅ Session Filter (Time Filter)
Trades only executed between:
2:00 AM to 11:00 PM Oman Time (UTC+4)
Helps avoid overnight chop and illiquidity
📊 Position Sizing & Risk Management
✅ Smart SL (Adaptive Stop Loss)
SL is based on full size of the signal candle (including wick)
But if candle is larger than 25 points, SL is cut to half the size
This prevents oversized risk from long signals during volatile moves.
Intraday BUY/SELL & AUTO SL (5-min timeframe only) by chaitu50c)Intraday BUY/SELL & AUTO SL (5-min timeframe only) by chaitu50c
This indicator provides intraday traders with BUY/SELL reversal signals and automated SL (Stoploss) tracking, based on a 3-candle reversal block logic — designed to work exclusively on the 5-min timeframe.
Key Features:
• 3-Candle Reversal Logic — Signals are generated when a defined 3-candle reversal pattern is detected (body-close breakout).
• Current Session Only — All signals and SL lines are valid only for the current session and automatically reset at session start.
• BUY/SELL Signal Labels — Visual ▲ and ▼ labels mark valid reversal signals on the chart.
• Dynamic Auto SL Lines — Plots dashed SL lines based on the reversal block's low/high.
• SL HIT Tracking — If SL is broken, the line stops extending and a ‘SL HIT’ label is displayed at the midpoint of the SL line.
• Adjustable Visual Settings — Customize signal label size, SL line width, colors, and more.
• Clean & Lightweight — Optimized for intraday use without cluttering the chart.
How to Use:
You can trade this indicator in two ways:
1. Direct Signal Entry — Take a BUY or SELL trade when a valid ▲/▼ reversal signal forms.
2. SL HIT Re-entry — If an existing SL line is broken and ‘SL HIT’ appears, you can optionally take an opposite side trade in the direction of the SL HIT.
Example:
A BUY signal is generated and an SL line is plotted below.
If price breaks the SL (SL HIT appears), you may consider entering a SELL trade at that point — as it indicates weakness.
Important Notes:
• Works only on 5-min timeframe — Set your chart to 5-min for correct behavior.
• Designed for intraday trading — all signals and SL levels reset at session start.
• Does not carry signals between sessions.
• SL lines and HIT labels provide a clear and simple visual aid for trade management.
---
Mahnam BTC with breake outThis strategy is designed and coded specifically for trading Bitcoin in the 15-minute timeframe.
Of course, those who are skilled in coding can use it in other timeframes and currencies by changing its codes and personalizing it.
Of course, it is strongly recommended that people who want to use it first perform the necessary backtests or test this strategy on demo sites and then trade on the Tetri platform.
In this strategy, it only checks the entry and exit conditions and connects to the exchange using the API code and trades completely automatically.
This strategy determines the stop loss and take profit points on the exchange at the same time as entering the transaction and sets them.
///////////////////////// Code ////////////////////////////////
//@version=5
// Copyright (c) 2021-present, Alex Orekhov (everget)
//indicator('HalfTrend and TMA', overlay=true , max_lines_count = 500, max_labels_count = 500)
strategy(title='Mahnam BTC with breake out', overlay=true , max_bars_back=5000 , max_labels_count= 500 , max_boxes_count = 500,max_lines_count = 500, initial_capital=1000, currency = currency.USDT, default_qty_type=strategy.cash )
import PineCoders/Time/4
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
newyork = '0000-2400' // input.session(title='Session', defval='0000-2400')
time_newyork = time(timeframe.period, newyork)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// تعیین تاریخ شروع و پایان (بر حسب timestamp یونیکس)
// تنظیمات Input برای تاریخ شروع و پایان
startDate = input.time(timestamp('01 Jan 2025 00:00 UTC'), "📅 تاریخ شروع معاملات", inline="dateRange")
endDate = input.time(timestamp('31 Dec 2025 23:59 UTC'), "📅 تاریخ پایان معاملات", inline="dateRange")
// بررسی اینکه آیا زمان فعلی در بازه مجاز است یا خیر
isTradeEnabled = (time >= startDate) //and (time <= endDate)
///////////////////////////////////////////////////////////////////////////////////////////
// currentTime = time("15", "GMT+0")
// hourOfDay = hour(currentTime)
// notrade_hours1 = input.(12 , minval = 0 , maxval = 24 , title = "Hours Friday")
// notrade_hours2 = input.int(12 , minval = 0 , maxval = 24 , title = "Hours Monday")
////////////////////////////////////////////////////////////Holidays/////////////////////
// تعریف روزهای هفته
isSaturday = dayofweek == dayofweek.saturday //and hourOfDay > 12
isSunday = dayofweek == dayofweek.sunday
// isMonday = dayofweek == dayofweek.monday and hourOfDay < notrade_hours1
// isFriday = dayofweek == dayofweek.friday and hourOfDay > notrade_hours2
// رنگآمیزی پسزمینه برای شنبه (آبی کمرنگ) و یکشنبه (نارنجی کمرنگ)
bgcolor(isSaturday ? color.new(color.blue, 90) : isSunday ? color.new(color.orange, 90) : na)
//bgcolor(isMonday ? color.new(color.white, 90) : isFriday ? color.new(color.green, 90) : na)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تنظیمات پوزیشن
leverage = input.int(defval = 10 , title = "leverage" , minval = 1 , maxval = 20,step = 5 , group="Posistion Settings==========================================")
quantity = input.float(defval = 500 , title = "quantity" , minval = 1, group="Posistion Settings==========================================")
sl_manager = input.float(defval = 0.5 , step = 0.1 , title = "Risk Percent Of Capital", group="Posistion Settings==========================================")
persent_fee = input.float(defval = 0.05 , title = "Persent Fee Eexchange" , minval = 0 , maxval = 1,step = 0.01 , group="Posistion Settings==========================================")
position_type = input.string(defval = "Buy_And_Sell" , title = "Position_type" , options = , group="Posistion Settings==========================================" )
r_r_long = input.float(defval = 2 , step = 0.1 , title = "R - R =>", group="Posistion Settings==========================================")
r_r_short = r_r_long // input.float(defval = 1.8 , step = 0.1 , title = "r_r Short =>")
//////////////////////////////////////////////////////// END ROC /////////////////////////////////////
day_of_week = input.bool(false , title = "Trade in 7 days", group="Posistion Settings==========================================")
show_tp_sl_ent = true // input.bool(defval=true, title= "Show Tp Sl Ent Box", group="Posistion Settings==========================================")
show_qty = true // input.bool(defval = true , title = "Show Qty Label", group="Posistion Settings==========================================")
//////////////////////////////////////////////////////// Information Position ////////////////////////////////////////////////////
var short_is_open = false
var long_is_open = false
//variant for sell position
var sl1 = 0.0
var tp1 = 0.0
var ent1 = 0.0
var equity1 = 0.0
var qty1 = ""
//variant for buy position
var sl3 = 0.0
var qty2 = ""
var tp3 = 0.0
var ent2 = 0.0
var equity2 = 0.0
symbol = str.tostring(syminfo.basecurrency + "-" + syminfo.currency )
////////////////////////////////////////////////////////////////////////////////////////////////////////
var long_condition = false
var short_condition = false
persent_candel = 0.7 // input.float(defval = 0.7 , step = 0.1 , title = "درصد حرکت آخرین کندل", group="CANDEL Settings==========================================")
////////////////////////////////////////////////////////////////////////////////////////////////////////
amplitude = 2 // input.int(title='Amplitude', defval=2)
channelDeviation =2 //input.int(title='Channel Deviation', defval=2)
showChannels =true // input.bool(title='Show Channels', defval=true)
var int trend = 0
var int nextTrend = 0
var float maxLowPrice = nz(low , low)
var float minHighPrice = nz(high , high)
var float up = 0.0
var float down = 0.0
float atrHigh = 0.0
float atrLow = 0.0
float arrowUp = na
float arrowDown = na
len_atr = 130 // input.int(130 , title = "Len Half Trend")
atr2 = ta.atr(len_atr) / 2
dev = channelDeviation * atr2
highPrice = high
lowPrice = low
highma = ta.sma(high, amplitude)
lowma = ta.sma(low, amplitude)
if nextTrend == 1
maxLowPrice := math.max(lowPrice, maxLowPrice)
if highma < maxLowPrice and close < nz(low , low)
trend := 1
nextTrend := 0
minHighPrice := highPrice
minHighPrice
else
minHighPrice := math.min(highPrice, minHighPrice)
if lowma > minHighPrice and close > nz(high , high)
trend := 0
nextTrend := 1
maxLowPrice := lowPrice
maxLowPrice
if trend == 0
if not na(trend ) and trend != 0
up := na(down ) ? down : down
arrowUp := up - atr2
arrowUp
else
up := na(up ) ? maxLowPrice : math.max(maxLowPrice, up )
up
atrHigh := up + dev
atrLow := up - dev
atrLow
else
if not na(trend ) and trend != 1
down := na(up ) ? up : up
arrowDown := down + atr2
arrowDown
else
down := na(down ) ? minHighPrice : math.min(minHighPrice, down )
down
atrHigh := down + dev
atrLow := down - dev
atrLow
//////////////////////////////////////////////////////////////////////////////////////////////////////////
len_rsi = 14 // input.int(14, group = "RSI Setting=================================")
rsi = ta.rsi(close , len_rsi)
//////////////////////////////////////////////////////////////////////////////////
// محاسبات مربوط به تعیین خطوط حمایت و مقاومت و شکست آنها
show_ATR = input.bool(false)
lookback_15 = 4 // input.int(4, title = "====>Look Back 1H=====>", inline = "2", group = "Setting Pivot======================", tooltip = "Drawing support and resistance in time frame 15 min in selected look back")
pl60 = fixnan(ta.pivotlow( low , lookback_15 , lookback_15 ))
ph60 = fixnan(ta.pivothigh( high , lookback_15 , lookback_15 ))
plot(show_ATR ? pl60 : na , color = color.red)
plot(show_ATR ? ph60 : na , color = color.green)
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
len_ema_fast_long = 2 // input.int(2)
sorce_tma_long = low // input.source(low)
ema_fast_long = ta.ema(sorce_tma_long , len_ema_fast_long)
len_ema_slow_long = 25 // input.int(25)
ema_slow_long = ta.ema(sorce_tma_long , len_ema_slow_long)
//**********************************
len_ema_fast_short = 2 // input.int(2)
sorce_tma_short = high // input.source(close)
ema_fast_short = ta.ema(sorce_tma_short , len_ema_fast_short)
len_ema_slow_short = 25 // input.int(25)
ema_slow_short = ta.ema(sorce_tma_short , len_ema_slow_short)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
bars = 2 // input.int(9,title="Volume Previous bars to check")
//one_side = input.bool(false, title="Positive values only")
float volume_up = 0
float volume_down = 0
for i = 0 to bars
if (close >open )
volume_up:=volume_up+volume
else
volume_down:=volume_down+volume
total_up_down_vol= volume_up-volume_down
vol_bb = 8 // input.int(8)
vol_aa = 2 // input.int(2)
pivot_high_vol = fixnan(ta.pivothigh(total_up_down_vol , vol_bb , vol_aa ))
pivot_low_vol = fixnan(ta.pivotlow(total_up_down_vol , vol_bb , vol_aa ))
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
CLOSE = close
LOW = low
HIGH = high
//////////////////////////////////////////////////////////////////////////////////
//
//reg_trend_on = input(true, 'Activate Reg Trend Line')
length_bull_bear = 4 // input.int(defval= 4, title='🔹 Length Reg Trend line=', minval=1)
//
BullTrend_hist = 0.0
BearTrend_hist = 0.0
BullTrend = (CLOSE - ta.lowest(LOW, length_bull_bear)) / (ta.sma(ta.tr(true), length_bull_bear ))
BearTrend = (ta.highest(HIGH, length_bull_bear) - CLOSE) / (ta.sma(ta.tr(true), length_bull_bear ))
BearTrend2 = -1 * BearTrend
Trend = BullTrend - BearTrend
// plot columun
if BullTrend < 2
BullTrend_hist := BullTrend - 2
BullTrend_hist
if BearTrend2 > -2
BearTrend_hist := BearTrend2 + 2
BearTrend_hist
//alexgrover-Regression Line Formula
x = bar_index
y = Trend
x_ = ta.sma(x, length_bull_bear)
y_ = ta.sma(y, length_bull_bear)
mx = ta.stdev(x, length_bull_bear)
my = ta.stdev(y, length_bull_bear)
c = ta.correlation(x, y, length_bull_bear)
slope = c * (my / mx)
inter = y_ - slope * x_
reg_trend = x * slope + inter
/////////////////////////////////////////////////
long2 = true
short2 = true
close_H = request.security("" , "" , close )
open_H = request.security("" , "" , open )
if close_H > open_H and close_H > open_H
short2 := false
if close_H < open_H and close_H < open_H
long2 := false
nnn = 1.4 // input.float(1.4 , step = 0.1)
long_1 = BullTrend > nnn and ta.sma(reg_trend , 4 ) > ta.sma(reg_trend , 8 )
short_1 = BearTrend2 < -nnn and ta.sma(reg_trend , 4 ) < ta.sma(reg_trend , 8 )
///////////////////////////////////////////////////
lensig_mdi = 8 // input.int(8, title="ADX Smoothing", minval=1)
len_mdi = 2 // input.int(2, minval=1, title="DI Length")
up_mdi = ta.change(high)
down_mdi = -ta.change(low)
plusDM = na(up_mdi) ? na : (up_mdi > down_mdi and up_mdi > 0 ? up_mdi : 0)
minusDM = na(down_mdi) ? na : (down_mdi > up_mdi and down_mdi > 0 ? down_mdi : 0)
trur_mdi = ta.rma(ta.tr, len_mdi)
plus_mdi = fixnan(100 * ta.rma(plusDM, len_mdi) / trur_mdi)
minus_mdi = fixnan(100 * ta.rma(minusDM, len_mdi) / trur_mdi)
sum = plus_mdi + minus_mdi
adx = 100 * ta.rma(math.abs(plus_mdi - minus_mdi) / (sum == 0 ? 1 : sum), lensig_mdi)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// تنظیمات SuperTrend
atrPeriod = 28 // input(28, title="ATR Period Super Trend")
factor = 3 // input(3.0, title="Multiplier")
= ta.supertrend(factor, atrPeriod)
// تعریف تایمفریمهای بالاتر
htf0 = "30" // input.timeframe("30", title="تایمفریم تأیید اول (1H)")
htf1 = "60" // input.timeframe("60", title=" ایمفریم تأیید دوم (1H)")
htf2 = "240" // input.timeframe("240", title="تایمفریم تأیید سوم (4H)")
// محاسبه SuperTrend در تایمفریمهای بالاتر
supertrend1 = request.security(syminfo.tickerid, htf0, supertrend)
direction1 = request.security(syminfo.tickerid, htf0, direction)
supertrend1H = request.security(syminfo.tickerid, htf1, supertrend )
direction1H = request.security(syminfo.tickerid, htf1, direction)
supertrend4H = request.security(syminfo.tickerid, htf2, supertrend )
direction4H = request.security(syminfo.tickerid, htf2, direction)
// شرایط ورود
Condition_supertrend_long = (direction1H > 0 or direction4H > 0 or direction1 > 0) and volume > fixnan(ta.pivotlow(volume , 16 , 2 ))
Condition_supertrend_short = (direction1H < 0 or direction4H < 0 or direction1 < 0) and volume > fixnan(ta.pivotlow(volume , 16 , 2 ))
//////////////////////////////////////////////////////////////////////////////////////////////////////////
open_4h = request.security("" , "240" , open )
close_4h = request.security("" , "240" , close )
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
if day_of_week == false
if isTradeEnabled == true and time == time_newyork and not isSaturday and not isSunday //and not isFriday and not isMonday
long_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi > 51 and rsi < 80
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_long > ema_slow_long and high > ph60 and open < ph60 and long_1 == true and long2 == true
and plus_mdi > minus_mdi and Condition_supertrend_long == true and high > close_4h and close > atrHigh
short_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi < 49 and rsi > 20
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_short < ema_slow_short and low < pl60 and open > pl60 and short_1 == true and short2 == true
and plus_mdi < minus_mdi and Condition_supertrend_short == true and low < close_4h and close < atrLow
if day_of_week == true
if isTradeEnabled == true and time == time_newyork
long_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi > 51 and rsi < 80
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_long > ema_slow_long and high > ph60 and open < ph60 and long_1 == true and long2 == true
and plus_mdi > minus_mdi and Condition_supertrend_long == true and high > close_4h and close > atrHigh
short_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi < 49 and rsi > 20
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_short < ema_slow_short and low < pl60 and open > pl60 and short_1 == true and short2 == true
and plus_mdi < minus_mdi and Condition_supertrend_short == true and low < close_4h and close < atrLow
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تنظیمات استاپ سل پوزیشن شورت و لانگ بر اساس ATR
length_atr = 2 // input.int(title='Length', defval=2, minval=1, group = "StopLoss Setting=================================")
m = 0.9 // input.float(0.9,step = 0.1,title = 'Multiplier', group = "StopLoss Setting=================================")
show_atr = false // input.bool(false, group = "StopLoss Setting=================================")
src1_atr = high //input(high , title = "Stoploss Short")
src2_atr = low //input(low ,title = "Stoploss Long")
collong_atr = color.rgb(0,255,0,0)
colshort_atr = color.rgb(255,0,0,0)
a1 = (ta.sma(ta.tr(true), length_atr) * m) / 2 + (ta.wma(ta.tr(true), length_atr) * m) / 2
stop_loss_short = src1_atr + a1
stop_loss_long = src2_atr - a1
p1_atr1 = plot(show_atr ? stop_loss_long : na, title='ATR Short Stop Loss', color=colshort_atr, style=plot.style_circles)
p2_atr1 = plot(show_atr ? stop_loss_short : na, title='ATR Long Stop Loss', color=collong_atr, style=plot.style_circles)
/////////////////////////////////////////////////////////////////Start Stop Loss///////////////////////////////////////////////
/////////////////////////////////////////////////////////////////END Stop Loss///////////////////////////////////////////////
var total_long_trade = 0
var loss_long = 0
var profit_long = 0
var sood_pos_long = 0.00
var zarar_pos_long = 0.00
var kol_sood_long = 0.00
var total_short_trade = 0
var loss_short = 0
var profit_short = 0
var sood_pos_short = 0.00
var zarar_pos_short = 0.00
var kol_sood_short = 0.00
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ━━━━━━━━━━━━━━━━━━ تنظیمات ورودی ━━━━━━━━━━━━━━━━━━
var int candlesToWait = 12 // input.int(1, "تعداد کندلهای انتظار پس از معامله", minval=1)
// ━━━━━━━━━━━━━━━━━━ شناسایی آخرین معامله ━━━━━━━━━━━━━━━━━━
var int lastTradeCloseBar = na
var bool isCoolDownOver = true
// اگر معاملهای بسته شد، شماره کندل آن را ذخیره کن
if strategy.closedtrades > 0 and (na(lastTradeCloseBar) or strategy.closedtrades != strategy.closedtrades )
lastTradeCloseBar := bar_index
isCoolDownOver := false
// بررسی آیا تعداد کندلهای موردنظر گذشته است؟
if not na(lastTradeCloseBar) and (bar_index - lastTradeCloseBar) >= candlesToWait
isCoolDownOver := true
bgcolor(isCoolDownOver ? na : color.new(color.red, 90), title="Cooldown Status")
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// تنظیمات دستورات لازم برای ارسال به صرافی جهت پوزیشن لانگ
//ADD_quantity = 1.5 // input.float(2 , title = "در صورت واگرایی ماجین رو چند بابر کنم؟")
if position_type == "Buy" or position_type == "Buy_And_Sell"
if long_condition and isCoolDownOver
ent2 := close
sl3 :=stop_loss_long - (stop_loss_long * (0.5 / leverage) / 100 )
tp3 := ent2 + ((ent2 - sl3) * r_r_long)
number_coin = ((quantity * leverage * sl_manager) / ((ent2 - sl3) *100))
equity2 := math.round ((number_coin * close ) , 3)
if equity2 > quantity * leverage
equity2 := quantity * leverage
//////////////////////////////////////////////////////////////////////////////////
if show_qty
label.new(bar_index , low , str.tostring(equity2) + "$" , color = color.rgb(0, 255, 0,0) , size = size.normal , style = label.style_label_up)
strategy.entry(id="buy", direction = strategy.long , qty=(equity2/close) )
if close >= 10 and close < 500
qty2 := str.tostring(math.round(equity2/close , 2))
else
qty2 := str.tostring(math.round(equity2/close , 0))
if close > 500
qty2 := str.tostring(math.round(equity2/close , 3 ))
if symbol == "AAVEUSDT"
qty2 := str.tostring(math.round(equity2/close , 1))
// ================/ برای باز کردن پوزیشن از این مقدار استفاده میکند /======================
message1 = '{"symbol":"'+symbol+'","type":"MARKET", "side":"BUY", "positionSide": "LONG", "quantity":"'+qty2+'","leverage": "'+str.tostring(leverage)+'","marginMode": "Isolated","botmix-action":"open-market-order-v2"}'
// message1 = '{ "side":"Ask","symbol":"'+symbol+'","tradeType":"Market","entrustVolume":"'+qty1+'","action":"Open","marginMode":"Isolated","leverage":"'+str.tostring(leverage)+'", "takerProfitPrice":"'+str.tostring(tp1)+'","stopLossPrice":"'+str.tostring(sl1)+'","botmix-action":"open-market-order" }'
// message1 = '{ "batchOrders": ,"botmix-action":"open-multiple-order" }'
alert(message1 , alert.freq_once_per_bar)
message2 = '{"symbol":"'+symbol+'","type":"LIMIT","side":"SELL", "positionSide": "LONG","delay": 5 ,"quantity":"'+qty2+'","price": "'+str.tostring(tp3)+'", "botmix-action":"open-market-order-v2"}'
alert(message2 , alert.freq_once_per_bar)
message3 = '{"symbol":"'+symbol+'","type":"STOP_MARKET","side":"SELL","positionSide": "LONG","delay": 10 ,"quantity":"'+qty2+'","price": "'+str.tostring(sl3)+'", "stopPrice": "'+str.tostring(sl3)+'","botmix-action":"open-market-order-v2"}'
alert(message3 , alert.freq_once_per_bar)
long_is_open := true
if show_tp_sl_ent
line.new(bar_index, tp3, bar_index + 15, tp3, xloc= xloc.bar_index, color= color.rgb(0, 255, 0,0 ), width = 1)
box.new(bar_index , tp3 , bar_index + 15 , ent2 ,bgcolor = color.rgb(0, 255, 0 , 90) , border_color = color.rgb(0, 255, 0 , 80) )
line.new(bar_index, (tp3 - ((tp3 - ent2) /2)), bar_index + 15, (tp3 - ((tp3 - ent2) /2)), xloc= xloc.bar_index, color= color.rgb(0, 17, 255), width = 2 , style = line.style_dashed)
line.new(bar_index, sl3, bar_index + 15, sl3, xloc= xloc.bar_index, color= color.rgb(255, 0, 0,0), width = 1)
box.new(bar_index , sl3 , bar_index + 15 , ent2 ,bgcolor = color.rgb(255, 0, 0, 90) , border_color = color.rgb(255, 0, 0 , 80) )
line.new(bar_index , ent2 , bar_index + 15 , ent2 , color = color.rgb(255, 255, 0, 0))
/////////////////////////////////////////////////////////
total_long_trade := total_long_trade + 1
if low <= sl3 and long_is_open == true
loss_long := loss_long + 1
zarar_pos_long := zarar_pos_long + (((ent2 - sl3) / ent2) * equity2)
if high >= tp3 and long_is_open == true
profit_long := profit_long + 1
sood_pos_long := sood_pos_long +(((tp3 - ent2) / ent2) * equity2)
kol_sood_long := sood_pos_long - zarar_pos_long
/////////////////////////////////////////////////////////////
if (low <= sl3 or high >= tp3) and long_is_open == true
long_is_open := false
strategy.exit( id = "buy" , from_entry = "buy" , limit = tp3 , stop = sl3 , qty_percent = 100 , comment_profit = "tp" , comment_loss = "sl" )
color_kol_pos_long = kol_sood_long >0 ? color.rgb(0,255,0) : color.rgb(255,0,0)
// //////////////////////LONG___ENNNDD//////////////////////////////////////////////////////////
// تظیمات دستورات لازم برای ارسال به صرافی جهت پوزیشن شورت
if position_type == "Sell" or position_type == "Buy_And_Sell"
if short_condition and isCoolDownOver
ent1 := close
sl1 :=stop_loss_short + (stop_loss_short * (0.5 / leverage) / 100 )
tp1 := ent1 - ((sl1 - ent1 ) * r_r_short)
number_coin = ((quantity * leverage * sl_manager) / ((sl1 - ent1) *100))
equity1 := math.round ((number_coin * close ) , 3)
if equity1 > quantity * leverage
equity1 := quantity * leverage
/////////////////////////////////////////////////////////////////////////////////////////
if show_qty
label.new(bar_index , high , str.tostring(equity1) + "$" , color = color.rgb(255, 0, 0,0) , size = size.normal , style = label.style_label_down)
strategy.entry(id="sell", direction = strategy.short, qty=(equity1/close) )
if close >= 10 and close < 500
qty1 := str.tostring(math.round(equity1/close , 2))
else
qty1 := str.tostring(math.round(equity1/close , 0))
if close > 500
qty1 := str.tostring(math.round(equity1/close , 3))
if symbol == "AAVEUSDT"
qty1 := str.tostring(math.round(equity1/close , 1))
// ================/ برای باز کردن پوزیشن از این مقدار استفاده میکند /======================
message1 = '{"symbol":"'+symbol+'","type":"MARKET", "side":"SELL", "positionSide": "SHORT", "quantity":"'+qty1+'","leverage": "'+str.tostring(leverage)+'","marginMode": "Isolated","botmix-action":"open-market-order-v2"}'
// message1 = '{ "side":"Ask","symbol":"'+symbol+'","tradeType":"Market","entrustVolume":"'+qty1+'","action":"Open","marginMode":"Isolated","leverage":"'+str.tostring(leverage)+'", "takerProfitPrice":"'+str.tostring(tp1)+'","stopLossPrice":"'+str.tostring(sl1)+'","botmix-action":"open-market-order" }'
// message1 = '{ "batchOrders": ,"botmix-action":"open-multiple-order" }'
alert(message1 , alert.freq_once_per_bar)
message2 = '{"symbol":"'+symbol+'","type":"LIMIT","side":"BUY", "positionSide": "SHORT","delay": 5 ,"quantity":"'+qty1+'","price": "'+str.tostring(tp1)+'", "botmix-action":"open-market-order-v2"}'
alert(message2 , alert.freq_once_per_bar)
message3 = '{"symbol":"'+symbol+'","type":"STOP_MARKET","side":"BUY","positionSide": "SHORT","delay": 10 ,"quantity":"'+qty1+'","price": "'+str.tostring(sl1)+'", "stopPrice": "'+str.tostring(sl1)+'","botmix-action":"open-market-order-v2"}'
alert(message3 , alert.freq_once_per_bar)
short_is_open := true
if show_tp_sl_ent
line.new(bar_index, tp1, bar_index + 15, tp1, xloc= xloc.bar_index, color= color.rgb(0, 255, 0,0 ), width = 1)
box.new(bar_index , tp1 , bar_index + 15 , ent1 ,bgcolor = color.rgb(0, 255, 0 , 90) , border_color = color.rgb(0, 255, 0 , 80) )
line.new(bar_index, (tp1+((ent1 - tp1)/2)), bar_index + 15, (tp1+((ent1 - tp1)/2)), xloc= xloc.bar_index, color= color.rgb(4, 0, 255), width = 2 , style= line.style_dashed)
line.new(bar_index, sl1, bar_index + 15, sl1, xloc= xloc.bar_index, color= color.rgb(255, 0, 0,50), width = 1)
box.new(bar_index , sl1 , bar_index + 15 , ent1 ,bgcolor = color.rgb(255, 0, 0, 90) , border_color = color.rgb(255, 0, 0 , 80) )
line.new(bar_index , ent1 , bar_index + 15 , ent1 , color = color.rgb(255, 255, 0,0))
////////////////////////////////////////////////////////////////////////////////////
total_short_trade := total_short_trade + 1
if high >= sl1 and short_is_open == true
loss_short := loss_long + 1
zarar_pos_short := zarar_pos_short + (((sl1 - ent1) / ent1) * equity1)
if low <= tp1 and short_is_open == true
profit_short := profit_short + 1
sood_pos_short := sood_pos_short +(((ent1 - tp1) / ent1) * equity1)
kol_sood_short := sood_pos_short - zarar_pos_short
///////////////////////////////////////////////////////////////////////////////////
if (high >= sl1 or low <= tp1 ) and short_is_open == true
short_is_open := false
strategy.exit( id = "sellext1" , from_entry = "sell" , limit = tp1 , stop = sl1 , qty_percent = 100 , comment_profit = "tp" , comment_loss = "sl" )
color_kol_pos_short = kol_sood_short > 0 ? color.rgb(0,255,0) : color.rgb(255,0,0)
////////////////////////////////////////////////////////////////////////////////////////////
kol_trade = loss_short + loss_long + profit_long + profit_short
/////////////////////SHORT___ENNNDD//////////////////////////////////////////////////////
closed_trades = (loss_short + loss_long + profit_long + profit_short) // strategy.closedtrades
kolfee = (closed_trades * quantity * leverage * persent_fee) / 100
net_profit = math.round((kol_sood_short + kol_sood_long) , 2 ) - kolfee
net_percent = math.round((net_profit / quantity) * 100 , 2)
win_rate = math.round(((profit_long + profit_short) / kol_trade) * 100 , 2) //math.round((strategy.wintrades / strategy.closedtrades) * 100 , 2)
ending = math.round((quantity + net_profit) , 2)
profit_factor = math.round((sood_pos_long + sood_pos_short) / math.abs(zarar_pos_long + zarar_pos_short) , 2)
drow_down = math.round((strategy.max_drawdown / quantity) * 100, 2 )
show_reportTabel = input.bool(true)
if show_reportTabel
table_color = color.rgb(0, 0, 0)
var table result_table = table.new(position.top_right, 30, 40, bgcolor=color.rgb(255,255,255,0), frame_color=color.rgb(0, 0, 0,0), frame_width=1, border_width=2)
table.cell(result_table , column = 0 , row = 0 , text = "TEST BTC with breake out: " + str.tostring(kol_trade) , bgcolor = table_color , text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 1 , row = 0 , text = "starting: " + str.tostring(quantity) + "$" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 2 , row = 0 , text = "Net Profit: " + str.tostring(net_profit) + "$: " + " fee = " + str.tostring(kolfee) , bgcolor = table_color, text_color = net_profit > 0 ? color.rgb(0,255,0,0) : color.rgb(255,0,0,0))
table.cell(result_table , column = 0 , row = 1 , text = "Win Rate: " + str.tostring(win_rate) + "%" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 1 , row = 1 , text = "Ending: " + str.tostring(ending) + "$" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 2 , row = 1 , text = "Profit Factor: " + str.tostring(profit_factor) , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 3 , row = 0 , text = "Net Percent: " + str.tostring(net_percent) + "%" , bgcolor = table_color, text_color = net_percent > 0 ? color.rgb(0,255,0,0) : color.rgb(255,0,0,0))
table.cell(result_table , column = 3 , row = 1 , text = "Draw Down: " + str.tostring(drow_down) + "%" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 4 , row = 0 , text = "Stop: " + "Short =" + str.tostring(loss_short)+ " " +"Long =" + str.tostring(loss_long) , bgcolor = table_color, text_color = color.rgb(255,0,0,0))
table.cell(result_table , column = 4 , row = 1 , text = "TP: " + "Short =" + str.tostring(profit_short)+ " " +"Long =" + str.tostring(profit_long) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 5 , row = 0 , text = "Short: " + "sood =" + str.tostring(math.round(sood_pos_short,2)) + " " + "Zarar =" + str.tostring(math.round(zarar_pos_short,2)) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 5 , row = 1 , text = "Long: " + "sood =" + str.tostring(math.round(sood_pos_long,2)) + " " + "Zarar =" + str.tostring(math.round(zarar_pos_long,2)) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 6 , row = 0 , text = "Kol Sood Short: " + "Short =" + str.tostring(math.round(kol_sood_short,2)) , bgcolor = table_color, text_color = color_kol_pos_short)
table.cell(result_table , column = 6 , row = 1 , text = "Kol Sood Long: " + "LONG =" + str.tostring(math.round(kol_sood_long,2)) , bgcolor = table_color, text_color = color_kol_pos_long)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////////////////////////////
// // ********** تنظیمات **********
// show_monthly_Report = input.bool(false, "نمایش گزارش ماهیانه")
// exchange_fee_percent = 0.05 / 100 // input.float(0.05, "کارمزد صرافی (%)", step=0.01) / 100
// indicator_name = 'BTC with breake out' // input.string("تحلیلگر حرفه ای - گزارش ماهیانه", "عنوان اندیکاتور")
// show_total_row = true // input.bool(true, "نمایش سطر جمع کل")
// // ********** ایجاد جدول **********
// var table monthlyReport = table.new(position = position.top_right, columns = 6,rows = 21,bgcolor = color.rgb(33, 33, 33),
// border_width = 2,border_color = color.rgb(80, 80, 80),frame_width = 1,frame_color = color.rgb(50, 50, 50))
// // ********** متغیرهای ماهیانه **********
// var int currentMonth = na
// var int monthTrades = 0
// var int monthWinningTrades = 0
// var float totalFees = 0.0
// var float monthNetProfit = 0.0
// // ********** متغیرهای جمع کل **********
// var float totalAllTrades = 0.0
// var float totalAllFees = 0.0
// var float totalAllNetProfit = 0.0
// var int totalAllWinningTrades = 0
// var int totalAllMonths = 0
// // ********** تشخیص تغییر ماه **********
// isNewMonth = ta.change(month) or ta.change(year)
// // ********** محاسبات معاملات **********
// tradeClosed = strategy.closedtrades > strategy.closedtrades
// if tradeClosed
// lastTradeIndex = strategy.closedtrades - 1
// tradeSize = math.abs(strategy.closedtrades.size(lastTradeIndex) * strategy.closedtrades.exit_price(lastTradeIndex))
// tradeFee = tradeSize * exchange_fee_percent
// totalFees := totalFees + tradeFee
// tradeProfit = strategy.closedtrades.profit(lastTradeIndex)
// monthNetProfit := monthNetProfit + tradeProfit
// monthTrades := monthTrades + 1
// if tradeProfit > 0
// monthWinningTrades := monthWinningTrades + 1
// // ********** مدیریت گزارش ماهیانه **********
// if isNewMonth and show_monthly_Report and not na(currentMonth)
// // محاسبات ماهانه
// grossProfit = monthNetProfit
// netProfit = grossProfit - totalFees
// winRate = monthTrades > 0 ? (monthWinningTrades/monthTrades)*100 : 0
// // به روزرسانی جمع کل
// totalAllTrades := totalAllTrades + monthTrades
// totalAllFees := totalAllFees + totalFees
// totalAllNetProfit := totalAllNetProfit + netProfit
// totalAllWinningTrades := totalAllWinningTrades + monthWinningTrades
// totalAllMonths := totalAllMonths + 1
// // نمایش در جدول
// row = (month % 12 == 0 ? 12 : month % 12) + 2 // +2 برای جا دادن سطرهای عنوان
// monthName = str.tostring(year ) + "-" + str.tostring(month , "00")
// table.cell(monthlyReport, 0, row, monthName, text_color=color.white)
// table.cell(monthlyReport, 1, row, str.tostring(monthTrades), text_color=color.white)
// table.cell(monthlyReport, 2, row, str.tostring(grossProfit, "0.00") + " $")
// table.cell(monthlyReport, 3, row, str.tostring(totalFees, "0.00") + " $")
// table.cell(monthlyReport, 4, row, str.tostring(netProfit, "0.00") + " $")
// table.cell(monthlyReport, 5, row, str.tostring(winRate, "1.0") + "%")
// // رنگ آمیزی سود/زیان
// textColor = netProfit >= 0 ? color.rgb(0, 200, 0) : color.rgb(200, 0, 0)
// for i = 2 to 5
// table.cell_set_text_color(monthlyReport, i, row, textColor)
// // ********** سطر جمع کل **********
// if show_monthly_Report and show_total_row and totalAllMonths > 0
// totalWinRate = totalAllTrades > 0 ? (totalAllWinningTrades/totalAllTrades)*100 : 0
// table.cell(monthlyReport, 0, 15, "جمع کل (" + str.tostring(totalAllMonths) + " ماه)",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50),
// width=6)
// table.cell(monthlyReport, 1, 15, str.tostring(totalAllTrades),
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 2, 15, str.tostring(totalAllNetProfit + totalAllFees, "0.00") + " $",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 3, 15, str.tostring(totalAllFees, "0.00") + " $",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 4, 15, str.tostring(totalAllNetProfit, "0.00") + " $",
// text_color = totalAllNetProfit >= 0 ? color.green : color.red,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 5, 15, str.tostring(totalWinRate, "1.0") + "%",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// // ********** ریست ماهیانه **********
// if isNewMonth
// currentMonth := month
// monthTrades := 0
// monthWinningTrades := 0
// totalFees := 0.0
// monthNetProfit := 0.0
// // ********** عنوانهای جدول **********
// if barstate.isfirst and show_monthly_Report
// // عنوان اصلی (یکپارچه در سطر اول)
// table.cell(
// monthlyReport,
// column = 4, // ستون شروع (0 = اولین ستون)
// row = 0, // ردیف 0 (اولین ردیف)
// text = indicator_name,
// bgcolor = color.rgb(0, 0, 0),
// text_size = size.small,
// text_color = color.rgb(255,255,0),
// width = 12, // گسترش روی تمام 6 ستون
// height = 4 // ارتفاع بیشتر برای وضوح بهتر
// )
// // عنوان ستونها (در ردیف دوم)
// headers = array.from("ماه", "تعداد", "سود ناخالص", "کارمزد", "سود خالص", "نرخ برد")
// for i = 0 to 5
// table.cell(
// monthlyReport,
// column = i,
// row = 1, // ردیف بعد از عنوان اصلی
// text = array.get(headers, i),
// text_color = color.white,
// bgcolor = color.rgb(60, 60, 60),
// width = 1 // عرض معمولی برای هر ستون
// )
RSI Divergence Pro+ VolumeRSI Divergence Pro+ Volume
What It Does:
RSI Divergence Pro+ Volume is a non-repainting indicator that helps traders spot potential bullish and bearish reversal zones using a classic technical analysis concept—RSI divergence—combined with advanced volume confirmation. The script highlights moments when price and RSI disagree, filtering for signals only when there is a significant volume spike, which helps reduce false positives in quiet or illiquid markets.
How It Works:
Bullish Divergence: Triggered when price makes a lower low but RSI forms a higher low, suggesting possible exhaustion in selling pressure.
Bearish Divergence: Triggered when price makes a higher high but RSI forms a lower high, signaling potential buying exhaustion.
Volume Confirmation: Signals only appear when trading volume exceeds a dynamic threshold (based on a user-defined moving average and multiplier), making alerts more reliable.
Visual Features: Customizable labels and optional gradient highlights mark the exact bars where divergence with volume confirmation occurs, making signals easy to see.
Alert System: Built-in alerts for both bullish and bearish divergences so traders can receive instant notifications.
How to Use:
Apply the script to any timeframe or liquid asset (15m–4H recommended for best results).
Watch for green “BULL↑” labels below bars (bullish divergence) and red “BEAR↓” labels above bars (bearish divergence).
Blue/violet background highlights confirm volume-verified signals.
Combine with your own risk management and confirmation tools for trade entries/exits.
Adjust lookback and volume settings to match your asset and style.
Originality & Usefulness:
This indicator stands out by combining traditional RSI divergence with advanced volume filtering, giving more credible and actionable reversal alerts. All logic is non-repainting and calculated on closed bars only. Settings are fully grouped and customizable, with professional visuals for clarity.
Limitations & Disclaimers:
Not every divergence results in a major reversal—use with other analysis.
More effective in trending or volatile markets; may produce more false signals in choppy/range conditions.
Signals are generated on bar close and do not repaint.
No indicator is a substitute for proper trading discipline and risk management.
Volatility-Adjusted Momentum Score (VAMS) [QuantAlgo]🟢 Overview
The Volatility-Adjusted Momentum Score (VAMS) measures price momentum relative to current volatility conditions, creating a normalized indicator that identifies significant directional moves while filtering out market noise. It divides annualized momentum by annualized volatility to produce scores that remain comparable across different market environments and asset classes.
The indicator displays a smoothed VAMS Z-Score line with adaptive standard deviation bands and an information table showing real-time metrics. This dual-purpose design enables traders and investors to identify strong trend continuation signals when momentum persistently exceeds normal levels, while also spotting potential mean reversion opportunities when readings reach statistical extremes.
🟢 How It Works
The indicator calculates annualized momentum using a simple moving average of logarithmic returns over a specified period, then measures annualized volatility through the standard deviation of those same returns over a longer timeframe. The raw VAMS score divides momentum by volatility, creating a risk-adjusted measure where high volatility reduces scores and low volatility amplifies them.
This raw VAMS value undergoes Z-Score normalization using rolling statistical parameters, converting absolute readings into standardized deviations that show how current conditions compare to recent history. The normalized Z-Score receives exponential moving average smoothing to create the final VAMS line, reducing false signals while preserving sensitivity to meaningful momentum changes.
The visualization includes dynamically calculated standard deviation bands that adjust to recent VAMS behavior, creating statistical reference zones. The information table provides real-time numerical values for VAMS Z-Score, underlying momentum percentages, and current volatility readings with trend indicators.
🟢 How to Use
1. VAMS Z-Score Bands and Signal Interpretation
Above Mean Line: Momentum exceeds historical averages adjusted for volatility, indicating bullish conditions suitable for trend following
Below Mean Line: Momentum falls below statistical norms, suggesting bearish conditions or downward pressure
Mean Line Crossovers: Primary transition signals between bullish and bearish momentum regimes
1 Standard Deviation Breaks: Strong momentum conditions indicating statistically significant directional moves worth following
2 Standard Deviation Extremes: Rare momentum readings that often signal either powerful breakouts or exhaustion points
2. Information Table and Market Context
Z-Score Values: Current VAMS reading displayed in standard deviations (σ), showing how far momentum deviates from its statistical norm
Momentum Percentage: Underlying annualized momentum displayed as percentage return, quantifying the directional strength
Volatility Context: Current annualized volatility levels help interpret whether VAMS readings occur in high or low volatility environments
Trend Indicators: Directional arrows and change values provide immediate feedback on momentum shifts and market transitions
3. Strategy Applications and Alert System
Trend Following: Use sustained readings beyond the mean line and 1σ band penetrations for directional trades, especially when VAMS maintains position in upper or lower statistical zones
Mean Reversion: Focus on 2σ extreme readings for contrarian opportunities, particularly effective in sideways markets where momentum tends to revert to statistical norms
Alert Notifications: Built-in alerts for mean crossovers (regime changes), 1σ breaks (strong signals), and 2σ touches (extreme conditions) help monitor multiple instruments for both continuation and reversal setups
FIVEX Kombine Trend AnalizörüFIVEX doesn’t look at the market through the lens of just one indicator — it combines the insights of six powerful tools working together in harmony. This system brings together RSI, EMA, Bollinger Bands, OBV, MACD, and Fibonacci-based Pivot levels to deliver highly accurate signals for both trend direction and momentum.
Each indicator evaluates the chart based on its own logic and produces a decision: LONG, SHORT, or NEUTRAL. FIVEX collects these individual insights and only generates a trading signal when at least three indicators agree on the same direction. This significantly reduces false signals caused by random price movements.
At a glance, the table in the top right corner of your chart shows exactly what each indicator is thinking in real-time. Background color changes only occur when the signal is strong and stable — this keeps your screen clean and your decisions clear. If a signal appears, you'll immediately understand why.
Thanks to dynamic parameter adjustments based on timeframes, FIVEX behaves more aggressively on 15-minute charts and more refined on daily charts. It’s compatible with every trading style — from scalping to swing trading.
FIVEX isn’t just an indicator; it’s a consensus engine.
It questions, waits for confirmation, and shows only what’s truly strong.
It doesn’t shout the final word — it delivers the collective judgment of market logic.