Market Phase MAMarket Phase MA is an advanced trend-following indicator designed to provide traders with a dynamically colored moving average that adapts to market conditions. It uses a powerful combination of Average True Range (ATR) and Average Directional Index (ADX) to classify market trends in real-time. The indicator integrates a fully customizable moving average (SMA or EMA) to highlight trend phases clearly and effectively.
Key Features & Advantages:
✔ Adaptive Trend Classification: Detects uptrends, downtrends, and sideways markets using a refined mix of ATR and ADX for more precise trend identification.
✔ Color-Coded Moving Average: The moving average dynamically changes color based on trend classification, providing a clean visual representation of market sentiment.
✔ Advanced ATR & ADX Filtering:
- ATR measures market volatility and identifies ranging periods.
- ADX confirms trend strength, reducing false signals.
- A weighted approach balances ATR and ADX, ensuring reliability.
✔ Fully Customizable Moving Average: Traders can select between SMA and EMA while adjusting the moving average length directly from the settings panel.
✔ Smooth & Responsive Adjustments: The smoothing factor can be fine-tuned to control signal sensitivity and noise reduction, making it suitable for scalping, swing trading, and long-term trend monitoring.
What Makes It Unique:
- Unlike traditional trend indicators, Market Phase MA provides **direct visual feedback** on a moving average rather than using a separate oscillator.
- It **adapts dynamically** to market conditions instead of relying on fixed thresholds.
- The combination of **volatility and trend strength analysis** enhances precision in identifying valid trends.
- Users can optimize **reaction speed vs. reliability** with adjustable parameters for better decision-making.
How to Use It:
- Identify Market Phases: The moving average color shifts based on trend type—**teal** for uptrends, **red** for downtrends, and **gray** for sideways markets.
- Confirm Trend Strength: Persistent color shifts indicate strong trends, while frequent changes may suggest market indecision.
- Use as a Trade Confirmation Tool: Complement it with **support & resistance zones, price action analysis, and volume indicators** for stronger confirmation signals.
Market Phase MA is designed for traders seeking a clear, efficient, and highly adaptable moving average trend detection system. Whether you are a day trader, swing trader, or long-term investor, this indicator will help you identify and follow trends with confidence.
Cari dalam skrip untuk "adx"
DeepSignalFilterHelpersLibrary "DeepSignalFilterHelpers"
filter_intraday_intensity(useIiiFilter)
Parameters:
useIiiFilter (bool)
filter_vwma(src, length, useVwmaFilter)
Parameters:
src (float)
length (int)
useVwmaFilter (bool)
filter_nvi(useNviFilter)
Parameters:
useNviFilter (bool)
filter_emv(length, emvThreshold, useEmvFilter, useMovingAvg)
EMV filter for filtering signals based on Ease of Movement
Parameters:
length (int) : The length of the EMV calculation
emvThreshold (float) : The EMV threshold
useEmvFilter (bool) : Whether to apply the EMV filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_adi(length, threshold, useAdiFilter, useMovingAvg)
ADI filter for filtering signals based on Accumulation/Distribution Index
Parameters:
length (int) : The length of the ADI moving average calculation
threshold (float) : The ADI threshold
useAdiFilter (bool) : Whether to apply the ADI filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_mfi(length, mfiThreshold, useMfiFilter, useMovingAvg)
MFI filter for filtering signals based on Money Flow Index
Parameters:
length (int) : The length of the MFI calculation
mfiThreshold (float) : The MFI threshold
useMfiFilter (bool) : Whether to apply the MFI filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
detect_obv_states(obvThresholdStrong, obvThresholdModerate, lookbackPeriod, obvMode)
detect_obv_states: Identify OBV states with three levels (Strong, Moderate, Weak) over a configurable period
Parameters:
obvThresholdStrong (float) : Threshold for strong OBV movements
obvThresholdModerate (float) : Threshold for moderate OBV movements
lookbackPeriod (int) : Number of periods to analyze OBV trends
obvMode (string) : OBV mode to filter ("Strong", "Moderate", "Weak")
Returns: OBV state ("Strong Up", "Moderate Up", "Weak Up", "Positive Divergence", "Negative Divergence", "Consolidation", "Weak Down", "Moderate Down", "Strong Down")
filter_obv(src, length, obvMode, threshold, useObvFilter, useMovingAvg)
filter_obv: Filter signals based on OBV states
Parameters:
src (float) : The source series (default: close)
length (int) : The length of the OBV moving average calculation
obvMode (string) : OBV mode to filter ("Strong", "Moderate", "Weak")
threshold (float) : Optional threshold for additional filtering
useObvFilter (bool) : Whether to apply the OBV filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_cmf(length, cmfThreshold, useCmfFilter, useMovingAvg)
CMF filter for filtering signals based on Chaikin Money Flow
Parameters:
length (int) : The length of the CMF calculation
cmfThreshold (float) : The CMF threshold
useCmfFilter (bool) : Whether to apply the CMF filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_vwap(useVwapFilter)
VWAP filter for filtering signals based on Volume-Weighted Average Price
Parameters:
useVwapFilter (bool) : Whether to apply the VWAP filter
Returns: Filtered result indicating whether the signal should be used
filter_pvt(length, pvtThreshold, usePvtFilter, useMovingAvg)
PVT filter for filtering signals based on Price Volume Trend
Parameters:
length (int) : The length of the PVT moving average calculation
pvtThreshold (float) : The PVT threshold
usePvtFilter (bool) : Whether to apply the PVT filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_vo(shortLength, longLength, voThreshold, useVoFilter, useMovingAvg)
VO filter for filtering signals based on Volume Oscillator
Parameters:
shortLength (int) : The length of the short-term volume moving average
longLength (int) : The length of the long-term volume moving average
voThreshold (float) : The Volume Oscillator threshold
useVoFilter (bool) : Whether to apply the VO filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_cho(shortLength, longLength, choThreshold, useChoFilter, useMovingAvg)
CHO filter for filtering signals based on Chaikin Oscillator
Parameters:
shortLength (int) : The length of the short-term ADI moving average
longLength (int) : The length of the long-term ADI moving average
choThreshold (float) : The Chaikin Oscillator threshold
useChoFilter (bool) : Whether to apply the CHO filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_fi(length, fiThreshold, useFiFilter, useMovingAvg)
FI filter for filtering signals based on Force Index
Parameters:
length (int) : The length of the FI calculation
fiThreshold (float) : The Force Index threshold
useFiFilter (bool) : Whether to apply the FI filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_garman_klass_volatility(length, useGkFilter)
Parameters:
length (int)
useGkFilter (bool)
filter_frama(src, length, useFramaFilter)
Parameters:
src (float)
length (int)
useFramaFilter (bool)
filter_bollinger_bands(src, length, stdDev, useBollingerFilter)
Parameters:
src (float)
length (int)
stdDev (float)
useBollingerFilter (bool)
filter_keltner_channel(src, length, atrMult, useKeltnerFilter)
Parameters:
src (float)
length (simple int)
atrMult (float)
useKeltnerFilter (bool)
regime_filter(src, threshold, useRegimeFilter)
Regime filter for filtering signals based on trend strength
Parameters:
src (float) : The source series
threshold (float) : The threshold for the filter
useRegimeFilter (bool) : Whether to apply the regime filter
Returns: Filtered result indicating whether the signal should be used
regime_filter_v2(src, threshold, useRegimeFilter)
Regime filter for filtering signals based on trend strength
Parameters:
src (float) : The source series
threshold (float) : The threshold for the filter
useRegimeFilter (bool) : Whether to apply the regime filter
Returns: Filtered result indicating whether the signal should be used
filter_adx(src, length, adxThreshold, useAdxFilter)
ADX filter for filtering signals based on ADX strength
Parameters:
src (float) : The source series
length (simple int) : The length of the ADX calculation
adxThreshold (int) : The ADX threshold
useAdxFilter (bool) : Whether to apply the ADX filter
Returns: Filtered result indicating whether the signal should be used
filter_volatility(minLength, maxLength, useVolatilityFilter)
Volatility filter for filtering signals based on volatility
Parameters:
minLength (simple int) : The minimum length for ATR calculation
maxLength (simple int) : The maximum length for ATR calculation
useVolatilityFilter (bool) : Whether to apply the volatility filter
Returns: Filtered result indicating whether the signal should be used
filter_ulcer(src, length, ulcerThreshold, useUlcerFilter)
Ulcer Index filter for filtering signals based on Ulcer Index
Parameters:
src (float) : The source series
length (int) : The length of the Ulcer Index calculation
ulcerThreshold (float) : The Ulcer Index threshold (default: average Ulcer Index)
useUlcerFilter (bool) : Whether to apply the Ulcer Index filter
Returns: Filtered result indicating whether the signal should be used
filter_stddev(src, length, stdDevThreshold, useStdDevFilter)
Standard Deviation filter for filtering signals based on Standard Deviation
Parameters:
src (float) : The source series
length (int) : The length of the Standard Deviation calculation
stdDevThreshold (float) : The Standard Deviation threshold (default: average Standard Deviation)
useStdDevFilter (bool) : Whether to apply the Standard Deviation filter
Returns: Filtered result indicating whether the signal should be used
filter_macdv(src, shortLength, longLength, signalSmoothing, macdVThreshold, useMacdVFilter)
MACD-V filter for filtering signals based on MACD-V
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for MACD calculation
longLength (simple int) : The long length for MACD calculation
signalSmoothing (simple int) : The signal smoothing length for MACD
macdVThreshold (float) : The MACD-V threshold (default: average MACD-V)
useMacdVFilter (bool) : Whether to apply the MACD-V filter
Returns: Filtered result indicating whether the signal should be used
filter_atr(length, atrThreshold, useAtrFilter)
ATR filter for filtering signals based on Average True Range (ATR)
Parameters:
length (simple int) : The length of the ATR calculation
atrThreshold (float) : The ATR threshold (default: average ATR)
useAtrFilter (bool) : Whether to apply the ATR filter
Returns: Filtered result indicating whether the signal should be used
filter_candle_body_and_atr(length, bodyThreshold, atrThreshold, useFilter)
Candle Body and ATR filter for filtering signals
Parameters:
length (simple int) : The length of the ATR calculation
bodyThreshold (float) : The threshold for candle body size (relative to ATR)
atrThreshold (float) : The ATR threshold (default: average ATR)
useFilter (bool) : Whether to apply the candle body and ATR filter
Returns: Filtered result indicating whether the signal should be used
filter_atrp(length, atrpThreshold, useAtrpFilter)
ATRP filter for filtering signals based on ATR Percentage (ATRP)
Parameters:
length (simple int) : The length of the ATR calculation
atrpThreshold (float) : The ATRP threshold (default: average ATRP)
useAtrpFilter (bool) : Whether to apply the ATRP filter
Returns: Filtered result indicating whether the signal should be used
filter_jma(src, length, phase, useJmaFilter)
Parameters:
src (float)
length (simple int)
phase (float)
useJmaFilter (bool)
filter_cidi(src, rsiLength, shortMaLength, longMaLength, useCidiFilter)
Parameters:
src (float)
rsiLength (simple int)
shortMaLength (int)
longMaLength (int)
useCidiFilter (bool)
filter_rsi(src, length, rsiThreshold, useRsiFilter)
Parameters:
src (float)
length (simple int)
rsiThreshold (float)
useRsiFilter (bool)
filter_ichimoku_oscillator(length, threshold, useFilter)
Ichimoku Oscillator filter for filtering signals based on Ichimoku Oscillator
Parameters:
length (int) : The length of the Ichimoku Oscillator calculation
threshold (float) : The threshold for the filter (default: average Ichimoku Oscillator)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_cmb_composite_index(src, shortLength, longLength, threshold, useFilter)
CMB Composite Index filter for filtering signals based on CMB Composite Index
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for CMB calculation
longLength (simple int) : The long length for CMB calculation
threshold (float) : The threshold for the filter (default: average CMB Composite Index)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_connors_rsi(src, rsiLength, rocLength, streakLength, threshold, useFilter)
Connors RSI filter for filtering signals based on Connors RSI
Parameters:
src (float) : The source series
rsiLength (simple int) : The length for RSI calculation
rocLength (int) : The length for ROC calculation
streakLength (simple int) : The length for streak calculation
threshold (float) : The threshold for the filter (default: average Connors RSI)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_coppock_curve(src, roc1Length, roc2Length, wmaLength, threshold, useFilter)
Coppock Curve filter for filtering signals based on Coppock Curve
Parameters:
src (float) : The source series
roc1Length (int) : The length for the first ROC calculation
roc2Length (int) : The length for the second ROC calculation
wmaLength (int) : The length for the WMA calculation
threshold (float) : The threshold for the filter (default: average Coppock Curve)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_pmo(src, pmoLength, smoothingLength, threshold, useFilter)
DecisionPoint Price Momentum Oscillator filter for filtering signals based on PMO
Parameters:
src (float) : The source series
pmoLength (simple int) : The length for PMO calculation
smoothingLength (simple int) : The smoothing length for PMO
threshold (float) : The threshold for the filter (default: average PMO Oscillator)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_macd(src, shortLength, longLength, signalSmoothing, threshold, useFilter)
MACD filter for filtering signals based on MACD
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for MACD calculation
longLength (simple int) : The long length for MACD calculation
signalSmoothing (simple int) : The signal smoothing length for MACD
threshold (float) : The threshold for the filter (default: average MACD)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_macd_histogram(src, shortLength, longLength, signalSmoothing, threshold, useFilter)
MACD-Histogram filter for filtering signals based on MACD-Histogram
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for MACD calculation
longLength (simple int) : The long length for MACD calculation
signalSmoothing (simple int) : The signal smoothing length for MACD
threshold (float) : The threshold for the filter (default: average MACD-Histogram)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_kst(src, r1, r2, r3, r4, sm1, sm2, sm3, sm4, signalLength, threshold, useFilter)
Pring's Know Sure Thing filter for filtering signals based on KST
Parameters:
src (float) : The source series
r1 (int) : The first ROC length
r2 (int) : The second ROC length
r3 (int) : The third ROC length
r4 (int) : The fourth ROC length
sm1 (int) : The first smoothing length
sm2 (int) : The second smoothing length
sm3 (int) : The third smoothing length
sm4 (int) : The fourth smoothing length
signalLength (int) : The signal line smoothing length
threshold (float) : The threshold for the filter (default: average KST Oscillator)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_special_k(src, r1, r2, r3, r4, sm1, sm2, sm3, sm4, threshold, useFilter)
Pring's Special K filter for filtering signals based on Special K
Parameters:
src (float) : The source series
r1 (int) : The first ROC length
r2 (int) : The second ROC length
r3 (int) : The third ROC length
r4 (int) : The fourth ROC length
sm1 (int) : The first smoothing length
sm2 (int) : The second smoothing length
sm3 (int) : The third smoothing length
sm4 (int) : The fourth smoothing length
threshold (float) : The threshold for the filter (default: average Special K)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_roc_momentum(src, rocLength, momentumLength, threshold, useFilter)
ROC and Momentum filter for filtering signals based on ROC and Momentum
Parameters:
src (float) : The source series
rocLength (int) : The length for ROC calculation
momentumLength (int) : The length for Momentum calculation
threshold (float) : The threshold for the filter (default: average ROC and Momentum)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_rrg_relative_strength(src, length, threshold, useFilter)
RRG Relative Strength filter for filtering signals based on RRG Relative Strength
Parameters:
src (float) : The source series
length (int) : The length for RRG Relative Strength calculation
threshold (float) : The threshold for the filter (default: average RRG Relative Strength)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_alligator(useFilter)
Parameters:
useFilter (bool)
filter_wyckoff(useFilter)
Parameters:
useFilter (bool)
filter_squeeze_momentum(bbLength, bbStdDev, kcLength, kcMult, useFilter)
Parameters:
bbLength (int)
bbStdDev (float)
kcLength (simple int)
kcMult (float)
useFilter (bool)
filter_atr_compression(length, atrThreshold, useFilter)
Parameters:
length (simple int)
atrThreshold (float)
useFilter (bool)
filter_low_volume(length, useFilter)
Parameters:
length (int)
useFilter (bool)
filter_nvi_accumulation(useFilter)
Parameters:
useFilter (bool)
filter_ma_slope(src, length, slopeThreshold, useFilter)
Parameters:
src (float)
length (int)
slopeThreshold (float)
useFilter (bool)
filter_adx_low(len, lensig, adxThreshold, useFilter)
Parameters:
len (simple int)
lensig (simple int)
adxThreshold (int)
useFilter (bool)
filter_choppiness_index(length, chopThreshold, useFilter)
Parameters:
length (int)
chopThreshold (float)
useFilter (bool)
filter_range_detection(length, useFilter)
Parameters:
length (int)
useFilter (bool)
Momentum Cloud.V33🌟 Introducing MomentumCloud.V33 🌟
MomentumCloud.V33 is a cutting-edge indicator designed to help traders capture market momentum with clarity and precision. This versatile tool combines moving averages, directional movement indexes (DMI), and volume analysis to provide real-time insights into trend direction and strength. Whether you’re a scalper, day trader, or swing trader, MomentumCloud.V33 adapts to your trading style and timeframe, making it an essential addition to your trading toolkit. 📈💡
🔧 Customizable Parameters:
• Moving Averages: Adjust the periods of the fast (MA1) and slow (MA2) moving averages to fine-tune your trend analysis.
• DMI & ADX: Customize the DMI length and ADX smoothing to focus on strong, actionable trends.
• Volume Multiplier: Modify the cloud thickness based on trading volume, emphasizing trends with significant market participation.
📊 Trend Detection:
• Color-Coded Clouds:
• Green Cloud: Indicates a strong uptrend, suggesting buying opportunities.
• Red Cloud: Indicates a strong downtrend, signaling potential short trades.
• Gray Cloud: Reflects a range-bound market, helping you avoid low-momentum periods.
• Dynamic Volume Integration: The cloud thickness adjusts dynamically with trading volume, highlighting strong trends supported by high market activity.
📈 Strength & Momentum Analysis:
• Strength Filtering: The ADX component ensures that only strong trends are highlighted, filtering out market noise and reducing false signals.
• Visual Momentum Gauge: The cloud color and thickness provide a quick visual representation of market momentum, enabling faster decision-making.
🔔 Alerts:
• Custom Alerts: Set up alerts for when the trend shifts or reaches critical levels, keeping you informed without needing to constantly monitor the chart.
🎨 Visual Enhancements:
• Gradient Cloud & Shadows: The indicator features a gradient-filled cloud with shadowed moving averages, enhancing both aesthetics and clarity on your charts.
• Adaptive Visual Cues: MomentumCloud.V33’s color transitions and dynamic thickness provide an intuitive feel for the market’s rhythm.
🚀 Quick Guide to Using MomentumCloud.V33
1. Add the Indicator: Start by adding MomentumCloud.V33 to your chart. Customize the settings such as MA periods, DMI length, and volume multiplier to match your trading style.
2. Analyze the Market: Observe the color-coded cloud and its thickness to gauge market momentum and trend direction. The thicker the cloud, the stronger the trend.
3. Set Alerts: Activate alerts for trend changes or key levels to capture trading opportunities without needing to watch the screen continuously.
⚙️ How It Works:
MomentumCloud.V33 calculates market momentum by combining moving averages, DMI, and volume. The cloud color changes based on the trend direction, while its thickness reflects the strength of the trend as influenced by trading volume. This integrated approach ensures you can quickly identify robust market movements, making it easier to enter and exit trades at optimal points.
Settings Overview:
• Moving Averages: Define the lengths for the fast and slow moving averages.
• DMI & ADX: Adjust the DMI length and ADX smoothing to focus on significant trends.
• Volume Multiplier: Customize the multiplier to control cloud thickness, highlighting volume-driven trends.
📚 How to Use MomentumCloud.V33:
• Trend Identification: The direction and color of the cloud indicate the prevailing trend, while the cloud’s thickness suggests the trend’s strength.
• Trade Execution: Use the green cloud to look for long entries and the red cloud for short positions. The gray cloud advises caution, as it represents a range-bound market.
• Alerts: Leverage the custom alerts to stay on top of market movements and avoid missing critical trading opportunities.
Unleash the power of trend and momentum analysis with MomentumCloud.V33! Happy trading! 📈🚀✨
Session MasterSession Master Indicator
Overview
The "Session Master" indicator is a unique tool designed to enhance trading decisions by providing visual cues and relevant information during the critical last 15 minutes of a trading session. It also integrates advanced trend analysis using the Average Directional Index (ADX) and Directional Movement Index (DI) to offer insights into market trends and potential entry/exit points.
Originality and Functionality
This script combines session timing, visual alerts, and trend analysis in a cohesive manner to give traders a comprehensive view of market behavior as the trading day concludes. Here’s a breakdown of its key features:
Last 15 Minutes Highlight : The script identifies the last 15 minutes of the trading session and highlights this period with a semi-transparent blue background, helping traders focus on end-of-day price movements.
Previous Session High and Low : The script dynamically plots the high and low of the previous trading session. These levels are crucial for identifying support and resistance and are highlighted with dashed lines and labeled for easy identification during the last 15 minutes of the current session.
Directional Movement and Trend Analysis : Using a combination of ADX and DI, the script calculates and plots trend strength and direction. A 21-period Exponential Moving Average (EMA) is plotted with color coding (green for bullish and red for bearish) based on the DI difference, offering clear visual cues about the market trend.
Technical Explanation
Last 15 Minutes Highlight:
The script checks the current time and compares it to the session’s last 15 minutes.
If within this period, the background color is changed to a semi-transparent blue to alert the trader.
Previous Session High and Low:
The script retrieves the high and low of the previous daily session.
During the last 15 minutes of the session, these levels are plotted as dashed lines and labeled appropriately.
ADX and DI Calculation:
The script calculates the True Range, Directional Movement (both positive and negative), and smoothes these values over a specified length (28 periods by default).
It then computes the Directional Indicators (DI+ and DI-) and the ADX to gauge trend strength.
The 21-period EMA is plotted with dynamic color changes based on the DI difference to indicate trend direction.
How to Use
Highlight Key Moments: Use the blue background highlight to concentrate on market movements in the critical last 15 minutes of the trading session.
Identify Key Levels: Pay attention to the plotted high and low of the previous session as they often act as significant support and resistance levels.
Assess Trend Strength: Use the ADX and DI values to understand the strength and direction of the market trend, aiding in making informed trading decisions.
EMA for Entry/Exit: Use the color-coded 21-period EMA for potential entry and exit signals based on the trend direction indicated by the DI.
Conclusion
The "Session Master" indicator is a powerful tool designed to help traders make informed decisions during the crucial end-of-session period. By combining session timing, previous session levels, and advanced trend analysis, it provides a comprehensive overview that is both informative and actionable. This script is particularly useful for intraday traders looking to optimize their strategies around session close times.
Adaptive Price Channel StrategyThis strategy is an adaptive price channel strategy based on the Average True Range (ATR) indicator and the Average Directional Index (ADX). It aims to identify sideways markets and trends in the price movements and make trades accordingly.
The strategy uses a length parameter for the ATR and ADX indicators, which determines the length of the calculation for these indicators. The strategy also uses an ATR multiplier, which is multiplied by the ATR to determine the upper and lower bounds of the price channel.
The first step of the strategy is to calculate the highest high (HH) and lowest low (LL) over the specified length. The ATR is also calculated over the same length. Then the strategy calculates the positive directional indicator (+DI) and negative directional indicator (-DI) based on the up and down moves in the price, and uses these to calculate the ADX.
If the ADX is less than 25, the market is considered to be in a sideways phase. In this case, if the price closes above the upper bound of the price channel (HH - ATR multiplier * ATR), the strategy enters a long position, and if the price closes below the lower bound of the price channel (LL + ATR multiplier * ATR), the strategy enters a short position.
If the ADX is greater than or equal to 25 and the +DI is greater than the -DI, the market is considered to be in a bullish phase. In this case, if the price closes above the upper bound of the price channel, the strategy enters a long position. If the ADX is greater than or equal to 25 and the +DI is less than the -DI, the market is considered to be in a bearish phase. In this case, if the price closes below the lower bound of the price channel, the strategy enters a short position.
The strategy exits a position after a certain number of bars have passed since the entry, as specified by the exit_length input.
In summary, this strategy attempts to trade in accordance with the prevailing market conditions by identifying sideways markets and trends and making trades based on price movements within a dynamically-adjusted price channel.
This strategy takes a read on the market and either takes a channel strategy or trades volatility based on current trend. Works well on 2, 3 ,4, 12 hour for BTC. It’s my first attempt and creating a strategy. I am very interested in constructive criticism. I will look into better risk management, maybe a trailing stop loss. Other suggestions welcome. This is my first attempt at a strategy.
Here are the settings I used.
Inputs
Length 20
Exit 10
ATR 3.2
Dates I picked when I got into Crypto
Properties
Capital 1000
Order size 2 Contracts
Pyramiding 1
Commission .05
Squeeze Momentum Indicator + 2.0This is a squeeze momentum oscillator with ADX-RSI, Elliot waves oscillator, HMA background and more.
I recommend configure ADX-RSI with the following settings:
-ADX Length = 14
-ADX smooth = 14
-RSI Length = 14
-Threshold = 15
-Upline = 70
-Downline = 30
Thanks to OskarGallard for develop this indicator.
I am Sc4lp1ng, the developer of EMA MTF cloud and TSI-ADX Histogram.
AdxCalcHourlyLibrary "AdxCalcHourly"
getBars()
getBars: Returns the number of bars to use in the historical lookback period
Returns: simple int
directionDown()
directionDown: Calculates the direction down for bar_index
Returns: series float
directionUp()
directionUp: Calculates the direction up for bar_index
Returns: series float
trueRangeMovingAverage()
trueRangeMovingAverage: Calculates the true range moving average over the historical lookback period
Returns: series float
positiveDirectionalMovement()
positiveDirectionalMovement: Calculates the positive direction movement for bar_index
Returns: series float
negativeDirectionalMovement()
negativeDirectionalMovement: Calculates the begative direction movement for bar_index
Returns: series float
totalDirectionDown()
totalDirectionDown: Calculates the total direction down for the historical lookback period
Returns: series float
totalDirectionUp()
totalDirectionUp: Calculates the total direction up for the historical lookback period
Returns: series float
totalDirection()
totalDirection: Calculates the total direction movement for the historical lookback period
Returns: series float
averageDirectionalIndex()
averageDirectionalIndex: Calculates the average directional index (ADX) based on the trend for the historical lookback period
Returns: series float
getAdxHistoricalAverage()
getAdxHistoricalAverage: Calculates the average directional index (ADX) for the historical lookback period
Returns: series float
getAdxHistoricalHigh()
getAdxHistoricalHigh: Calculates the historical high of the directional index (ADX) for the historical lookback period
Returns: series float
getAdxHistoricalLow()
getAdxHistoricalLow: Calculates the historical low of the directional index (ADX) for the historical lookback period
Returns: series float
getAdxOpinion()
getAdxOpinion: Calculatesa recomendation for the directional index (ADX) based on the historical lookback period
Returns: series float
Adaptive Average Vortex Index [lastguru]As a longtime fan of ADX, looking at Vortex Indicator I often wondered, where is the third line. I have rarely seen that anybody is calculating it. So, here it is: Average Vortex Index - an ADX calculated from Vortex Indicator. I interpret it similarly to the ADX indicator: higher values show stronger trend. If you discover other interpretation or have suggestions, comments are welcome.
Both VI+ and VI- lines are also drawn. As I use adaptive length calculation in my other scripts (based on the libraries I've developed and published), I have also included the possibility to have an adaptive length here, so if you hate the idea of calculating ADX from VI, you can disable that line and just look at the adaptive Vortex Indicator.
Note that as with all my oscillators, all the lines here are renormalized to -1..1 range unlike the original Vortex Indicator computation. To do that for VI+ and VI- lines, I subtract 1 from their values. It does not change the shape or the amplitude of the lines.
Adaptation algorithms are roughly subdivided in two categories: classic Length Adaptations and Cycle Estimators (they are also implemented in separate libraries), all are selected in Adaptation dropdown. Length Adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle Estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly).
VIDYA - based on VIDYA algorithm. The period oscillates from the Lower Bound up (slow)
VIDYA-RS - based on Vitali Apirine's modification of VIDYA algorithm (he calls it Relative Strength Moving Average). The period oscillates from the Upper Bound down (fast)
Kaufman Efficiency Scaling - based on Efficiency Ratio calculation originally used in KAMA
Fractal Adaptation - based on FRAMA by John F. Ehlers
MESA MAMA Cycle - based on MESA Adaptive Moving Average by John F. Ehlers
Pearson Autocorrelation* - based on Pearson Autocorrelation Periodogram by John F. Ehlers
DFT Cycle* - based on Discrete Fourier Transform Spectrum estimator by John F. Ehlers
Phase Accumulation* - based on Dominant Cycle from Phase Accumulation by John F. Ehlers
Length Adaptation usually take two parameters: Bound From (lower bound) and To (upper bound). These are the limits for Adaptation values. Note that the Cycle Estimators marked with asterisks(*) are very computationally intensive, so the bounds should not be set much higher than 50, otherwise you may receive a timeout error (also, it does not seem to be a useful thing to do, but you may correct me if I'm wrong).
The Cycle Estimators marked with asterisks(*) also have 3 checkboxes: HP (Highpass Filter), SS (Super Smoother) and HW (Hann Window). These enable or disable their internal prefilters, which are recommended by their author - John F. Ehlers . I do not know, which combination works best, so you can experiment.
If no Adaptation is selected ( None option), you can set Length directly. If an Adaptation is selected, then Cycle multiplier can be set.
The oscillator also has the option to configure the internal smoothing function with Window setting. By default, RMA is used (like in ADX calculation). Fast Default option is using half the length for smoothing. Triangle , Hamming and Hann Window algorithms are some better smoothers suggested by John F. Ehlers.
After the oscillator a Moving Average can be applied. The following Moving Averages are included: SMA , RMA, EMA , HMA , VWMA , 2-pole Super Smoother, 3-pole Super Smoother, Filt11, Triangle Window, Hamming Window, Hann Window, Lowpass, DSSS.
Postfilter options are applied last:
Stochastic - Stochastic
Super Smooth Stochastic - Super Smooth Stochastic (part of MESA Stochastic ) by John F. Ehlers
Inverse Fisher Transform - Inverse Fisher Transform
Noise Elimination Technology - a simplified Kendall correlation algorithm "Noise Elimination Technology" by John F. Ehlers
Momentum - momentum (derivative)
Except for Inverse Fisher Transform , all Postfilter algorithms can have Length parameter. If it is not specified (set to 0), then the calculated Slow MA Length is used. If Filter/MA Length is less than 2 or Postfilter Length is less than 1, they are calculated as a multiplier of the calculated oscillator length.
More information on the algorithms is given in the code for the libraries used. I am also very grateful to other TradingView community members (they are also mentioned in the library code) without whom this script would not have been possible.
Mawreez' Trend OscillatorA positive reading indicates an uptrend, a negative reading indicates a downtrend. For an uptrend, increasing values indicate that the trend is sustaining or strengthening while decreasing values indicate that the trend is stagnating or weakening. Vice versa for a downtrend. When the indicator reads 0, the price is not trending.
This indicator is based on the existing DMI indicator, but familiarity with the DMI is not required. The author's goal was to make a less laggy, more intuitively interpretable indicator compared to the DMI.
A comparison to the DMI is given above. The reader may see for themselves that trends are recognized quicker. A technical rundown of adjustments made to the DMI is given below.
Instead of interpreting the ADX, a sensitivity setting is added and its default value is 25. The value of this sensitivity setting is subtracted from the ADX. Then, any ADX values which fell below 0 are set to 0. Now, just flip the value of the ADX when the -DI is greater than the +DI. The result is then plotted as a histogram.
In addition, this indicator has less lag between price action and trend recognition. This is achieved by removing the EMA applied to the ADX, and instead applying lag-free smoothing to +DI and -DI before computing the ADX and then once more applying lag-free smoothing to the result of the computation.
Combo Backtest 123 Reversal and ADXR This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
The Average Directional Movement Index Rating (ADXR) measures the strength
of the Average Directional Movement Index (ADX). It's calculated by taking
the average of the current ADX and the ADX from one time period before
(time periods can vary, but the most typical period used is 14 days).
Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
and weakening trends. However, because it represents an average of ADX, values
don't fluctuate as dramatically and some analysts believe the indicator helps
better display trends in volatile markets.
WARNING:
- For purpose educate only
- This script to change bars colors.
Average Directional Movement Index Rating Backtest The Average Directional Movement Index Rating (ADXR) measures the strength
of the Average Directional Movement Index (ADX). It's calculated by taking
the average of the current ADX and the ADX from one time period before
(time periods can vary, but the most typical period used is 14 days).
Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
and weakening trends. However, because it represents an average of ADX, values
don't fluctuate as dramatically and some analysts believe the indicator helps
better display trends in volatile markets.
You can change long to short in the Input Settings
WARNING:
- For purpose educate only
- This script to change bars colors.
Average Directional Movement Index Rating Strategy The Average Directional Movement Index Rating (ADXR) measures the strength
of the Average Directional Movement Index (ADX). It's calculated by taking
the average of the current ADX and the ADX from one time period before
(time periods can vary, but the most typical period used is 14 days).
Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
and weakening trends. However, because it represents an average of ADX, values
don't fluctuate as dramatically and some analysts believe the indicator helps
better display trends in volatile markets.
WARNING:
- This script to change bars colors.
Average Directional Movement Index Rating The Average Directional Movement Index Rating (ADXR) measures the strength
of the Average Directional Movement Index (ADX). It's calculated by taking
the average of the current ADX and the ADX from one time period before
(time periods can vary, but the most typical period used is 14 days).
Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
and weakening trends. However, because it represents an average of ADX, values
don't fluctuate as dramatically and some analysts believe the indicator helps
better display trends in volatile markets.
Prism Confluence SystemPrism Confluence System: Strategy Overview
The Prism Confluence System is a multi-factor trading strategy that combines trend analysis, price action patterns, volume confirmation, and volatility management to generate high-probability signals. Below is a detailed breakdown of its components and customizable inputs:
________________________________________
Core Components
1. Trend Identification
o Dual EMA crossover system (short/long-term EMAs)
o ADX filter to confirm trending markets
2. Price Action Signals
o Engulfing patterns (bullish/bearish)
o Hammer/Inverted Hammer with trend alignment
o Fair Value Gaps (FVGs) with fill detection
3. Volume Validation
o Volume spikes relative to moving average
4. Risk Management
o ATR-based dynamic stop-loss (SL) and take-profit (TP)
o Separate thresholds for strong/weak signals
________________________________________
User-Adjustable Inputs
(Accessible via strategy settings UI)
1. Trend Identification
Parameter Default Description
Short EMA Length 20 Period for fast EMA (trend direction)
Long EMA Length 50 Period for slow EMA (trend confirmation)
ADX Trend Filter Length 14 ADX period to filter non-trending markets
Adjustment Tips:
• Increase EMA lengths for slower trend response
• Lower ADX threshold (default 20) to allow weaker trends
________________________________________
2. Support/Resistance
Parameter Default Description
Support/Resistance Length 14 Lookback for pivot highs/lows
Adjustment Tips:
• Shorter lengths = more reactive S/R levels
• Longer lengths = broader price zones
________________________________________
3. Fair Value Gaps (FVG)
Parameter Default Description
FVG Lookback 10 Bars back to check for gap formation
FVG Fill Window 5 Max bars allowed to fill a gap (hardcoded)
Adjustment Tips:
• Increase lookback for larger timeframes
• Reduce fill window for quicker gap closures
________________________________________
4. Volume Analysis
Parameter Default Description
Volume Spike Multiplier 1.5 Current volume vs MA threshold
Secondary Volume Threshold 1.2 Previous bar volume confirmation
Adjustment Tips:
• Increase multipliers for stricter volume confirmation
• Lower to 1.0-1.1 for active markets
________________________________________
5. Volatility Management
Parameter Default Description
ATR Length 14 Period for Average True Range
ATR Stop-Loss Multiplier 2 SL distance (ATR × multiplier)
ATR Take-Profit Multiplier 3 TP distance (ATR × multiplier)
Adjustment Tips:
• Increase SL multiplier for wider stops in volatile markets
• Adjust TP ratio (default 1:1.5 risk/reward)
________________________________________
6. Signal Priority
(Hardcoded but adjustable via logic)
• Strong Signals: Require FVG + Engulfing + Volume + Trend
• Weak Signals: Require Pattern + Volume + S/R Break
Customization Example:
Pinescript:
// Modify in Signal Logic section
strongBuy = (fvgBull and fvgBullFilled) and (engulfingBull or hammer) // Add more patterns
________________________________________
Visual Customization
(Non-input but code-modifiable)
1. Support/Resistance Style:
o Change plot.style_circles to plot.style_line for solid lines
2. Signal Markers:
o Adjust size.large/size.small values
o Modify RGB colors in color.new(#00FF00, 0)
________________________________________
Optimization Guidelines
1. Gold/XAU-Specific Defaults:
o Works best with 15M-4H timeframes
o Default ATR multipliers calibrated for 10-20 pip volatility
2. Equities/Forex Adaptation:
o Reduce ATR multipliers for lower volatility assets
o Increase volume thresholds for liquid markets
________________________________________
Unique Features
• Anti-Repainting S/R: Uses confirmed historical pivots
• Adaptive FVG Tracking: Gap fills expire after 5 bars
• Tiered Signals: Differentiates conviction levels via size/color
This system allows deep customization while maintaining a structured approach to balancing trend, momentum, and risk. Defaults are optimized for trending commodities but can be adapted to any market via the modular input system.
The JewelThe Jewel is a comprehensive momentum and trend-based indicator designed to give traders clear insights into potential market shifts. By integrating RSI, Stochastic, and optional ADX filters with an EMA-based trend filter, this script helps identify high-conviction entry and exit zones for multiple trading styles, from momentum-based breakouts to mean-reversion setups.
Features
Momentum Integration:
Leverages RSI and Stochastic crossovers for real-time momentum checks, reducing noise and highlighting potential turning points.
Optional ADX Filter:
Analyzes market strength; only triggers signals when volatility and directional movement suggest strong follow-through.
EMA Trend Filter:
Identifies broad market bias (bullish vs. bearish), helping traders focus on higher-probability setups by aligning with the prevailing trend.
Caution Alerts:
Flags potentially overbought or oversold conditions when both RSI and Stochastic reach extreme zones, cautioning traders to manage risk or tighten stops.
Customizable Parameters:
Fine-tune RSI, Stochastic, ADX, and EMA settings to accommodate various assets, timeframes, and trading preferences.
How to Use
Momentum Breakouts: Watch for RSI cross above a set threshold and Stochastic cross up, confirmed by ADX strength and alignment with the EMA filter for potential breakout entries.
Mean Reversion: Look for caution signals (RSI & Stoch extremes) as early warnings for trend slowdown or reversal opportunities.
Trend Continuation: In trending markets, rely on the EMA filter to stay aligned with the primary direction. Use momentum crosses (RSI/Stochastic) to time add-on entries or exits.
Important Notes
Non-Investment Advice
The Jewel is a technical analysis tool and does not constitute financial advice. Always use proper risk management and consider multiple confirmations when making trading decisions.
No Warranty
This indicator is provided as-is, without warranty or guarantees of performance. Traders should backtest and verify its effectiveness on their specific instruments and timeframes.
Collaborate & Share
Feedback and suggestions are welcome! Engaging with fellow traders can help refine and adapt The Jewel for diverse market conditions, strengthening the TradingView community as a whole.
Happy Trading!
If you find this script valuable, please share your feedback, ideas, or enhancements. Collaboration fosters a more insightful trading experience for everyone.
TrigWave Suite [InvestorUnknown]The TrigWave Suite combines Sine-weighted, Cosine-weighted, and Hyperbolic Tangent moving averages (HTMA) with a Directional Movement System (DMS) and a Relative Strength System (RSS).
Hyperbolic Tangent Moving Average (HTMA)
The HTMA smooths the price by applying a hyperbolic tangent transformation to the difference between the price and a simple moving average. It also adjusts this value by multiplying it by a standard deviation to create a more stable signal.
// Function to calculate Hyperbolic Tangent
tanh(x) =>
e_x = math.exp(x)
e_neg_x = math.exp(-x)
(e_x - e_neg_x) / (e_x + e_neg_x)
// Function to calculate Hyperbolic Tangent Moving Average
htma(src, len, mul) =>
tanh_src = tanh((src - ta.sma(src, len)) * mul) * ta.stdev(src, len) + ta.sma(src, len)
htma = ta.sma(tanh_src, len)
Sine-Weighted Moving Average (SWMA)
The SWMA applies sine-based weights to historical prices. This gives more weight to the central data points, making it responsive yet less prone to noise.
// Function to calculate the Sine-Weighted Moving Average
f_Sine_Weighted_MA(series float src, simple int length) =>
var float sine_weights = array.new_float(0)
array.clear(sine_weights) // Clear the array before recalculating weights
for i = 0 to length - 1
weight = math.sin((math.pi * (i + 1)) / length)
array.push(sine_weights, weight)
// Normalize the weights
sum_weights = array.sum(sine_weights)
for i = 0 to length - 1
norm_weight = array.get(sine_weights, i) / sum_weights
array.set(sine_weights, i, norm_weight)
// Calculate Sine-Weighted Moving Average
swma = 0.0
if bar_index >= length
for i = 0 to length - 1
swma := swma + array.get(sine_weights, i) * src
swma
Cosine-Weighted Moving Average (CWMA)
The CWMA uses cosine-based weights for data points, which produces a more stable trend-following behavior, especially in low-volatility markets.
f_Cosine_Weighted_MA(series float src, simple int length) =>
var float cosine_weights = array.new_float(0)
array.clear(cosine_weights) // Clear the array before recalculating weights
for i = 0 to length - 1
weight = math.cos((math.pi * (i + 1)) / length) + 1 // Shift by adding 1
array.push(cosine_weights, weight)
// Normalize the weights
sum_weights = array.sum(cosine_weights)
for i = 0 to length - 1
norm_weight = array.get(cosine_weights, i) / sum_weights
array.set(cosine_weights, i, norm_weight)
// Calculate Cosine-Weighted Moving Average
cwma = 0.0
if bar_index >= length
for i = 0 to length - 1
cwma := cwma + array.get(cosine_weights, i) * src
cwma
Directional Movement System (DMS)
DMS is used to identify trend direction and strength based on directional movement. It uses ADX to gauge trend strength and combines +DI and -DI for directional bias.
// Function to calculate Directional Movement System
f_DMS(simple int dmi_len, simple int adx_len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, dmi_len)
plus = fixnan(100 * ta.rma(plusDM, dmi_len) / trur)
minus = fixnan(100 * ta.rma(minusDM, dmi_len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adx_len)
dms_up = plus > minus and adx > minus
dms_down = plus < minus and adx > plus
dms_neutral = not (dms_up or dms_down)
signal = dms_up ? 1 : dms_down ? -1 : 0
Relative Strength System (RSS)
RSS employs RSI and an adjustable moving average type (SMA, EMA, or HMA) to evaluate whether the market is in a bullish or bearish state.
// Function to calculate Relative Strength System
f_RSS(rsi_src, rsi_len, ma_type, ma_len) =>
rsi = ta.rsi(rsi_src, rsi_len)
ma = switch ma_type
"SMA" => ta.sma(rsi, ma_len)
"EMA" => ta.ema(rsi, ma_len)
"HMA" => ta.hma(rsi, ma_len)
signal = (rsi > ma and rsi > 50) ? 1 : (rsi < ma and rsi < 50) ? -1 : 0
ATR Adjustments
To minimize false signals, the HTMA, SWMA, and CWMA signals are adjusted with an Average True Range (ATR) filter:
// Calculate ATR adjusted components for HTMA, CWMA and SWMA
float atr = ta.atr(atr_len)
float htma_up = htma + (atr * atr_mult)
float htma_dn = htma - (atr * atr_mult)
float swma_up = swma + (atr * atr_mult)
float swma_dn = swma - (atr * atr_mult)
float cwma_up = cwma + (atr * atr_mult)
float cwma_dn = cwma - (atr * atr_mult)
This adjustment allows for better adaptation to varying market volatility, making the signal more reliable.
Signals and Trend Calculation
The indicator generates a Trend Signal by aggregating the output from each component. Each component provides a directional signal that is combined to form a unified trend reading. The trend value is then converted into a long (1), short (-1), or neutral (0) state.
Backtesting Mode and Performance Metrics
The Backtesting Mode includes a performance metrics table that compares the Buy and Hold strategy with the TrigWave Suite strategy. Key statistics like Sharpe Ratio, Sortino Ratio, and Omega Ratio are displayed to help users assess performance. Note that due to labels and plotchar use, automatic scaling may not function ideally in backtest mode.
Alerts and Visualization
Trend Direction Alerts: Set up alerts for long and short signals
Color Bars and Gradient Option: Bars are colored based on the trend direction, with an optional gradient for smoother visual feedback.
Important Notes
Customization: Default settings are experimental and not intended for trading/investing purposes. Users are encouraged to adjust and calibrate the settings to optimize results according to their trading style.
Backtest Results Disclaimer: Please note that backtest results are not indicative of future performance, and no strategy guarantees success.
ToxicJ3ster - Day Trading SignalsThis Pine Script™ indicator, "ToxicJ3ster - Signals for Day Trading," is designed to assist traders in identifying key trading signals for day trading. It employs a combination of Moving Averages, RSI, Volume, ATR, ADX, Bollinger Bands, and VWAP to generate buy and sell signals. The script also incorporates multiple timeframe analysis to enhance signal accuracy. It is optimized for use on the 5-minute chart.
Purpose:
This script uniquely combines various technical indicators to create a comprehensive and reliable day trading strategy. Each indicator serves a specific purpose, and their integration is designed to provide multiple layers of confirmation for trading signals, reducing false signals and increasing trading accuracy.
1. Moving Averages: These are used to identify the overall trend direction. By calculating short and long period Moving Averages, the script can detect bullish and bearish crossovers, which are key signals for entering and exiting trades.
2. RSI Filtering: The Relative Strength Index (RSI) helps filter signals by ensuring trades are only taken in favorable market conditions. It detects overbought and oversold levels and trends within the RSI to confirm market momentum.
3. Volume and ATR Conditions: Volume and ATR multipliers are used to identify significant market activity. The script checks for volume spikes and volatility to confirm the strength of trends and avoid false signals.
4. ADX Filtering: The ADX is used to confirm the strength of a trend. By filtering out weak trends, the script focuses on strong and reliable signals, enhancing the accuracy of trade entries and exits.
5. Bollinger Bands: Bollinger Bands provide additional context for the trend and help identify potential reversal points. The script uses Bollinger Bands to avoid false signals and ensure trades are taken in trending markets.
6. Higher Timeframe Analysis: This feature ensures that signals align with broader market trends by using higher timeframe Moving Averages for trend confirmation. It adds a layer of robustness to the signals generated on the 5-minute chart.
7. VWAP Integration: VWAP is used for intraday trading signals. By calculating the VWAP and generating buy and sell signals based on its crossover with the price, the script provides additional confirmation for trade entries.
8. MACD Analysis: The MACD line, signal line, and histogram are calculated to generate additional buy/sell signals. The MACD is used to detect changes in the strength, direction, momentum, and duration of a trend.
9. Alert System: Custom alerts are integrated to notify traders of potential trading opportunities based on the signals generated by the script.
How It Works:
- Trend Detection: The script calculates short and long period Moving Averages and identifies bullish and bearish crossovers to determine the trend direction.
- Signal Filtering: RSI, Volume, ATR, and ADX are used to filter and confirm signals, ensuring trades are taken in strong and favorable market conditions.
- Multiple Timeframe Analysis: The script uses higher timeframe Moving Averages to confirm trends, aligning signals with broader market movements.
- Additional Confirmations: VWAP, MACD, and Bollinger Bands provide multiple layers of confirmation for buy and sell signals, enhancing the reliability of the trading strategy.
Usage:
- Customize the input parameters to suit your trading strategy and preferences.
- Monitor the generated signals and alerts to make informed trading decisions.
- This script is made to work best on the 5-minute chart.
Disclaimer:
This indicator is not perfect and can generate false signals. It is up to the trader to determine how they would like to proceed with their trades. Always conduct thorough research and consider seeking advice from a financial professional before making trading decisions. Use this script at your own risk.
Quantiple Direction IndexThis indicator indicates market trends by analyzing the following signals:
1. RSI which is a momentum oscillator
2. Directional Movement Index (DMI) which measures the direction of the movement
3. Price in comparison to EMA 13 and 21 to determine whether the trend is clear or there is an ambiguity
4. ADX that shows the strength of the momentum
Scoring logic
While we have kept the source code open which gives the scoring logic, for ease of the user, I am summarizing the scoring logic
A. We break down RSI and DMI into a 9 point scale (-4 to +4) from extremely bearish to bullish. Then we give equal weight to both and come out with a direction score.
B. We use EMA to determine if their is clarity in the price trend. While the direction is deduced from point A, if there is clarity we know that the confidence on the direction is high. If EMA 13 is higher than EMA 21 and the price is above EMA 13, then we assign it as a score of +1 as we get clear bullish trend. Similarly if EMA 13 is below EMA 21 and the price is below both the EMAs then we assign it a score of -1 as we get clear bearish trend. Anything else is considered as inconclusive and given a score of 0
C. We use ADX to determine the strength of the directional momentum. It is like acceleration. We use ADX score as an strength adjustment factor. If the value is above 25 - we multiply A+B by 1.25. Similarly we multiply it by 0.75 if the strength is weak and no change if the strength is neutral.
Finally this indicator categorizes market direction into five levels:
- Very Bullish
- Bullish
- Neutral
- Bearish
- Very Bearish
Scores range from +6 (very bullish) to -6 (very bearish), with the user setting thresholds for each category. The midpoint between Bullish and Bearish defines the neutral zone.
Again all the exact values are in the code and the user can also customize as per their trading system.
Why does it make sense to combine these different indicators rather than looking at them in isolation?
We give equal weight to RSI and DMI to derive the direction of the price movement. Using two different indicators provide a better confirmation on the direction. However, this alone is not sufficient.
We want clarity of the direction and for that we use the EMA score (please refer to point B above). If we have clarity, the probability of the direction being right goes up.
Once we know the direction, we want to know what is the strength of that direction. This point is very valuable for an option trader. This is where this indicator brings value.
Please note that by looking at these indicators in isolation one can get a sense of direction or a sense of strength of the direction. But, when you combine them, you get whether the direction move is with strength or not. If you are into option trading, you will clearly understand the rational behind it when you look at the trading rules provided in this description. For example if one knows that the direction is bullish (which one can potentially get from RSI or DMI), one can either buy a call or sell a put. But one knows that not only the direction is bullish, but it has the right acceleration (strength of the momentum), then one will assign higher probability of higher profit from buying call than from selling put.
To summarize we have combined indicators to achieve the following
1. Get confirmation from two different indicators on the direction of the price movement (RSI and DMI)
2. Confirm that the direction is clear (Price relative to EMA)
3. Combine with the strength of the direction (ADX)
Direction, clarity of the direction and the strength of the directional movement is a valuable trading indicator in our opinion.
Suggested trading rules
1. Short strangle strategy when the trend is neutral with one's usual option selling quantity. Equal quantity on put and call.
2. Full quantity short put and half quantity short call when the trend is bullish.
3. Full quantity short put and call long when the indicator is very bullish.
4. Vice versa for bearish ( full call short, half put short) and very bearish (full call short, put long)
Suggested to use 5 min timeframe for scalping, 15 min for intraday positions, 1 hour for weekly and monthly positions, and daily/weekly for investments.
The value of this indicator oscillates between +6 to -6. You can tweak the range for V bullish, bullish, bearish, and v bearish. The values in between will default to the neutral zone.
Disclaimers:
1. While the creator has used this in the live market, no claim is being made on its effectiveness or profit making ability. Please use it for trading only after you have tested it and are satisfied.
2. There may be thousands or millions of better trader in this world than the creator of this script. The creator makes no claim of his intelligence or trading ability.
3. The creator has no intention of selling this particular script now or in future. This is purely for community use and there's no intention to make any monetary profit from it.
4. The creator is not requesting or soliciting anyone to like or promote this script. The creator is also not asking anyone to give him any business now or in future even if they like this script and benefit from it.
Enhanced Reversal DetectionScript Description:
The "Enhanced Reversal Detection" indicator is a powerful tool designed to identify potential market reversals across various financial instruments. It incorporates a sophisticated algorithm that analyzes price action along with key technical indicators such as the Relative Strength Index (RSI), Bollinger Bands, and Moving Average (MA).
How to Use:
Adjustable Parameters: The indicator offers a range of adjustable parameters to cater to different trading preferences and market conditions.
RSI Length: Adjusts the length of the RSI calculation to fine-tune sensitivity.
Overbought Level: Sets the threshold for identifying overbought conditions on the RSI scale.
Oversold Level: Sets the threshold for identifying oversold conditions on the RSI scale.
Bollinger Bands Length: Determines the length of the Bollinger Bands calculation.
Bollinger Bands Multiplier: Adjusts the standard deviation multiplier for the Bollinger Bands, influencing band width.
Moving Average Length: Defines the length of the Moving Average calculation to capture trend direction.
Min Bars Between Signals: Sets the minimum number of bars required between consecutive reversal signals.
ADX Length: Adjusts the length of the Average Directional Index (ADX) calculation.
ADX Threshold: Defines the threshold value for ADX, serving as a filter for reversal signals.
Signal Generation: The indicator generates signals for both bullish and bearish reversals based on predefined criteria. A bullish reversal signal is triggered when the closing price exceeds the lower Bollinger Band and RSI falls below the oversold threshold. Conversely, a bearish reversal signal occurs when the closing price falls below the upper Bollinger Band and RSI surpasses the overbought threshold.
Alerts: Traders can opt to receive alerts for bullish and bearish reversal signals, enabling them to stay informed of potential trading opportunities even when away from the platform.
Publication Readiness:
To ensure readiness for publication in the TradingView public library, the script has been meticulously crafted and documented:
The code is extensively commented to provide clear explanations of parameters, calculations, and signal generation logic.
Best coding practices have been followed to enhance readability and maintainability.
Rigorous testing has been conducted to validate the accuracy and reliability of signal generation across various market conditions.
The script adheres to TradingView's guidelines and policies for script publication, ensuring compliance with platform standards and user expectations.
With its comprehensive features and user-friendly design, the "Enhanced Reversal Detection" indicator is poised to become a valuable asset for traders seeking to identify high-probability reversal opportunities in the financial markets.
MyLibrary_functions_D_S_3D_D_T_PART_1Library "MyLibrary_functions_D_S_3D_D_T_PART_1"
TODO: add library description here
color_(upcolor_txt, upcolor, dncolor_txt, dncolor, theme)
Parameters:
upcolor_txt (color)
upcolor (color)
dncolor_txt (color)
dncolor (color)
theme (string)
Source_Zigzag_F(Source)
Parameters:
Source (string)
p_lw_hg(Source_low, Source_high, Depth)
Parameters:
Source_low (float)
Source_high (float)
Depth (int)
lowing_highing(Source_low, Source_high, p_lw, p_hg, Deviation)
Parameters:
Source_low (float)
Source_high (float)
p_lw (int)
p_hg (int)
Deviation (int)
ll_lh(lowing, highing)
Parameters:
lowing (bool)
highing (bool)
down_ll_down_lh(ll, lh, Backstep)
Parameters:
ll (int)
lh (int)
Backstep (int)
down(down_ll, down_lh, lw, hg)
Parameters:
down_ll (bool)
down_lh (bool)
lw (int)
hg (int)
f_x_P_S123_lw(lw_, hg_, p_lw_, down, Source_low)
Parameters:
lw_ (int)
hg_ (int)
p_lw_ (int)
down (int)
Source_low (float)
f_x_P_S123_hg(lw_, hg_, p_hg_, down, Source_high)
Parameters:
lw_ (int)
hg_ (int)
p_hg_ (int)
down (int)
Source_high (float)
Update_lw_hg_last_l_last_h(lw, hg, last_l, last_h, p_lw, p_hg, down, Source_low, Source_high)
Parameters:
lw (int)
hg (int)
last_l (int)
last_h (int)
p_lw (int)
p_hg (int)
down (int)
Source_low (float)
Source_high (float)
x1_P_y1_P_x2_P_y2_P_x3_P_y3_P_x4_P_y4_P(lw, hg, last_l, last_h, Source)
Parameters:
lw (int)
hg (int)
last_l (int)
last_h (int)
Source (string)
x1_P_os(lw, hg, x2_D, Diverjence_MACD_Line_, Diverjence_MACD_Histagram_, Diverjence_RSI_, Diverjence_Stochastic_, Diverjence_volume_, Diverjence_CCI_, Diverjence_MFI_, Diverjence_Momentum_, Diverjence_OBV_, Diverjence_ADX_, MACD, hist_MACD, RSI, volume_ok, Stochastic_K, CCI, MFI, momentum, OBV, adx)
Parameters:
lw (int)
hg (int)
x2_D (int)
Diverjence_MACD_Line_ (bool)
Diverjence_MACD_Histagram_ (bool)
Diverjence_RSI_ (bool)
Diverjence_Stochastic_ (bool)
Diverjence_volume_ (bool)
Diverjence_CCI_ (bool)
Diverjence_MFI_ (bool)
Diverjence_Momentum_ (bool)
Diverjence_OBV_ (bool)
Diverjence_ADX_ (bool)
MACD (float)
hist_MACD (float)
RSI (float)
volume_ok (float)
Stochastic_K (float)
CCI (float)
MFI (float)
momentum (float)
OBV (float)
adx (float)
x3_P_os(lw, hg, x2_D, x4_D, Diverjence_MACD_Line_, Diverjence_MACD_Histagram_, Diverjence_RSI_, Diverjence_Stochastic_, Diverjence_volume_, Diverjence_CCI_, Diverjence_MFI_, Diverjence_Momentum_, Diverjence_OBV_, Diverjence_ADX_, MACD, hist_MACD, RSI, volume_ok, Stochastic_K, CCI, MFI, momentum, OBV, adx)
Parameters:
lw (int)
hg (int)
x2_D (int)
x4_D (int)
Diverjence_MACD_Line_ (bool)
Diverjence_MACD_Histagram_ (bool)
Diverjence_RSI_ (bool)
Diverjence_Stochastic_ (bool)
Diverjence_volume_ (bool)
Diverjence_CCI_ (bool)
Diverjence_MFI_ (bool)
Diverjence_Momentum_ (bool)
Diverjence_OBV_ (bool)
Diverjence_ADX_ (bool)
MACD (float)
hist_MACD (float)
RSI (float)
volume_ok (float)
Stochastic_K (float)
CCI (float)
MFI (float)
momentum (float)
OBV (float)
adx (float)
Err_test(lw, hg, x1, y1, x2, y2, y_d, start, finish, Err_Rate)
Parameters:
lw (int)
hg (int)
x1 (int)
y1 (float)
x2 (int)
y2 (float)
y_d (float)
start (int)
finish (int)
Err_Rate (float)
divergence_calculation(Feasibility_RD, Feasibility_HD, Feasibility_ED, lw, hg, Source_low, Source_high, x1_P_pr, x3_P_pr, x1_P_os, x3_P_os, x2_P_pr, x4_P_pr, oscillator, Fix_Err_Mid_Point_Pr, Fix_Err_Mid_Point_Os, Err_Rate_permissible_Mid_Line_Pr, Err_Rate_permissible_Mid_Line_Os, Number_of_price_periods_R_H, Permissible_deviation_factor_in_Pr_R_H, Number_of_oscillator_periods_R_H, Permissible_deviation_factor_in_OS_R_H, Number_of_price_periods_E, Permissible_deviation_factor_in_Pr_E, Number_of_oscillator_periods_E, Permissible_deviation_factor_in_OS_E)
Parameters:
Feasibility_RD (bool)
Feasibility_HD (bool)
Feasibility_ED (bool)
lw (int)
hg (int)
Source_low (float)
Source_high (float)
x1_P_pr (int)
x3_P_pr (int)
x1_P_os (int)
x3_P_os (int)
x2_P_pr (int)
x4_P_pr (int)
oscillator (float)
Fix_Err_Mid_Point_Pr (bool)
Fix_Err_Mid_Point_Os (bool)
Err_Rate_permissible_Mid_Line_Pr (float)
Err_Rate_permissible_Mid_Line_Os (float)
Number_of_price_periods_R_H (int)
Permissible_deviation_factor_in_Pr_R_H (float)
Number_of_oscillator_periods_R_H (int)
Permissible_deviation_factor_in_OS_R_H (float)
Number_of_price_periods_E (int)
Permissible_deviation_factor_in_Pr_E (float)
Number_of_oscillator_periods_E (int)
Permissible_deviation_factor_in_OS_E (float)
label_txt(label_ID, zigzag_Indicator_1_, zigzag_Indicator_2_, zigzag_Indicator_3_)
Parameters:
label_ID (string)
zigzag_Indicator_1_ (bool)
zigzag_Indicator_2_ (bool)
zigzag_Indicator_3_ (bool)
delet_scan_item_1(string_, NO_1, GAP)
Parameters:
string_ (string)
NO_1 (int)
GAP (int)
delet_scan_item_2(string_, NO_1, GAP)
Parameters:
string_ (string)
NO_1 (int)
GAP (int)
calculation_Final_total(MS_MN, Scan_zigzag_NO, zigzag_Indicator, zigzag_Indicator_1, zigzag_Indicator_2, zigzag_Indicator_3, LW_hg_P2, LW_hg_P1, lw_1, lw_2, lw_3, hg_1, hg_2, hg_3, lw_hg_D_POINT_ad_Array, lw_hg_D_POINT_id_Array, Array_Regular_MS, Array_Hidden_MS, Array_Exaggerated_MS, Array_Regular_MN, Array_Hidden_MN, Array_Exaggerated_MN)
Parameters:
MS_MN (string)
Scan_zigzag_NO (string)
zigzag_Indicator (bool)
zigzag_Indicator_1 (bool)
zigzag_Indicator_2 (bool)
zigzag_Indicator_3 (bool)
LW_hg_P2 (int)
LW_hg_P1 (int)
lw_1 (int)
lw_2 (int)
lw_3 (int)
hg_1 (int)
hg_2 (int)
hg_3 (int)
lw_hg_D_POINT_ad_Array (array)
lw_hg_D_POINT_id_Array (array)
Array_Regular_MS (array)
Array_Hidden_MS (array)
Array_Exaggerated_MS (array)
Array_Regular_MN (array)
Array_Hidden_MN (array)
Array_Exaggerated_MN (array)
Search_piote_1(array_id_7, scan_no)
Parameters:
array_id_7 (array)
scan_no (int)
Powertrend - Volume Range Filter Strategy [wbburgin]The Powertrend is a range filter that is based off of volume, instead of price. This helps the range filter capture trends more accurately than a price-based range filter, because the range filter will update itself from changes in volume instead of changes in price. In certain scenarios this means that the Powertrend will be more profitable than a normal range filter.
Essentials of the Strategy
This is a breakout strategy which works best on trending assets with high volume and liquidity. It should be used on middle to higher timeframes and can be used on all assets that have volume provided by the data source (stocks, crypto, forex). It is long-only as of now. It can work on lower timeframes if you optimize the strategy filters to make less trades or if your exchange/broker is low/no fees, provided that your exchange/broker has high liquidity and volume.
The strategy enters a long position if the range filter is trending upwards and the price crosses over the upper range band, which signifies a price-volume breakout. The strategy closes the long position if the range filter is trending downwards and the price crosses under the lower range band, which signifies a breakdown. Both these conditions can be altered by the three filter options in the settings. The default trend filter is not alterable because it helps prevent false entries and exits that are against the trend.
Settings
The Length setting is the lookback period for the range smoothing.
The ADX Filter setting enables you to turn on an ADX filter, which will halt entries and exits unless the ADX of your customizable length is above a ADX VWMA of that length.
The Range Supertrend setting creates a supertrend from the top and bottom ranges, which can be used to filter entries and exits. The length is customizable. The filter can show you whether the range is making higher highs and lower lows. Below is an example of the Range Supertrend being used as a filter and plotted on-chart:
The VWMA setting halts entries if they are below a customizable length VWMA.
Both the Range Supertrend and the VWMA can also be plotted separately without actually filtering the strategy, so that you can use them independently if you wish. You can turn off the bar color, the highlighting, and the labels if you wish in the settings. A note about the bar color: if the color changes but the strategy does not signal an exit or entry this means that the crossover was against the trend. In these circumstances it may be indicative of a pullback to enter or exit or to add onto your position.
About the Strategy Results Below
A range filter is normally composed of two components - the range filter itself and a smoothing function. In the development of this script I tested both normal and volume-based varieties of the range filter and the smoothing function:
Tests Performed
Volume-based Range x VWMA smoothing
Price-based Range x VWMA smoothing
Price-based Range x EMA smoothing
Volume-based Range x EMA smoothing (final result)
The highest-performing was a volume-based range filter and a normal EMA-based smoothing function, but that does not mean that this strategy will be profitable - exits are based off of signal reversion so I strongly encourage you to develop your own take profits/stop losses for the strategy if you think it may be a good fit for you. The results below are with a commission value of 0.05% (because I built the strategy first for equities), slippage of 3, so if your exchange/broker has a higher fee schedule, I recommend adding filters and/or moving to higher timeframes for the strategy. Additionally, I used 10% of equity in each trade, while using the Range Supertrend filter (the previous upload was unrealistic because it used 100% of equity - missed a 0, apologies, and added in slippage).
TrendIndicatorsLibrary "TrendIndicators"
This is a library of 'Trend Indicators'.
It aims to facilitate the grouping of this category of indicators, and also offer the customized supply of
the source, not being restricted to just the closing price.
Indicators (this is a work in progress):
1. Absolute DI (Directional Moviment Index) (Difference between DI+ and DI-).
Used in 'DMI Stochastic Extreme' by Barbara Star.
2. DMI
DI_Abs(lengthDI, smoothDI, typeMA, lengthMA)
@description Absolute DI (Directional Moviment Index).
Used in 'DMI Stochastic Extreme' by Barbara Star.
Difference between DI+ and DI-
Parameters:
lengthDI : (int) Length of DI+/DI-
smoothDI : (bool) Sets whether absolute DI should be smoothed
typeMA : (int) Type of moving average of smoothing
lengthMA : (int) Length for moving average of smoothing
Returns: (float) Absolute value of DI
dmi(diLength, adxSmoothing)
@description DMI (Directional Movement Index)
Same as ta.dmi()
Parameters:
diLength : (int) Length of DI+/DI-
adxSmoothing : (int) ADX Smoothing
Returns: Tuple of three DMI series: Positive Directional
Movement (+DI), Negative Directional Movement (-DI) and Average Directional Movement Index (ADX).
dmi(source, diLength, adxSmoothing)
@description DMI (Directional Movement Index)
Customized version of ta.dmi(), with custom source
Parameters:
source : (float) Source for DI+/DI-
diLength : (int) Length of DI+/DI-
adxSmoothing : (int) ADX Smoothing
Returns: Tuple of three DMI series: Positive Directional
Movement (+DI), Negative Directional Movement (-DI) and Average Directional Movement Index (ADX).
Squeeze Momentum MTF [LPWN]//ENGLISH
Squeeze momentum of lazy bear, multiple time frames, It gives you information if the cycles with high temporality momentums are in harmony, by default two more momentums are shown, I prefer to use only one extra, in the options you can change the time frame of the momentums, in addition to the momentums you can add the RSI and ADX, if the momentum look small, you can change the value of general scale to make them bigger, the table gives us information on how the momentums and the adx are, in the options you can set the candles to color according to the harmony of the momentums
// SPANISH
Squeeze momentum de lazy bear, multiple time frames, te da informacion si los ciclos con momentums de temporalidad alta estan en armonia,por defecto se muestran dos momentums mas, yo prefiero usar solo uno extra, en las opcoines puedes cambiar la temporalidad de los momentums, ademas de los momentums puedes agregar el RSI y el ADX, si el momentum se ve pequeño, puedes cambiar el valor de general scale para hacerlos mas grandes, la tabla nos da infomracion de como estan los momentums y el adx, en las opciones puedes poner que las velas se pongan del color de acuerdo a la armonia de los momentums