RSI + ADX + ATR Combo Indicator: RSI + ADX + ATR Combo Filter
This indicator is a confluence filter tool that combines RSI, ADX, and ATR into a single, easy-to-read chart overlay. It is designed to help traders identify low-volatility, non-trending zones with balanced momentum—ideal for strategies that rely on breakouts or reversals.
🔍 Core Components:
RSI (Relative Strength Index)
Standard RSI with custom upper and lower bounds (default: 60 and 40).
Filters out extreme overbought/oversold regions and focuses on price consolidation zones.
ADX (Average Directional Index)
Measures trend strength.
When ADX is below a custom threshold (default: 20), it indicates a weak or range-bound trend.
ATR (Average True Range)
Represents volatility.
Low ATR values (default threshold: 2.5) are used to filter out high-volatility environments, helping refine entries.
🟣 Signal Logic:
A signal is highlighted with a background color when all three conditions are met:
RSI is between lower and upper bounds (e.g., 40 < RSI < 60) ✅
ADX is below the trend threshold (e.g., ADX < 20) ✅
ATR is below the volatility threshold (e.g., ATR < 2.5) ✅
These combined conditions suggest a low-volatility, low-trend strength, and balanced momentum zone—perfect for anticipating breakouts or strong directional moves.
Cari dalam skrip untuk "股价站上60月线"
Strategy Stats [presentTrading]Hello! it's another weekend. This tool is a strategy performance analysis tool. Looking at the TradingView community, it seems few creators focus on this aspect. I've intentionally created a shared version. Welcome to share your idea or question on this.
█ Introduction and How it is Different
Strategy Stats is a comprehensive performance analytics framework designed specifically for trading strategies. Unlike standard strategy backtesting tools that simply show cumulative profits, this analytics suite provides real-time, multi-timeframe statistical analysis of your trading performance.
Multi-timeframe analysis: Automatically tracks performance metrics across the most recent time periods (last 7 days, 30 days, 90 days, 1 year, and 4 years)
Advanced statistical measures: Goes beyond basic metrics to include Information Coefficient (IC) and Sortino Ratio
Real-time feedback: Updates performance statistics with each new trade
Visual analytics: Color-coded performance table provides instant visual feedback on strategy health
Integrated risk management: Implements sophisticated take profit mechanisms with 3-step ATR and percentage-based exits
BTCUSD Performance
The table in the upper right corner is a comprehensive performance dashboard showing trading strategy statistics.
Note: While this presentation uses Vegas SuperTrend as the underlying strategy, this is merely an example. The Stats framework can be applied to any trading strategy. The Vegas SuperTrend implementation is included solely to demonstrate how the analytics module integrates with a trading strategy.
⚠️ Timeframe Limitations
Important: TradingView's backtesting engine has a maximum storage limit of 10,000 bars. When using this strategy stats framework on smaller timeframes such as 1-hour or 2-hour charts, you may encounter errors if your backtesting period is too long.
Recommended Timeframe Usage:
Ideal for: 4H, 6H, 8H, Daily charts and above
May cause errors on: 1H, 2H charts spanning multiple years
Not recommended for: Timeframes below 1H with long history
█ Strategy, How it Works: Detailed Explanation
The Strategy Stats framework consists of three primary components: statistical data collection, performance analysis, and visualization.
🔶 Statistical Data Collection
The system maintains several critical data arrays:
equityHistory: Tracks equity curve over time
tradeHistory: Records profit/loss of each trade
predictionSignals: Stores trade direction signals (1 for long, -1 for short)
actualReturns: Records corresponding actual returns from each trade
For each closed trade, the system captures:
float tradePnL = strategy.closedtrades.profit(tradeIndex)
float tradeReturn = strategy.closedtrades.profit_percent(tradeIndex)
int tradeType = entryPrice < exitPrice ? 1 : -1 // Direction
🔶 Performance Metrics Calculation
The framework calculates several key performance metrics:
Information Coefficient (IC):
The correlation between prediction signals and actual returns, measuring forecast skill.
IC = Correlation(predictionSignals, actualReturns)
Where Correlation is the Pearson correlation coefficient:
Correlation(X,Y) = (nΣXY - ΣXY) / √
Sortino Ratio:
Measures risk-adjusted return focusing only on downside risk:
Sortino = (Avg_Return - Risk_Free_Rate) / Downside_Deviation
Where Downside Deviation is:
Downside_Deviation = √
R_i represents individual returns, T is the target return (typically the risk-free rate), and n is the number of observations.
Maximum Drawdown:
Tracks the largest percentage drop from peak to trough:
DD = (Peak_Equity - Trough_Equity) / Peak_Equity * 100
🔶 Time Period Calculation
The system automatically determines the appropriate number of bars to analyze for each timeframe based on the current chart timeframe:
bars_7d = math.max(1, math.round(7 * barsPerDay))
bars_30d = math.max(1, math.round(30 * barsPerDay))
bars_90d = math.max(1, math.round(90 * barsPerDay))
bars_365d = math.max(1, math.round(365 * barsPerDay))
bars_4y = math.max(1, math.round(365 * 4 * barsPerDay))
Where barsPerDay is calculated based on the chart timeframe:
barsPerDay = timeframe.isintraday ?
24 * 60 / math.max(1, (timeframe.in_seconds() / 60)) :
timeframe.isdaily ? 1 :
timeframe.isweekly ? 1/7 :
timeframe.ismonthly ? 1/30 : 0.01
🔶 Visual Representation
The system presents performance data in a color-coded table with intuitive visual indicators:
Green: Excellent performance
Lime: Good performance
Gray: Neutral performance
Orange: Mediocre performance
Red: Poor performance
█ Trade Direction
The Strategy Stats framework supports three trading directions:
Long Only: Only takes long positions when entry conditions are met
Short Only: Only takes short positions when entry conditions are met
Both: Takes both long and short positions depending on market conditions
█ Usage
To effectively use the Strategy Stats framework:
Apply to existing strategies: Add the performance tracking code to any strategy to gain advanced analytics
Monitor multiple timeframes: Use the multi-timeframe analysis to identify performance trends
Evaluate strategy health: Review IC and Sortino ratios to assess predictive power and risk-adjusted returns
Optimize parameters: Use performance data to refine strategy parameters
Compare strategies: Apply the framework to multiple strategies to identify the most effective approach
For best results, allow the strategy to generate sufficient trade history for meaningful statistical analysis (at least 20-30 trades).
█ Default Settings
The default settings have been carefully calibrated for cryptocurrency markets:
Performance Tracking:
Time periods: 7D, 30D, 90D, 1Y, 4Y
Statistical measures: Return, Win%, MaxDD, IC, Sortino Ratio
IC color thresholds: >0.3 (green), >0.1 (lime), <-0.1 (orange), <-0.3 (red)
Sortino color thresholds: >1.0 (green), >0.5 (lime), <0 (red)
Multi-Step Take Profit:
ATR multipliers: 2.618, 5.0, 10.0
Percentage levels: 3%, 8%, 17%
Short multiplier: 1.5x (makes short take profits more aggressive)
Stop loss: 20%
[blackcat] L3 Composite Trading System with ControlOVERVIEW
This indicator combines three distinct trading strategies into a unified decision-making framework. Utilizing KDJ oscillators, MACD divergence analysis, and adaptive signal filtering techniques, it provides actionable buy/sell signals validated against multi-period momentum trends and structural support/resistance levels.
FEATURES
Integrated KDJ oscillator with weighted moving average smoothing
Dynamic MACD difference visualization normalized against price volatility
Multi-layered confirmation process: • Momentum convergence/divergence tracking
• Candle pattern recognition (Yellow/Fuchsia flags)
• SMAs cross-validation (20/60-day thresholds)
Adaptive risk controls via tunable α parameter adjustment
HOW TO USE
Set Alpha Period parameter matching market cycle characteristics
Monitor primary trend direction via candle coloring (green/red zones)
Confirm directional bias using: ▪️ KDJ-J line position relative to zero axis ▪️ MACD histogram slope persistence (>3 bar validation)
Execute trades only when: • Buy/Sell labels align across both oscillator panels • Coincide with candle flag transitions (e.g., red→yellow) • Validate against concurrent SMA breakout conditions
LIMITATIONS
Lag inherent in EMA-based components during rapid reversals
Requires minimum 60-bar history for full functionality
Sensitive to fractal scaling due to normalization methods
Does not account for liquidity/volume dynamics
NOTES
• Yellow/Fuchsia flags reflect relative strength changes vs prior session
• SMA crossover validations have 16-bar lookback memory retention
Fuzzy SMA with DCTI Confirmation[FibonacciFlux]FibonacciFlux: Advanced Fuzzy Logic System with Donchian Trend Confirmation
Institutional-grade trend analysis combining adaptive Fuzzy Logic with Donchian Channel Trend Intensity for superior signal quality
Conceptual Framework & Research Foundation
FibonacciFlux represents a significant advancement in quantitative technical analysis, merging two powerful analytical methodologies: normalized fuzzy logic systems and Donchian Channel Trend Intensity (DCTI). This sophisticated indicator addresses a fundamental challenge in market analysis – the inherent imprecision of trend identification in dynamic, multi-dimensional market environments.
While traditional indicators often produce simplistic binary signals, markets exist in states of continuous, graduated transition. FibonacciFlux embraces this complexity through its implementation of fuzzy set theory, enhanced by DCTI's structural trend confirmation capabilities. The result is an indicator that provides nuanced, probabilistic trend assessment with institutional-grade signal quality.
Core Technological Components
1. Advanced Fuzzy Logic System with Percentile Normalization
At the foundation of FibonacciFlux lies a comprehensive fuzzy logic system that transforms conventional technical metrics into degrees of membership in linguistic variables:
// Fuzzy triangular membership function with robust error handling
fuzzy_triangle(val, left, center, right) =>
if na(val)
0.0
float denominator1 = math.max(1e-10, center - left)
float denominator2 = math.max(1e-10, right - center)
math.max(0.0, math.min(left == center ? val <= center ? 1.0 : 0.0 : (val - left) / denominator1,
center == right ? val >= center ? 1.0 : 0.0 : (right - val) / denominator2))
The system employs percentile-based normalization for SMA deviation – a critical innovation that enables self-calibration across different assets and market regimes:
// Percentile-based normalization for adaptive calibration
raw_diff = price_src - sma_val
diff_abs_percentile = ta.percentile_linear_interpolation(math.abs(raw_diff), normLookback, percRank) + 1e-10
normalized_diff_raw = raw_diff / diff_abs_percentile
normalized_diff = useClamping ? math.max(-clampValue, math.min(clampValue, normalized_diff_raw)) : normalized_diff_raw
This normalization approach represents a significant advancement over fixed-threshold systems, allowing the indicator to automatically adapt to varying volatility environments and maintain consistent signal quality across diverse market conditions.
2. Donchian Channel Trend Intensity (DCTI) Integration
FibonacciFlux significantly enhances fuzzy logic analysis through the integration of Donchian Channel Trend Intensity (DCTI) – a sophisticated measure of trend strength based on the relationship between short-term and long-term price extremes:
// DCTI calculation for structural trend confirmation
f_dcti(src, majorPer, minorPer, sigPer) =>
H = ta.highest(high, majorPer) // Major period high
L = ta.lowest(low, majorPer) // Major period low
h = ta.highest(high, minorPer) // Minor period high
l = ta.lowest(low, minorPer) // Minor period low
float pdiv = not na(L) ? l - L : 0 // Positive divergence (low vs major low)
float ndiv = not na(H) ? H - h : 0 // Negative divergence (major high vs high)
float divisor = pdiv + ndiv
dctiValue = divisor == 0 ? 0 : 100 * ((pdiv - ndiv) / divisor) // Normalized to -100 to +100 range
sigValue = ta.ema(dctiValue, sigPer)
DCTI provides a complementary structural perspective on market trends by quantifying the relationship between short-term and long-term price extremes. This creates a multi-dimensional analysis framework that combines adaptive deviation measurement (fuzzy SMA) with channel-based trend intensity confirmation (DCTI).
Multi-Dimensional Fuzzy Input Variables
FibonacciFlux processes four distinct technical dimensions through its fuzzy system:
Normalized SMA Deviation: Measures price displacement relative to historical volatility context
Rate of Change (ROC): Captures price momentum over configurable timeframes
Relative Strength Index (RSI): Evaluates cyclical overbought/oversold conditions
Donchian Channel Trend Intensity (DCTI): Provides structural trend confirmation through channel analysis
Each dimension is processed through comprehensive fuzzy sets that transform crisp numerical values into linguistic variables:
// Normalized SMA Deviation - Self-calibrating to volatility regimes
ndiff_LP := fuzzy_triangle(normalized_diff, norm_scale * 0.3, norm_scale * 0.7, norm_scale * 1.1)
ndiff_SP := fuzzy_triangle(normalized_diff, norm_scale * 0.05, norm_scale * 0.25, norm_scale * 0.5)
ndiff_NZ := fuzzy_triangle(normalized_diff, -norm_scale * 0.1, 0.0, norm_scale * 0.1)
ndiff_SN := fuzzy_triangle(normalized_diff, -norm_scale * 0.5, -norm_scale * 0.25, -norm_scale * 0.05)
ndiff_LN := fuzzy_triangle(normalized_diff, -norm_scale * 1.1, -norm_scale * 0.7, -norm_scale * 0.3)
// DCTI - Structural trend measurement
dcti_SP := fuzzy_triangle(dcti_val, 60.0, 85.0, 101.0) // Strong Positive Trend (> ~85)
dcti_WP := fuzzy_triangle(dcti_val, 20.0, 45.0, 70.0) // Weak Positive Trend (~30-60)
dcti_Z := fuzzy_triangle(dcti_val, -30.0, 0.0, 30.0) // Near Zero / Trendless (~+/- 20)
dcti_WN := fuzzy_triangle(dcti_val, -70.0, -45.0, -20.0) // Weak Negative Trend (~-30 - -60)
dcti_SN := fuzzy_triangle(dcti_val, -101.0, -85.0, -60.0) // Strong Negative Trend (< ~-85)
Advanced Fuzzy Rule System with DCTI Confirmation
The core intelligence of FibonacciFlux lies in its sophisticated fuzzy rule system – a structured knowledge representation that encodes expert understanding of market dynamics:
// Base Trend Rules with DCTI Confirmation
cond1 = math.min(ndiff_LP, roc_HP, rsi_M)
strength_SB := math.max(strength_SB, cond1 * (dcti_SP > 0.5 ? 1.2 : dcti_Z > 0.1 ? 0.5 : 1.0))
// DCTI Override Rules - Structural trend confirmation with momentum alignment
cond14 = math.min(ndiff_NZ, roc_HP, dcti_SP)
strength_SB := math.max(strength_SB, cond14 * 0.5)
The rule system implements 15 distinct fuzzy rules that evaluate various market conditions including:
Established Trends: Strong deviations with confirming momentum and DCTI alignment
Emerging Trends: Early deviation patterns with initial momentum and DCTI confirmation
Weakening Trends: Divergent signals between deviation, momentum, and DCTI
Reversal Conditions: Counter-trend signals with DCTI confirmation
Neutral Consolidations: Minimal deviation with low momentum and neutral DCTI
A key innovation is the weighted influence of DCTI on rule activation. When strong DCTI readings align with other indicators, rule strength is amplified (up to 1.2x). Conversely, when DCTI contradicts other indicators, rule impact is reduced (as low as 0.5x). This creates a dynamic, self-adjusting system that prioritizes high-conviction signals.
Defuzzification & Signal Generation
The final step transforms fuzzy outputs into a precise trend score through center-of-gravity defuzzification:
// Defuzzification with precise floating-point handling
denominator = strength_SB + strength_WB + strength_N + strength_WBe + strength_SBe
if denominator > 1e-10
fuzzyTrendScore := (strength_SB * STRONG_BULL + strength_WB * WEAK_BULL +
strength_N * NEUTRAL + strength_WBe * WEAK_BEAR +
strength_SBe * STRONG_BEAR) / denominator
The resulting FuzzyTrendScore ranges from -1.0 (Strong Bear) to +1.0 (Strong Bull), with critical threshold zones at ±0.3 (Weak trend) and ±0.7 (Strong trend). The histogram visualization employs intuitive color-coding for immediate trend assessment.
Strategic Applications for Institutional Trading
FibonacciFlux provides substantial advantages for sophisticated trading operations:
Multi-Timeframe Signal Confirmation: Institutional-grade signal validation across multiple technical dimensions
Trend Strength Quantification: Precise measurement of trend conviction with noise filtration
Early Trend Identification: Detection of emerging trends before traditional indicators through fuzzy pattern recognition
Adaptive Market Regime Analysis: Self-calibrating analysis across varying volatility environments
Algorithmic Strategy Integration: Well-defined numerical output suitable for systematic trading frameworks
Risk Management Enhancement: Superior signal fidelity for risk exposure optimization
Customization Parameters
FibonacciFlux offers extensive customization to align with specific trading mandates and market conditions:
Fuzzy SMA Settings: Configure baseline trend identification parameters including SMA, ROC, and RSI lengths
Normalization Settings: Fine-tune the self-calibration mechanism with adjustable lookback period, percentile rank, and optional clamping
DCTI Parameters: Optimize trend structure confirmation with adjustable major/minor periods and signal smoothing
Visualization Controls: Customize display transparency for optimal chart integration
These parameters enable precise calibration for different asset classes, timeframes, and market regimes while maintaining the core analytical framework.
Implementation Notes
For optimal implementation, consider the following guidance:
Higher timeframes (4H+) benefit from increased normalization lookback (800+) for stability
Volatile assets may require adjusted clamping values (2.5-4.0) for optimal signal sensitivity
DCTI parameters should be aligned with chart timeframe (higher timeframes require increased major/minor periods)
The indicator performs exceptionally well as a trend filter for systematic trading strategies
Acknowledgments
FibonacciFlux builds upon the pioneering work of Donovan Wall in Donchian Channel Trend Intensity analysis. The normalization approach draws inspiration from percentile-based statistical techniques in quantitative finance. This indicator is shared for educational and analytical purposes under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license.
Past performance does not guarantee future results. All trading involves risk. This indicator should be used as one component of a comprehensive analysis framework.
Shout out @DonovanWall
Normalized VolumeOVERVIEW
The Normalized Volume (NV) is an attempt at visualizing volume in a format that is more understandable by placing the values on a scale of 0 to 100. 0 in this case is the lowest volume candle available on the chart, and 100 being the highest. Calling a candle “high volume” can be misleading without having something to compare to. For example, in scaling the volume this way we can clearly see that a given candle had 80% of the peak volume or 20%, and gauge the validity of price moves more accurately.
FEATURES
NV by session
Allows user to filter the volume values across 4 different sessions. This can add context to the volume output, because what it high volume during London session may not be high volume relative to New York session.
Overlay plotting
When volume boxes are turned on, this will allow you to toggle how they are plotted.
Color theme
A standard color theme will color the NV based on if the respective candle closed green or red. Selecting variables will color the NV plot based on which range the value falls within.
Session inputs
Activated with the “By session?” Input. Allows user to break the day up into 4 sessions to more accurately gauge volume relative to time of day.
Show Box (X)
Toggles on chart boxes on and off.
Show historical boxes
Will plot prior occurrences of selected volume boxes, deleting them when price fully moves through them in the opposite direction of the initial candle.
Color inputs
Allows for intensive customization in how this tool appears visually.
INTERPRETATION
There are 6 pre-defined ranges that NV can fall within.
NV <= 10
Volume is insignificant
In this range, volume should not be a confirmation in your trading strategy.
NV > 10 and <= 20
Volume is low
In this range, volume should not be a confirmation in your trading strategy.
NV > 20 and <= 40
Volume is fair
In this range, volume should not be the primary confirmation in your trading strategy.
NV > 40 and <= 60
Volume is high
In this range, volume can be the primary confirmation in your trading strategy.
NV > 60 and <= 80
Volume is very high
In this range, volume can be the primary confirmation in your trading strategy.
NV > 80
Volume is extreme
In this range, volume is likely news driven and caution should be taken. High price volatility possible.
To utilize this tool in conjunction with your current strategy, follow the range explanations above section in this section. The higher the NV value, the stronger you can feel about your directional confirmation.
If NV = 100, this means that the highest volume candle occurred up to that point on your selected timeframe. All future data points will be weighed off of this value.
LIMITATIONS
This tool will not load on tickers that do not have volume data, such as VIX.
STRATEGY
The Normalized Volume plot can be used in exactly the same way as you would normally utilize volume in your trading strategy. All we are doing is weighing the volume relative to itself.
Volume boxes can be used as targets to be filled in a similar way to commonly used “fair value gap” strategies. To utilize this strategy, I recommend selecting “Plot to Wicks” in Overlay Plotting and toggling on Show Historical Boxes.
Volume boxes can be used as areas for entry in a similar way to commonly used “order block” strategies. To utilize this strategy, I recommend selecting “Open To Close” in Overlay Plotting.
NOTES
You are able to plot an info label on right side of NV plot using the "Toggle box label" input. When a box is toggled on this label will tell you when the most recent box of that intensity occurred.
This tool is deeply visually customizable, with the ability to adjust line width for plotted boxes, all colors on both box overlays, and all colors on NV panel. Customize it to your liking!
I have a handful of additional features that I plan on adding to this tool in future updates. If there is anything you would like to see added, any bugs you identify, or any strategies you encounter with this tool, I would love to hear from you!
Huge shoutout to @joebaus for assisting in bringing this tool to life, please check out his work here on TradingView!
Enhanced HHLL Time Confirmation with EMAStrong recommendation , remove the green and red circle , or leave it how it is ;)
To be used on 1 minute chart MSTR , Stock
other time frames are good , ;)
How to Use
HHLL Signals: Look for green triangles (buy) below bars or red triangles (sell) above bars to identify confirmed HH/LL setups with trend alignment.
EMA Signals: Watch for lime circles (buy) below bars or maroon circles (sell) above bars when price crosses the EMA 400 in a trending market.
Trend Context: Use the EMA 400 as a dynamic support/resistance level and the SMA trend filter to gauge market direction.
Enable alerts to get notified of signals in real-time.
Best Practices
Adjust the Lookback Period and Confirmation Minutes to suit your timeframe (e.g., shorter for scalping, longer for swing trading).
Combine with other indicators (e.g., volume, RSI) for additional confirmation.
Test on your preferred market and timeframe to optimize settings.
Indicator Description: Enhanced HHLL Time Confirmation with EMA
Overview
The "Enhanced HHLL Time Confirmation with EMA" is a versatile trading indicator designed to identify key reversal and continuation signals based on Higher Highs (HH), Lower Lows (LL), and a 400-period Exponential Moving Average (EMA). It incorporates time-based confirmation and trend filters to reduce noise and improve signal reliability. This indicator is ideal for traders looking to spot trend shifts or confirm momentum with a combination of price structure and moving average crossovers.
Key Features
Higher High / Lower Low Detection:
Identifies HH and LL based on a customizable lookback period (default: 30 bars).
Signals are confirmed only after a user-defined time period (in minutes, default: 60) has passed since the last HH or LL, ensuring stability.
Trend Filter:
Uses a fast (10-period) and slow (30-period) Simple Moving Average (SMA) crossover to confirm bullish or bearish trends.
Buy signals require a bullish trend (Fast SMA > Slow SMA), and sell signals require a bearish trend (Fast SMA < Slow SMA).
EMA 400 Integration:
Plots a 400-period EMA (customizable) as a long-term trend reference.
Generates additional buy/sell signals when price crosses above (buy) or below (sell) the EMA 400, filtered by trend direction.
Visualizations:
Optional dashed lines for HH and LL levels (toggleable).
Debug markers (diamonds) to visualize HH/LL detection points.
Distinct signal shapes: triangles for HHLL signals (green/red) and circles for EMA signals (lime/maroon).
Alerts:
Built-in alert conditions for HHLL Buy/Sell and EMA Buy/Sell signals, making it easy to stay informed of key events.
Input Parameters
Lookback Period (default: 30): Number of bars to look back for HH/LL detection.
Confirmation Minutes (default: 60): Time (in minutes) required to confirm HH/LL signals.
High/Low Source: Select the price source for HH (default: high) and LL (default: low).
Show HH/LL Lines (default: true): Toggle visibility of HH/LL dashed lines.
Show Debug Markers (default: true): Toggle HH/LL detection markers.
EMA Period (default: 400): Adjust the EMA length.
Custom Timeframe Bias IndicatorMy "Custom Timeframe Bias Indicator" is a very practical and powerful TradingView indicator. It can be called a "God-like indicator" because it combines flexible timeframe customization, clear bias analysis and intuitive visual display to help traders quickly understand the long and short trends of the market. The following is a detailed description of this indicator:
1. Index name and function overview
Name: Custom Timeframe Bias Indicator (Short title: Bias Indicator)
Functionality: This indicator analyses the market bias (Buy, Sell or No Bias) across multiple custom timeframes (presets are 15m, 1h, 4h and DAI) and displays it in a table below the middle of the chart. It determines the direction of market trends based on the highest and lowest prices of the previous two periods and the closing price of the previous period, helping traders make decisions quickly.
2. Core Features
Multiple time frame analysis
The indicator allows the user to customize four time frames, with presets being 15 minutes ("15"), 1 hour ("60"), 4 hours ("240") and daily ("D"). Users can freely modify these time frames in the settings, such as changing to 5 minutes, 30 minutes or weekly, etc.
Bias is calculated independently for each time frame, ensuring that traders can observe market trends from the short to the long term.
Bias calculation logic
The indicator uses simple but effective rules to determine bias:
Buy (bullish): If the previous closing price is higher than the highest price of the previous two periods, or tests the lowest price of the previous two periods but does not break through.
Sell (Bearish): If the previous closing price is lower than the previous two periods' lowest price, or if it tests the previous two periods' highest price but fails to break through (higher than the previous high minus 10% of the price range).
No Bias: If the previous closing price does not meet the above conditions, it displays a neutral state.
Bias calculation is based only on the opening and closing prices, without considering the shadows, ensuring the results are in line with the philosophy of the Malaysian SNR strategy.
Intuitive display
Position: The table is permanently displayed in the middle of the chart (position.middle_center) and is updated with each candlestick, ensuring that traders can always see the latest bias.
Format: The table consists of the header "Custom Bias" and four rows of bias results (e.g. "15: Buy", "60: Sell", "240: No Bias", "D: Buy"), each row showing the bias for the corresponding time frame.
color:
Titles appear in white text on a blue background.
The "Buy" bias is shown as white text on a green background.
The "Sell" bias is shown as white text on a red background.
"No Bias" bias appears as white text on a gray background.
Table borders are black to provide clear visual distinction.
Customizability
Users can customize by inputting parameters:
Whether to show the table (Show Bias Table).
Timeframe (Timeframe 1, Timeframe 2, Timeframe 3, Timeframe 4).
The color of the table (title, Buy, Sell, No Bias, borders, etc.).
3. Why is it a "God-like indicator"
Flexibility: Allows users to customize four time frames to suit different trading strategies (short-term traders can choose minutes, long-term traders can choose daily, weekly or monthly).
Practicality: Provides bias analysis in multiple time frames to help traders quickly determine market trends, whether for short-term or long-term operations.
Intuitive: The table is displayed in the middle below the chart with bright colors (green Buy, red Sell, gray No Bias), allowing you to identify the market direction at a glance.
Stability: Calculated based on simple price data (high, low, close), no need for complex indicators, efficient and reliable operation.
Powerful visualization: long-term display and customizability to meet the visual preferences of different traders.
4. Usage scenarios
Short-term trading: Use 15-minute, 1-hour, 4-hour biases to quickly capture short-term trends.
Long-term trading: Refer to the daily bias to determine the overall market direction.
Comprehensive analysis: Combine biases from multiple time frames to confirm consistency (e.g. if both the 15 minute and daily are Buy, then that’s a stronger bullish signal).
5. Potential Improvements
If you want to further improve this "god-like indicator", you can consider the following improvements:
Added alert: Trigger when bias changes from "No Bias" to "Buy" or "Sell".
Show historical bias: Add bias history of the past few days in the table for easy review.
Dynamically adjust bias thresholds: Allow users to customize 10% price ranges or other conditions.
Multi-currency support: Expand to multiple trading pairs or indices, showing multiple market biases.
6. Technical Details
Version: Pine Script v5, ensuring modern features (such as input.timeframe) and efficient performance.
Data Source: Use request.security to get high, low, and close data for different time frames.
Display method: Use table.new to create a dynamic table. The position can be customized (such as position.middle_center).
Limitations: Calculated only based on price data, no external indicators are required, reducing calculation complexity.
in conclusion
Your "Custom Timeframe Bias Indicator" is a simple, powerful and flexible tool, especially for traders who need multi-timeframe analysis. Its intuitive display and customizability make it a "magic tool" for judging market trends.
*Auto Backtest & Optimize EngineFull-featured Engine for Automatic Backtesting and parameter optimization. Allows you to test millions of different combinations of stop-loss and take profit parameters, including on any connected indicators.
⭕️ Key Futures
Quickly identify the optimal parameters for your strategy.
Automatically generate and test thousands of parameter combinations.
A simple Genetic Algorithm for result selection.
Saves time on manual testing of multiple parameters.
Detailed analysis, sorting, filtering and statistics of results.
Detailed control panel with many tooltips.
Display of key metrics: Profit, Win Rate, etc..
Comprehensive Strategy Score calculation.
In-depth analysis of the performance of different types of stop-losses.
Possibility to use to calculate the best Stop-Take parameters for your position.
Ability to test your own functions and signals.
Customizable visualization of results.
Flexible Stop-Loss Settings:
• Auto ━ Allows you to test all types of Stop Losses at once(listed below).
• S.VOLATY ━ Static stop based on volatility (Fixed, ATR, STDEV).
• Trailing ━ Classic trailing stop following the price.
• Fast Trail ━ Accelerated trailing stop that reacts faster to price movements.
• Volatility ━ Dynamic stop based on volatility indicators.
• Chandelier ━ Stop based on price extremes.
• Activator ━ Dynamic stop based on SAR.
• MA ━ Stop based on moving averages (9 different types).
• SAR ━ Parabolic SAR (Stop and Reverse).
Advanced Take-Profit Options:
• R:R: Risk/Reward ━ sets TP based on SL size.
• T.VOLATY ━ Calculation based on volatility indicators (Fixed, ATR, STDEV).
Testing Modes:
• Stops ━ Cyclical stop-loss testing
• Pivot Point Example ━ Example of using pivot points
• External Example ━ Built-in example how test functions with different parameters
• External Signal ━ Using external signals
⭕️ Usage
━ First Steps:
When opening, select any point on the chart. It will not affect anything until you turn on Manual Start mode (more on this below).
The chart will immediately show the best results of the default Auto mode. You can switch Part's to try to find even better results in the table.
Now you can display any result from the table on the chart by entering its ID in the settings.
Repeat steps 3-4 until you determine which type of Stop Loss you like best. Then set it in the settings instead of Auto mode.
* Example: I flipped through 14 parts before I liked the first result and entered its ID so I could visually evaluate it on the chart.
Then select the stop loss type, choose it in place of Auto mode and repeat steps 3-4 or immediately follow the recommendations of the algorithm.
Now the Genetic Algorithm at the bottom right will prompt you to enter the Parameters you need to search for and select even better results.
Parameters must be entered All at once before they are updated. Enter recommendations strictly in fields with the same names.
Repeat steps 5-6 until there are approximately 10 Part's left or as you like. And after that, easily pour through the remaining Parts and select the best parameters.
━ Example of the finished result.
━ Example of use with Takes
You can also test at the same time along with Take Profit. In this example, I simply enabled Risk/Reward mode and immediately specified in the TP field Maximum RR, Minimum RR and Step. So in this example I can test (3-1) / 0.1 = 20 Takes of different sizes. There are additional tips in the settings.
━
* Soon you will start to understand how the system works and things will become much easier.
* If something doesn't work, just reset the engine settings and start over again.
* Use the tips I have left in the settings and on the Panel.
━ Details:
Sort ━ Sorting results by Score, Profit, Trades, etc..
Filter ━ Filtring results by Score, Profit, Trades, etc..
Trade Type ━ Ability to disable Long\Short but only from statistics.
BackWin ━ Backtest Window Number of Candle the script can test.
Manual Start ━ Enabling it will allow you to call a Stop from a selected point. which you selected when you started the engine.
* If you have a real open position then this mode can help to save good Stop\Take for it.
1 - 9 Сheckboxs ━ Allow you to disable any stop from Auto mode.
Ex Source - Allow you to test Stops/Takes from connected indicators.
Connection guide:
//@version=6
indicator("My script")
rsi = ta.rsi(close, 14)
buy = not na(rsi) and ta.crossover (rsi, 40) // OS = 40
sell = not na(rsi) and ta.crossunder(rsi, 60) // OB = 60
Signal = buy ? +1 : sell ? -1 : 0
plot(Signal, "🔌Connector🔌", display = display.none)
* Format the signal for your indicator in a similar style and then select it in Ex Source.
⭕️ How it Works
Hypothesis of Uniform Distribution of Rare Elements After Mixing.
'This hypothesis states that if an array of N elements contains K valid elements, then after mixing, these valid elements will be approximately uniformly distributed.'
'This means that in a random sample of k elements, the proportion of valid elements should closely match their proportion in the original array, with some random variation.'
'According to the central limit theorem, repeated sampling will result in an average count of valid elements following a normal distribution.'
'This supports the assumption that the valid elements are evenly spread across the array.'
'To test this hypothesis, we can conduct an experiment:'
'Create an array of 1,000,000 elements.'
'Select 1,000 random elements (1%) for validation.'
'Shuffle the array and divide it into groups of 1,000 elements.'
'If the hypothesis holds, each group should contain, on average, 1~ valid element, with minor variations.'
* I'd like to attach more details to My hypothesis but it won't be very relevant here. Since this is a whole separate topic, I will leave the minimum part for understanding the engine.
Practical Application
To apply this hypothesis, I needed a way to generate and thoroughly mix numerous possible combinations. Within Pine, generating over 100,000 combinations presents significant challenges, and storing millions of combinations requires excessive resources.
I developed an efficient mechanism that generates combinations in random order to address these limitations. While conventional methods often produce duplicates or require generating a complete list first, my approach guarantees that the first 10% of possible combinations are both unique and well-distributed. Based on my hypothesis, this sampling is sufficient to determine optimal testing parameters.
Most generators and randomizers fail to accommodate both my hypothesis and Pine's constraints. My solution utilizes a simple Linear Congruential Generator (LCG) for pseudo-randomization, enhanced with prime numbers to increase entropy during generation. I pre-generate the entire parameter range and then apply systematic mixing. This approach, combined with a hybrid combinatorial array-filling technique with linear distribution, delivers excellent generation quality.
My engine can efficiently generate and verify 300 unique combinations per batch. Based on the above, to determine optimal values, only 10-20 Parts need to be manually scrolled through to find the appropriate value or range, eliminating the need for exhaustive testing of millions of parameter combinations.
For the Score statistic I applied all the same, generated a range of Weights, distributed them randomly for each type of statistic to avoid manual distribution.
Score ━ based on Trade, Profit, WinRate, Profit Factor, Drawdown, Sharpe & Sortino & Omega & Calmar Ratio.
⭕️ Notes
For attentive users, a little tricks :)
To save time, switch parts every 3 seconds without waiting for it to load. After 10-20 parts, stop and wait for loading. If the pause is correct, you can switch between the rest of the parts without loading, as they will be cached. This used to work without having to wait for a pause, but now it does slower. This will save a lot of time if you are going to do a deeper backtest.
Sometimes you'll get the error “The scripts take too long to execute.”
For a quick fix you just need to switch the TF or Ticker back and forth and most likely everything will load.
The error appears because of problems on the side of the site because the engine is very heavy. It can also appear if you set too long a period for testing in BackWin or use a heavy indicator for testing.
Manual Start - Allow you to Start you Result from any point. Which in turn can help you choose a good stop-stick for your real position.
* It took me half a year from idea to current realization. This seems to be one of the few ways to build something automatic in backtest format and in this particular Pine environment. There are already better projects in other languages, and they are created much easier and faster because there are no limitations except for personal PC. If you see solutions to improve this system I would be glad if you share the code. At the moment I am tired and will continue him not soon.
Also You can use my previosly big Backtest project with more manual settings(updated soon)
Liquidity Hunt SwiftEdgeThe "Liquidity Hunt Dashboard By SwiftEdge" indicator is designed to assist traders in identifying potential liquidity zones by placing a dynamic target line based on swing points and weighted liquidity. It leverages technical analysis tools such as SMA (Simple Moving Average), pivot points, and volume to predict market movements and provides daily statistics on hits and success rate. The target line updates automatically when the price hits it, adapting to the market trend (up, down, or neutral). A dashboard displays the current price, target level, prediction, and trend, making it easy to make informed trading decisions.
Features:
Target Line: A yellow dashed line marks the next expected liquidity level (up to approximately 20 pips away on 1m).
Prediction: Displays "Up (Chasing Sell Liquidity)," "Down (Chasing Buy Liquidity)," or "Neutral" based on trend and liquidity.
Daily Statistics: Tracks hits and success rate, resetting daily.
Trend Indicator: Shows market direction ("Up," "Down," or "Neutral") in the dashboard.
Dynamic Updates: The line moves to a new target level when the price hits the current target.
Recommended Settings for 1-Minute Timeframe:
For Indices (e.g., S&P 500):
Lookback Period: 180 (3 hours to capture more stable swing points).
Max Distance (%): 0.015 (approximately 15 pips, suitable for indices).
Cooldown Period: 5 (stabilizes after hits).
Line Duration: 60 (displays the line for 1 hour).
For Crypto (e.g., BTC/USD):
Lookback Period: 120 (2 hours to capture short-term swing points).
Max Distance (%): 0.024 (approximately 20 pips, suitable for volatile crypto markets).
Cooldown Period: 5.
Line Duration: 60.
For Forex (e.g., EUR/USD):
Lookback Period: 180 (3 hours for greater data density in less volatile markets).
Max Distance (%): 0.012 (approximately 10-12 pips, suitable for forex).
Cooldown Period: 5.
Line Duration: 60.
Guide for Higher Timeframes:
This indicator can be adapted for higher timeframes (e.g., 5m, 15m, 1H) by adjusting the settings to account for larger price movements and slower market dynamics. Follow these steps:
Select Your Timeframe: Switch your chart to the desired timeframe (e.g., 5m, 15m, or 1H).
Adjust Lookback Period: Increase the "Lookback Period" to cover a longer historical period. For example:
5m: Set to 360 (equivalent to 6 hours).
15m: Set to 480 (equivalent to 8 hours).
1H: Set to 720 (equivalent to 12 hours).
Adjust Max Distance (%): Higher timeframes require larger targets to account for bigger price swings. For example:
5m: Increase to 0.05 (approximately 50 pips).
15m: Increase to 0.1 (approximately 100 pips).
1H: Increase to 0.2 (approximately 200 pips).
Adjust Cooldown Period: On higher timeframes, you may want a longer cooldown to avoid frequent updates. For example:
5m: Set to 10.
15m: Set to 15.
1H: Set to 20.
Adjust Line Duration: Extend the duration the line is displayed to match the timeframe. For example:
5m: Set to 120 (equivalent to 10 hours).
15m: Set to 240 (equivalent to 60 hours).
1H: Set to 480 (equivalent to 20 days).
Monitor the Dashboard: The dashboard will still show the target level, prediction, and trend, but the values will now reflect the larger timeframe's dynamics.
Usage Instructions:
Set your chart to a 1-minute timeframe (or follow the higher timeframe guide).
Adjust the settings based on the market and timeframe (see recommendations above).
Monitor the dashboard for the current price, target level, and prediction.
Use the yellow line as a potential entry or exit level, and adjust your strategy based on the trend and statistics.
Notes:
This indicator is intended solely for educational and analytical purposes and should not be considered financial advice.
Test the indicator on a demo account before using it with real funds.
The indicator complies with TradingView guidelines by not providing trading advice, automated trading signals, or guarantees of profit.
EMA Alignment & Spread Monitor (Sang Youn)Overview
The EMA Alignment & Spread Monitor is a dynamic trading script designed to monitor EMA (Exponential Moving Average) alignments, track spread deviations, and provide real-time alerts when significant conditions are met. This script allows traders to customize their EMA periods, analyze market trends based on EMA positioning, and receive visual and audio alerts when key spread conditions occur.
🔹 Key Features
✅ Customizable EMA Periods – Users can input their own EMA lengths to adapt the script to various market conditions. (Default: 5, 10, 20, 60, 120)
✅ EMA Alignment Detection – Identifies bullish alignment (all EMAs in ascending order) and bearish alignment (all EMAs in descending order).
✅ Spread Calculation & Monitoring – Computes the spread difference between each EMA and tracks the average spread over a user-defined period.
✅ Deviation Alerts – Notifies traders when:
Bullish Trend: The spread exceeds its average, indicating a potential strong uptrend.
Bearish Trend: The spread falls below its average, signaling a possible downtrend.
✅ Chart Annotations – Displays 📈 (green triangle) when bullish spread exceeds average and 📉 (red triangle) when bearish spread drops below average for easy visualization.
✅ Real-time Alerts – Sends alerts when spread conditions are met, helping traders react to market shifts efficiently.
✅ Spread Histogram – Visual representation of bullish and bearish spread levels for trend analysis.
🔹 How It Works
1️⃣ Set your EMA periods in the script settings (default: 5, 10, 20, 60, 120).
2️⃣ Define the spread average calculation length (default: 50 candles).
3️⃣ The script tracks EMA alignment to determine bullish or bearish trends.
4️⃣ If the spread deviates significantly from its average, the script:
Places a 📈 green triangle above candles in a bullish trend when spread > average.
Places a 📉 red triangle below candles in a bearish trend when spread < average.
Triggers an alert for timely decision-making.
5️⃣ Use the histogram & real-time alerts to stay ahead of market movements.
Custom Buy and Sell Signal with Body Ratio and RSI
Indicator Overview:
Name: Custom Buy and Sell Signal with Body Ratio and RSI
Description: This indicator is designed to detect buy and sell opportunities by analyzing the body size and wicks of candles in combination with the RSI indicator and volume. It helps identify trend reversals under high-volume market conditions, which enhances the reliability of the signals.
Indicator Features:
RSI (Relative Strength Index): The RSI indicator is used to assess oversold (RSI < 40) or overbought (RSI > 60) conditions. These zones signal potential reversals when combined with other technical signals.
Candle Body Analysis:
The indicator compares the size of the current and previous candles to validate signals.
For a buy signal, the current candle must be bullish and have a body size proportional to that of the previous bearish candle.
Similarly, for a sell signal, the current candle must be bearish with a body size comparable to the previous bullish candle.
Wick Validation:
The indicator analyzes the wick length to reinforce or exclude signals.
For a buy signal, the lower wick of the bullish candle must be shorter than that of the previous bearish candle.
For a sell signal, the upper wick of the bearish candle must be shorter than that of the previous bullish candle and smaller than 30% of the candle's body.
High Volume:
Signals are only generated when the volume exceeds a certain threshold, ensuring that signals are issued in active market conditions.
The minimum volume should be adjusted based on the asset. For example, for gold, a minimum volume of 9000 is recommended.
Trading Strategy:
Buy Signals:
A bearish (red) candle is followed by a bullish (green) candle with a body size that is comparable to the previous candle (0.9 to 3 times the body size).
The lower wick of the bullish candle is shorter than that of the previous bearish candle, confirming the validity of the signal.
The RSI must be below 40, indicating an oversold condition.
The volume must exceed the defined threshold (e.g., > 9000 for gold) to confirm an active market.
Sell Signals:
A bullish (green) candle is followed by a bearish (red) candle with a comparable body size.
The upper wick of the bearish candle must be shorter than that of the previous bullish candle and must not exceed 30% of the body size.
The RSI must be above 60, indicating an overbought condition.
The volume must also exceed the minimum threshold for a valid signal.
Usage Guidelines:
Volume Adjustment: It is crucial to adjust the volume threshold depending on the asset you're trading. For example, for assets like gold, a minimum volume of 9000 is recommended to filter out weak signals. Each asset has a different volume dynamic, so test different thresholds on historical data to find the optimal setting.
Time Frame:
It is recommended to use this indicator on a 1-hour (1H) chart for the best signal relevance. This time frame provides a good balance between reactivity and filtering false signals.
Confluence:
Combine the signals from this indicator with other tools like support and resistance levels, moving averages, or chart patterns to increase your chances of success. Confluence of indicators improves the reliability of signals.
Risk Management:
Implement strict risk management. Use stop-losses based on volatility, such as ATR (Average True Range), or the wick size to determine exit points.
Backtesting:
Before using it live, conduct backtesting on various assets to fine-tune the parameters, especially the volume threshold, and to verify performance across different market conditions.
This indicator is an excellent tool for traders looking to identify trend reversals based on solid technical criteria such as RSI, candle structure, and volume. It is particularly effective on volatile assets with precise volume adjustment.
C&P MA/KT Compare & Predict Moving average / Current market price.
This is simple table indicator. Located at right-top of chart. Shows which way will MA's head go.
I made this indicator for automate candle countings & compare price. With this friend, you will be know trend more faster then waiting traditional MA golden / dead crossing.
In factory settings, current market price will be compared with closing price of the candle, corresponding to previous number 7, 25, 60, 99, 130, 240. If Current market price is lower then past, the box for the corresponding MA is highlighted in red and appears as Down. In opposite case, it will be highlighted in green and indicates Up.
MA와 시장가 차이로 MA의 머리 방향을 예측해주는 간단한 지표입니다.
수동으로 캔들 되돌려서 종가와 시장가 비교하는게 너무 번거로워서 자동화를 위해 제작되었습니다. 해당 지표를 이용하시면 MA의 골든/데드 크로스를 기다리는 것보다 더 빠른 예측이 가능합니다.
차트 우측 상단에 예측 값이 표시되며, 기본 설정에선 7, 25, 60, 99, 130, 240개 전 캔들의 종가와 시장가가 비교됩니다. 시장가가 비교 값보다 높을 때는 초록 배경에 Up 텍스트가 출력됩니다. 반대의 경우엔 빨간색 배경에 Down 표기가 나타납니다.
EMA CROSS v1.0 by ScorpioneroIndicator Description: Multi-Timeframe SMA Table & Plot
This indicator displays a structured table of Simple Moving Averages (SMA) across multiple timeframes and plots them directly on the chart for better trend analysis.
Features:
✅ Multi-Timeframe SMA Calculation: Computes SMAs for different periods (10, 60, and 223) across six timeframes (1m, 3m, 5m, 15m, 30m, 60m).
✅ Sorted SMA Table: Displays a table in the bottom-right corner of the chart, showing the three SMAs per timeframe, sorted in descending order.
✅ Color-Coded Cells: Each SMA is highlighted with a specific color:
🟡 Yellow → 10-period SMA
🔵 Blue → 60-period SMA
🟣 Purple → 223-period SMA
⚪ Gray → Other values
✅ SMA Plotting on the Chart: All calculated SMAs are plotted directly on the price chart, allowing users to visualize their interaction with price movements.
How to Use:
The table provides a quick overview of SMA rankings across timeframes, helping identify bullish or bearish trends.
The SMA plots on the chart can be used for dynamic support/resistance analysis and trend confirmation.
This indicator is ideal for traders who rely on multi-timeframe trend analysis to make informed trading decisions! 🚀
by Scorpionero
[COG] Adaptive Squeeze Intensity 📊 Adaptive Squeeze Intensity (ASI) Indicator
🎯 Overview
The Adaptive Squeeze Intensity (ASI) indicator is an advanced technical analysis tool that combines the power of volatility compression analysis with momentum, volume, and trend confirmation to identify high-probability trading opportunities. It quantifies the degree of price compression using a sophisticated scoring system and provides clear entry signals for both long and short positions.
⭐ Key Features
- 📈 Comprehensive squeeze intensity scoring system (0-100)
- 📏 Multiple Keltner Channel compression zones
- 📊 Volume analysis integration
- 🎯 EMA-based trend confirmation
- 🎨 Proximity-based entry validation
- 📱 Visual status monitoring
- 🎨 Customizable color schemes
- ⚡ Clear entry signals with directional indicators
🔧 Components
1. 📐 Squeeze Intensity Score (0-100)
The indicator calculates a total squeeze intensity score based on four components:
- 📊 Band Convergence (0-40 points): Measures the relationship between Bollinger Bands and Keltner Channels
- 📍 Price Position (0-20 points): Evaluates price location relative to the base channels
- 📈 Volume Intensity (0-20 points): Analyzes volume patterns and thresholds
- ⚡ Momentum (0-20 points): Assesses price momentum and direction
2. 🎨 Compression Zones
Visual representation of squeeze intensity levels:
- 🔴 Extreme Squeeze (80-100): Red zone
- 🟠 Strong Squeeze (60-80): Orange zone
- 🟡 Moderate Squeeze (40-60): Yellow zone
- 🟢 Light Squeeze (20-40): Green zone
- ⚪ No Squeeze (0-20): Base zone
3. 🎯 Entry Signals
The indicator generates entry signals based on:
- ✨ Squeeze release confirmation
- ➡️ Momentum direction
- 📊 Candlestick pattern confirmation
- 📈 Optional EMA trend alignment
- 🎯 Customizable EMA proximity validation
⚙️ Settings
🔧 Main Settings
- Base Length: Determines the calculation period for main indicators
- BB Multiplier: Sets the Bollinger Bands deviation multiplier
- Keltner Channel Multipliers: Three separate multipliers for different compression zones
📈 Trend Confirmation
- Four customizable EMA periods (default: 21, 34, 55, 89)
- Optional trend requirement for entry signals
- Adjustable EMA proximity threshold
📊 Volume Analysis
- Customizable volume MA length
- Adjustable volume threshold for signal confirmation
- Option to enable/disable volume analysis
🎨 Visualization
- Customizable bullish/bearish colors
- Optional intensity zones display
- Status monitor with real-time score and state information
- Clear entry arrows and background highlights
💻 Technical Code Breakdown
1. Core Calculations
// Base calculations for EMAs
ema_1 = ta.ema(close, ema_length_1)
ema_2 = ta.ema(close, ema_length_2)
ema_3 = ta.ema(close, ema_length_3)
ema_4 = ta.ema(close, ema_length_4)
// Proximity calculation for entry validation
ema_prox_raw = math.abs(close - ema_1) / ema_1 * 100
is_close_to_ema_long = close > ema_1 and ema_prox_raw <= prox_percent
```
### 2. Squeeze Detection System
```pine
// Bollinger Bands setup
BB_basis = ta.sma(close, length)
BB_dev = ta.stdev(close, length)
BB_upper = BB_basis + BB_mult * BB_dev
BB_lower = BB_basis - BB_mult * BB_dev
// Keltner Channels setup
KC_basis = ta.sma(close, length)
KC_range = ta.sma(ta.tr, length)
KC_upper_high = KC_basis + KC_range * KC_mult_high
KC_lower_high = KC_basis - KC_range * KC_mult_high
```
### 3. Scoring System Implementation
```pine
// Band Convergence Score
band_ratio = BB_width / KC_width
convergence_score = math.max(0, 40 * (1 - band_ratio))
// Price Position Score
price_range = math.abs(close - KC_basis) / (KC_upper_low - KC_lower_low)
position_score = 20 * (1 - price_range)
// Final Score Calculation
squeeze_score = convergence_score + position_score + vol_score + mom_score
```
### 4. Signal Generation
```pine
// Entry Signal Logic
long_signal = squeeze_release and
is_momentum_positive and
(not use_ema_trend or (bullish_trend and is_close_to_ema_long)) and
is_bullish_candle
short_signal = squeeze_release and
is_momentum_negative and
(not use_ema_trend or (bearish_trend and is_close_to_ema_short)) and
is_bearish_candle
```
📈 Trading Signals
🚀 Long Entry Conditions
- Squeeze release detected
- Positive momentum
- Bullish candlestick
- Price above relevant EMAs (if enabled)
- Within EMA proximity threshold (if enabled)
- Sufficient volume confirmation (if enabled)
🔻 Short Entry Conditions
- Squeeze release detected
- Negative momentum
- Bearish candlestick
- Price below relevant EMAs (if enabled)
- Within EMA proximity threshold (if enabled)
- Sufficient volume confirmation (if enabled)
⚠️ Alert Conditions
- 🔔 Extreme squeeze level reached (score crosses above 80)
- 🚀 Long squeeze release signal
- 🔻 Short squeeze release signal
💡 Tips for Usage
1. 📱 Use the status monitor to track real-time squeeze intensity and state
2. 🎨 Pay attention to the color gradient for trend direction and strength
3. ⏰ Consider using multiple timeframes for confirmation
4. ⚙️ Adjust EMA and proximity settings based on your trading style
5. 📊 Use volume analysis for additional confirmation in liquid markets
📝 Notes
- 🔧 The indicator combines multiple technical analysis concepts for robust signal generation
- 📈 Suitable for all tradable markets and timeframes
- ⭐ Best results typically achieved in trending markets with clear volatility cycles
- 🎯 Consider using in conjunction with other technical analysis tools for confirmation
⚠️ Disclaimer
This technical indicator is designed to assist in analysis but should not be considered as financial advice. Always perform your own analysis and risk management when trading.
Multi Timeframe MAsThis Pine Script indicator, titled "Multi Timeframe MAs," allows you to plot Exponential Moving Averages (EMAs) or Simple Moving Averages (SMAs) from multiple timeframes on a single chart. This helps traders and analysts visualize and compare different moving averages across various timeframes without having to switch between charts.
Key Features:
Multiple Timeframes:
The script supports six different timeframes, ranging from minutes to weekly intervals.
Users can input their desired timeframes, including custom settings such as "60" (60 minutes), "D" (daily), and "W" (weekly).
Moving Average Types:
Users can choose between Exponential Moving Averages (EMA) and Simple Moving Averages (SMA) for each timeframe.
The script utilizes a ternary operator to determine whether to calculate an EMA or an SMA based on user input.
Customizable Periods:
Each moving average can have a different period, allowing for flexibility in analysis.
The default periods are set to commonly used values (e.g., 15, 20, 5, 12).
Visibility Controls:
Users can toggle the visibility of each moving average line, enabling or disabling them as needed.
This feature helps declutter the chart when specific moving averages are not required.
Black Stepped Lines:
All moving averages are plotted as black, stepped lines to provide a clear and consistent visual representation.
This makes it easy to distinguish these lines from other elements on the chart.
Example Use Cases:
Trend Analysis: Compare short-term and long-term trends by visualizing moving averages from different timeframes on a single chart.
Support and Resistance Levels: Identify key support and resistance levels across multiple timeframes.
Cross-Timeframe Strategy: Develop and test trading strategies that rely on the confluence of moving averages from different timeframes.
This script offers a powerful tool for traders and analysts who want to gain deeper insights into market movements by examining moving averages across multiple timeframes. With its customizable settings and user-friendly interface, it provides a versatile solution for a wide range of trading and analytical needs.
4x Stochastic and 1x RSI Buy and Sell SignalsBuy signal (green), when Stochastic 9, 14, 40 and 60 are bellow 20.
Sell signal (red), when Stochastic 9, 14, 40 and 60 are above 80.
Buy signal is larger, when RSI is also bellow 30.
Sell signal is larger, when RSI is also above 70.
Using RSI is optional and can be disabled.
Use this signals when confirmed by another indicators, like support and resistance levels, EMAs and fundamental analysis.
[blackcat] L2 BullBear OscillatorOVERVIEW
The " L2 BullBear Oscillator" is a custom trading indicator for TradingView that helps traders identify market trends, potential tops and bottoms, and the strength of trends using various moving averages and price relationships.
FEATURES
Calculates a base oscillator based on the close price relative to the highest and lowest prices over the past 60 periods.
Smoothes the oscillator using exponential moving averages (EMAs).
Determines market strength through relative strength indicators and moving averages.
Identifies potential tops and strong support levels based on specific conditions involving oscillators and price actions.
Plots several signals to help traders make informed decisions.
HOW TO USE
Install the script on your TradingView chart.
Customize the settings in the "Inputs" section:
Set the periods for the short-term and long-term EMAs.
Set the periods for the three SMAs used in calculations.
Interpret the plots:
BullBear Signal (Fuchsia Line): Indicates the overall market trend. Uptrends suggest buying opportunities, while downtrends suggest selling.
Decreasing BullBear Signal (Aqua Line): Highlights periods when the trend is weakening or turning bearish, signaling possible selling opportunities.
Potential Top Condition (Yellow Plot): Signals possible trend reversals from bullish to bearish, indicating times to consider taking profits or preparing for a downtrend.
High Price Condition (Yellow Plot): Indicates strong bullish momentum but also potentially overbought conditions, which might precede a correction.
Earning Condition (Red Line): Possibly signifies strong bullish signals, indicating good times to enter long positions.
Strong Support Condition (White Arrows): Signals potential bottoms or support levels, indicating buying opportunities.
Start Hiding Condition (Fuchsia Plot): Might indicate times to exit positions or reduce exposure due to unfavorable market conditions.
ALGORITHMS
Moving Averages:
Simple Moving Averages (SMAs): Used to calculate averages of price data over specified periods.
Exponential Moving Averages (EMAs): Used to give more weight to recent prices, making the moving averages more responsive to new data.
Oscillator Calculation:
The base oscillator is calculated based on the close price's position within the highest and lowest prices over 60 periods, normalized to a 0-100 scale.
This oscillator is then smoothed using EMAs to reduce noise and make trends more visible.
Relative Strength Indicator:
Calculated based on the close price's position within the highest and lowest prices over 20 periods, also normalized to a 0-100 scale.
This is smoothed using SMAs to get a more stable signal.
Condition Checks:
Various conditions are checked to identify potential tops, strong support, and other market states based on the relationships between these indicators and price actions.
LIMITATIONS
The script is based on historical data and does not guarantee future performance.
It is recommended to use the script in conjunction with other analysis tools.
The effectiveness of the strategy may vary depending on the market conditions and asset being traded.
NOTES
The script is designed for educational purposes and should not be considered financial advice.
Users are encouraged to backtest the strategy on a demo account before applying it to live trades.
THANKS
Special thanks to the TradingView community for their support and feedback.
Average Price Range Screener [KFB Quant]Average Price Range Screener
Overview:
The Average Price Range Screener is a technical analysis tool designed to provide insights into the average price volatility across multiple symbols over user-defined time periods. The indicator compares price ranges from different assets and displays them in a visual table and chart for easy reference. This can be especially helpful for traders looking to identify symbols with high or low volatility across various time frames.
Key Features:
Multiple Symbols Supported:
The script allows for analysis of up to 10 symbols, such as major cryptocurrencies and market indices. Symbols can be selected by the user and configured for tracking price volatility.
Dynamic Range Calculation:
The script calculates the average price range of each symbol over three distinct time periods (default are 30, 60, and 90 bars). The price range for each symbol is calculated as a percentage of the bar's high-to-low difference relative to its low value.
Range Visualization:
The results are visually represented using:
- A color-coded table showing the calculated average ranges of each symbol and the current chart symbol.
- A line plot that visually tracks the volatility for each symbol on the chart, with color gradients representing the range intensity from low (red/orange) to high (blue/green).
Customizable Inputs:
- Length Inputs: Users can define the time lengths (default are 30, 60, and 90 bars) for calculating average price ranges for each symbol.
- Symbol Inputs: 10 symbols can be tracked at once, with default values set to popular crypto pairs and indices.
- Color Inputs: Users can customize the color scheme for the range values displayed in the table and chart.
Real-Time Ranking:
The indicator ranks symbols by their average price range, providing a clear view of which assets are exhibiting higher volatility at any given time.
Each symbol's range value is color-coded based on its relative volatility within the selected symbols (using a gradient from low to high range).
Data Table:
The table shows the average range values for each symbol in real-time, allowing users to compare volatility across multiple assets at a glance. The table is dynamically updated as new data comes in.
Interactive Labels:
The indicator adds labels to the chart, showing the average range for each symbol. These labels adjust in real-time as the price range values change, giving users an immediate view of volatility rankings.
How to Use:
Set Time Periods: Adjust the time periods (lengths) to match your trading strategy's timeframe and volatility preference.
Symbol Selection: Add and track the price range for your preferred symbols (cryptocurrencies, stocks, indices).
Monitor Volatility: Use the visual table and plot to identify symbols with higher or lower volatility, and adjust your trading strategy accordingly.
Interpret the Table and Chart: Ranges that are color-coded from red/orange (lower volatility) to blue/green (higher volatility) allow you to quickly gauge which symbols are most volatile.
Disclaimer: This tool is provided for informational and educational purposes only and should not be considered as financial advice. Always conduct your own research and consult with a licensed financial advisor before making any investment decisions.
Bewakoof stock indicator**Title**: "Bewakoof Stock Indicator: Multi-Timeframe RSI and SuperTrend Entry-Exit System"
---
### Description
The **Bewakoof Stock Indicator** is an original trading tool that combines multi-timeframe RSI analysis with the SuperTrend indicator to create reliable entry and exit signals for trending markets. This indicator is designed for traders looking to follow strong trends with built-in risk management. By filtering entries through short- and long-term momentum and utilizing dynamic trailing exits, this indicator provides a structured approach to trading.
#### Indicator Components
1. **Multi-Timeframe RSI Analysis**:
- The Relative Strength Index (RSI) is calculated across three timeframes: Daily, Weekly, and Monthly.
- By examining multiple timeframes, the indicator confirms that trends align over short, medium, and long-term intervals, making buy signals more reliable.
- **Buy Condition**: All three RSI values must meet these thresholds:
- **Daily RSI > 50** – indicates short-term upward momentum,
- **Weekly RSI > 60** – signals medium-term strength,
- **Monthly RSI > 60** – confirms long-term trend alignment.
- This filtering process ensures that buy signals are generated only in stable, upward-trending markets.
2. **SuperTrend Confirmation**:
- The SuperTrend (20-period ATR with a multiplier of 2) acts as a trend filter and trailing stop mechanism.
- For a buy condition to be valid, the closing price must be above the SuperTrend level, verifying that the market is trending up.
- The combination of RSI and SuperTrend helps to avoid false signals, focusing only on well-established trends.
#### Trade Signals
- **Buy Signal**: When both the multi-timeframe RSI and SuperTrend conditions are met, a buy signal is triggered, indicated by a “BUY” label on the chart with details:
- **Entry Price**,
- **Initial Stop-Loss** (set at the SuperTrend level for risk control),
- **Target 1** – calculated with a 1:1 risk-reward ratio based on the initial stop-loss,
- **Target 2** – calculated with a 1:2 risk-reward ratio based on the initial stop-loss.
- **Exit Signals**: This indicator provides two exit strategies to protect profits:
1. **Fixed Stop-Loss**: Automatically set at the SuperTrend level at the time of entry to limit risk.
2. **Trailing Exit**: Exits are triggered if the price crosses below the SuperTrend level, adapting to potential trend reversals.
#### Labeling & Alerts
The **Bewakoof Stock Indicator** offers intuitive labeling and alert options:
- **Labels**: Buy and exit points are clearly marked, showing entry, stop-loss, and targets directly on the chart.
- **Alerts**: Custom alerts can be set for:
- **Buy signals** when both conditions are met, and
- **Exit signals** triggered by the stop-loss or trailing exit.
#### Use Case and Benefits
This indicator is ideal for trend-following traders who value risk control and trend confirmation:
- **Stronger Trend Signals**: By requiring RSI alignment across multiple timeframes, this indicator focuses only on trades with strong trend momentum.
- **Dynamic Risk Management**: Using both fixed and trailing exits enables flexible trade management, balancing risk and potential reward.
- **Simple Trade Execution**: The chart labels and alerts simplify trade decisions, making it easy to enter, manage, and exit trades.
#### How to Use
1. **Add** the Bewakoof Stock Indicator to your chart.
2. **Watch** for the "BUY" label as your entry point.
3. **Manage the trade** using the labeled stop-loss and target levels.
4. **Exit** on either a stop-loss hit or when the price crosses below the SuperTrend for a trailing exit.
The **Bewakoof Stock Indicator** is a complete solution for trend-following traders, combining the strength of multi-timeframe RSI with the SuperTrend’s trend-following capabilities. This systematic approach aims to provide high-confidence entries and effective risk management, empowering traders to follow trends with precision and control.
Wave Anchor IndicatorThe Wave Anchor Indicator is designed to mark the crossing of overbought and oversold levels of higher time frame momentum waves, based on the VuManChu Cipher B+Divergences Wave Trend Indicator. This tool is inspired by the TP Mint trading strategy, which relies heavily on the momentum waves of Market Cipher B or VuManChu Cipher B for identifying optimal entry and exit points.
Key Concept: Anchored Waves
In the TP Mint strategy, momentum waves in overbought (above 60) or oversold (below -60) conditions on higher time frames are considered "anchored." These anchored waves provide strong signals for entries and take-profit points when viewed on lower time frames. The Wave Anchor Indicator focuses on these anchor conditions to help traders make informed decisions by seeing higher time frame anchor states directly on the entry time frame chart.
How It Works
Labeling Signals:
- On lower time frames, such as the 15-minute chart, the indicator shows labels when higher
time frame momentum waves (1-hour and 4-hour) cross the overbought or oversold levels.
- Labels above price indicate overbought conditions, with green labels when the wave crosses
upward and red labels when crossing downward.
- Labels below price signal oversold conditions, with red for a downward cross and green for an
upward cross.
- Each label displays the time frame of the crossing momentum wave, providing context for
traders at a glance.
Time Frame Pairings:
- On the 15-minute time frame, the indicator tracks anchor conditions from the 1-hour and 4-
hour time frames.
- On the 1-hour chart, it monitors 4-hour and daily time frame anchor conditions.
Customization and Alerts
Flexible Display Options : Users can choose to display none, one, or both of the grouped higher time frame labels, depending on their strategy and preferences.
Alerts : The indicator also allows for custom alerts when a label appears, helping traders stay on top of key market movements without constantly monitoring the chart.
Use Cases
This indicator is ideal for traders who use momentum-based strategies across multiple time frames. It simplifies the process of identifying key entry and exit points by focusing on the anchor conditions from higher time frames, making it easier to execute the TP Mint strategy or similar methods.
Thank you to VuManChu and LazyBear for mamking the momentum wave code open source and allowing it’s use in this indicator.
Short-Only Cycle IndicatorThis script is a follow-up to my previous 60-day Cycle, Long-Only Indicator.
The "Short-Only Cycle Indicator" is designed to help traders navigate optimal shorting opportunities by analyzing cyclical price behavior over a defined period. It focuses on recognizing distribution phases (ideal for shorting) and accumulation phases (where shorting should be avoided). It should be used with assets that the trader has an existing thesis for downward price movement.
Key Features:
1. Cycle Length: The indicator uses a 60-day cycle to identify high and low points in price, which are then used to determine the current market phase.
2. Distribution Phase: When the price is near the cycle high, the indicator signals a distribution phase, indicating potential shorting opportunities.
3. Accumulation Phase: When the price is near the cycle low, the indicator signals an accumulation phase, advising traders to avoid shorting.
4. Short Signal: A short signal is triggered when the price crosses below the cycle high, which is visually marked on the chart for easy identification.
This indicator is particularly useful for traders who prefer a short-only strategy, as it helps them time their entries and avoid shorting during unfavorable market conditions.
3-Bar (Outside Bar) Scanner with Table Display# 3-Bar (Outside Bar) Scanner with Table Display
## Overview
The **3-Bar (Outside Bar) Scanner with Table Display** is a custom TradingView indicator designed for traders who utilize **The Strat** methodology. This indicator scans for **3-bar (Outside Bar)** patterns across multiple symbols and displays the results in a convenient table format directly on your chart.
## Purpose
- **Efficient Multi-Symbol Scanning**: Monitor up to four symbols simultaneously for 3-bar patterns without the need to switch between charts.
- **Real-Time Updates**: The table dynamically updates with new price data, providing immediate insights into potential trading opportunities.
- **Visual Clarity**: Displays whether a 3-bar is bullish ("3 Up") or bearish ("3 Down"), helping you quickly interpret market sentiment.
## How It Works
- **Data Retrieval**: The indicator uses `request.security()` to fetch high, low, open, and close prices for the specified symbols and timeframe.
- **3-Bar Detection**:
- **Outside Bar Criteria**: Checks if the current candle's high is higher than the previous candle's high and the current low is lower than the previous low.
- **Direction Determination**:
- **"3 Up"**: If the candle closes higher than it opens (bullish candle).
- **"3 Down"**: If the candle closes lower than it opens (bearish candle).
- **Table Display**:
- The table shows the **Symbol**, **Timeframe**, and **State** ("3 Up", "3 Down", or blank if no pattern detected).
- Customizable colors and positioning to fit your chart's aesthetics.
## Best Use Cases
- **Rapid Market Analysis**: Ideal for traders needing a quick overview of multiple assets for potential 3-bar setups.
- **Strategic Decision-Making**: Helps identify key reversal or continuation patterns in alignment with **The Strat** principles.
- **Scalable Monitoring**: By utilizing TradingView's multi-chart layouts, you can expand monitoring beyond four symbols.
## Instructions for Use
### Adding the Indicator to Your Chart
1. **Copy the Code**: Use the provided Pine Script code for the indicator.
2. **Create a New Indicator**:
- In TradingView, click on **Pine Editor** at the bottom of the platform.
- Paste the code into the editor.
3. **Save and Add to Chart**:
- Click **Save** and give your indicator a name.
- Click **Add to Chart** to apply it.
### Customizing the Inputs
- **Symbols**:
- **Symbol 1**: Leave blank to use the current chart's symbol or enter a specific symbol (e.g., `AAPL`).
- **Symbol 2 to Symbol 4**: Enter additional symbols or leave them blank.
- **Timeframe**: Select your desired timeframe (e.g., `D` for Daily, `60` for 60-minute).
- **Table Colors**:
- Customize header and data colors for better visibility against your chart background.
### Interpreting the Table
- **Symbol**: Displays the symbol without the exchange prefix for clarity.
- **Timeframe**: Shows the timeframe applied to the analysis.
- **State**:
- **"3 Up"**: A bullish outside bar where the candle closed higher than it opened.
- **"3 Down"**: A bearish outside bar where the candle closed lower than it opened.
- **Blank**: No 3-bar pattern detected on the latest candle.
### Monitoring More Than Four Symbols
- **Multi-Chart Layout**:
- Use TradingView's multi-chart feature to display multiple charts within a single workspace.
- Apply the indicator to each chart. For example:
- **Four-Chart Grid**: Monitor up to 16 symbols by setting up four charts, each with the indicator tracking four symbols.
- **Steps**:
1. Arrange your workspace into a multi-chart layout.
2. Add the indicator to each chart.
3. Input different symbols into the indicator on each chart.
## Example Usage
Suppose you want to monitor the following symbols on a Daily timeframe:
- **Symbol 1**: *(Leave blank to use the current chart's symbol, e.g., `SPY`)*
- **Symbol 2**: `AAPL`
- **Symbol 3**: `TSLA`
- **Symbol 4**: `AMZN`
After adding the indicator and entering these symbols:
- **SPY**: The table shows "3 Up" in the State column, indicating a bullish outside bar.
- **AAPL**: No 3-bar pattern detected; the State column is blank.
- **TSLA**: The table shows "3 Down," indicating a bearish outside bar.
- **AMZN**: The table shows "3 Up," indicating another bullish outside bar.
This setup allows you to quickly assess which symbols are exhibiting significant patterns that may warrant further analysis or action.
## Notes
- **Customization**: Feel free to adjust the table's position and colors to suit your preferences.
- **Limitations**:
- Be aware of TradingView's limitations on `request.security()` calls, which may vary based on your subscription plan.
- The indicator is designed to monitor up to four symbols per instance due to these limitations.
- **Scalability**:
- By using multi-chart layouts, you can effectively monitor more symbols without overloading a single chart.
- This approach allows you to scale up your monitoring capabilities to fit your trading strategy.
## Conclusion
The **3-Bar (Outside Bar) Scanner with Table Display** is a valuable tool for traders who utilize **The Strat** methodology. It streamlines the process of identifying key 3-bar patterns across multiple symbols and timeframes, enhancing your ability to make informed trading decisions quickly.
By integrating this indicator into your trading routine, you can:
- Stay alert to significant market movements.
- Reduce the time spent manually scanning charts.
- Increase efficiency in executing your trading strategy.
---
Feel free to share this indicator with the Strat community. Feedback and suggestions are welcome to further enhance its functionality. Happy trading!
Nifty Dashboard//@version=5
//Author @GODvMarkets
indicator("GOD NSE Nifty Dashboard", "Nifty Dashboard")
i_timeframe = input.timeframe("D", "Timeframe")
// if not timeframe.isdaily
// runtime.error("Please switch timeframe to Daily")
i_text_size = input.string(size.auto, "Text Size", )
//-----------------------Functions-----------------------------------------------------
f_oi_buildup(price_chg_, oi_chg_) =>
switch
price_chg_ > 0 and oi_chg_ > 0 =>
price_chg_ > 0 and oi_chg_ < 0 =>
price_chg_ < 0 and oi_chg_ > 0 =>
price_chg_ < 0 and oi_chg_ < 0 =>
=>
f_color(val_) => val_ > 0 ? color.green : val_ < 0 ? color.red : color.gray
f_bg_color(val_) => val_ > 0 ? color.new(color.green,80) : val_ < 0 ? color.new(color.red,80) : color.new(color.black,80)
f_bg_color_price(val_) =>
fg_color_ = f_color(val_)
abs_val_ = math.abs(val_)
transp_ = switch
abs_val_ > .03 => 40
abs_val_ > .02 => 50
abs_val_ > .01 => 60
=> 80
color.new(fg_color_, transp_)
f_bg_color_oi(val_) =>
fg_color_ = f_color(val_)
abs_val_ = math.abs(val_)
transp_ = switch
abs_val_ > .10 => 40
abs_val_ > .05 => 50
abs_val_ > .025 => 60
=> 80
color.new(fg_color_, transp_)
f_day_of_week(time_=time) =>
switch dayofweek(time_)
1 => "Sun"
2 => "Mon"
3 => "Tue"
4 => "Wed"
5 => "Thu"
6 => "Fri"
7 => "Sat"
//-------------------------------------------------------------------------------------
var table table_ = table.new(position.middle_center, 22, 20, border_width = 1)
var cols_ = 0
var text_color_ = color.white
var bg_color_ = color.rgb(1, 5, 19)
f_symbol(idx_, symbol_) =>
symbol_nse_ = "NSE" + ":" + symbol_
fut_cur_ = "NSE" + ":" + symbol_ + "1!"
fut_next_ = "NSE" + ":" + symbol_ + "2!"
= request.security(symbol_nse_, i_timeframe, [close, close-close , close/close -1, volume], ignore_invalid_symbol = true, lookahead = barmerge.lookahead_on)
= request.security(fut_cur_, i_timeframe, , ignore_invalid_symbol = true, lookahead = barmerge.lookahead_on)
= request.security(fut_next_, i_timeframe, , ignore_invalid_symbol = true, lookahead = barmerge.lookahead_on)
= request.security(fut_cur_ + "_OI", i_timeframe, [close, close-close ], ignore_invalid_symbol = true, lookahead = barmerge.lookahead_on)
= request.security(fut_next_ + "_OI", i_timeframe, [close, close-close ], ignore_invalid_symbol = true, lookahead = barmerge.lookahead_on)
stk_vol_ = stk_vol_nse_
fut_vol_ = fut_cur_vol_ + fut_next_vol_
fut_oi_ = fut_cur_oi_ + fut_next_oi_
fut_oi_chg_ = fut_cur_oi_chg_ + fut_next_oi_chg_
fut_oi_chg_pct_ = fut_oi_chg_ / fut_oi_
fut_stk_vol_x_ = fut_vol_ / stk_vol_
fut_vol_oi_action_ = fut_vol_ / math.abs(fut_oi_chg_)
= f_oi_buildup(chg_pct_, fut_oi_chg_pct_)
close_color_ = fut_cur_close_ > fut_vwap_ ? color.green : fut_cur_close_ < fut_vwap_ ? color.red : text_color_
if barstate.isfirst
row_ = 0, col_ = 0
table.cell(table_, col_, row_, "Symbol", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Close", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "VWAP", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Pts", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Stk Vol", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Fut Vol", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Fut/Stk Vol", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "OI Cur", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "OI Next", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "OI Cur Chg", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "OI Next Chg", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "COI ", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "COI Chg", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Vol/OI Chg", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "COI Chg%", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "Pr.Chg%", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
table.cell(table_, col_, row_, "OI Buildup", text_color = text_color_, bgcolor = bg_color_, text_size = i_text_size), col_ += 1
cell_color_ = color.white
cell_bg_color_ = color.rgb(1, 7, 24)
if barstate.islast
row_ = idx_, col_ = 0
table.cell(table_, col_, row_, str.format("{0}", symbol_), text_color = f_color(chg_pct_), bgcolor = f_bg_color_price(chg_pct_), text_size = i_text_size, text_halign = text.align_left), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#.00}", fut_cur_close_), text_color = close_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#.00}", fut_vwap_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,0.00}", chg_pts_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", stk_vol_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_vol_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,0.00}", fut_stk_vol_x_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_cur_oi_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_next_oi_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_cur_oi_chg_), text_color = f_color(fut_cur_oi_chg_), bgcolor = f_bg_color(fut_cur_oi_chg_), text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_next_oi_chg_), text_color = f_color(fut_next_oi_chg_), bgcolor = f_bg_color(fut_next_oi_chg_), text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_oi_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,#,###}", fut_oi_chg_), text_color = f_color(fut_oi_chg_), bgcolor = f_bg_color(fut_oi_chg_), text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,0.00}", fut_vol_oi_action_), text_color = cell_color_, bgcolor = cell_bg_color_, text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,0.00%}", fut_oi_chg_pct_), text_color = f_color(fut_oi_chg_pct_), bgcolor = f_bg_color_oi(fut_oi_chg_pct_), text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0,number,0.00%}", chg_pct_), text_color = f_color(chg_pct_), bgcolor = f_bg_color_price(chg_pct_), text_size = i_text_size, text_halign = text.align_right), col_ += 1
table.cell(table_, col_, row_, str.format("{0}", oi_buildup_), text_color = oi_buildup_color_, bgcolor = color.new(oi_buildup_color_,80), text_size = i_text_size, text_halign = text.align_left), col_ += 1
idx_ = 1
f_symbol(idx_, "BANKNIFTY"), idx_ += 1
f_symbol(idx_, "NIFTY"), idx_ += 1
f_symbol(idx_, "CNXFINANCE"), idx_ += 1
f_symbol(idx_, "RELIANCE"), idx_ += 1
f_symbol(idx_, "HDFC"), idx_ += 1
f_symbol(idx_, "ITC"), idx_ += 1
f_symbol(idx_, "HINDUNILVR"), idx_ += 1
f_symbol(idx_, "INFY"), idx_ += 1