Timeframe Resistance Evaluation And Detection - CoffeeKillerTREAD - Timeframe Resistance Evaluation And Detection Guide
🔔 Important Technical Limitation 🔔
**This indicator does NOT fetch true higher timeframe data.** Instead, it simulates higher timeframe levels by aggregating data from your current chart timeframe. This means:
- Results will vary depending on what chart timeframe you're viewing
- Levels may not match actual higher timeframe candle highs/lows
- You might miss important wicks or gaps that occurred between chart timeframe bars
- **Always verify levels against actual higher timeframe charts before trading**
Welcome traders! This guide will walk you through the TREAD (Timeframe Resistance Evaluation And Detection) indicator, a multi-timeframe analysis tool developed by CoffeeKiller that identifies support and resistance confluence across different time periods.(I am 50+ year old trader and always thought I was bad a teaching and explaining so you get a AI guide. I personally use this on the 5 minute chart with the default settings, but to each there own and if you can improve the trend detection methods please DM me. I would like to see the code. Thanks)
Core Components
1. Dual Timeframe Level Tracking
- Short Timeframe Levels: Tracks opening price extremes within shorter periods
- Long Timeframe Levels: Tracks actual high/low extremes within longer periods
- Dynamic Reset Mechanism: Levels reset at the start of each new timeframe period
- Momentum Detection: Identifies when levels change mid-period, indicating active price movement
2. Visual Zone System
- High Zones: Areas between long timeframe highs and short timeframe highs
- Low Zones: Areas between long timeframe lows and short timeframe lows
- Fill Coloring: Dynamic colors based on whether levels are static or actively changing
- Momentum Highlighting: Special colors when levels break during active periods
3. Customizable Display Options
- Multiple Plot Styles: Line, circles, or cross markers
- Flexible Timeframe Selection: Wide range of short and long timeframe combinations
- Color Customization: Separate colors for each level type and momentum state
- Toggle Controls: Show/hide different elements based on trading preference
Main Features
Timeframe Settings
- Short Timeframe Options: 15m, 30m, 1h, 2h, 4h
- Long Timeframe Options: 1h, 2h, 4h, 8h, 12h, 1D, 1W
- Recommended Combinations:
- Scalping: 15m/1h or 30m/2h
- Day Trading: 30m/4h or 1h/4h
- Swing Trading: 4h/1D or 1D/1W
Display Configuration
- Level Visibility: Toggle short/long timeframe levels independently
- Fill Zone Control: Enable/disable colored zones between levels
- Momentum Fills: Special highlighting for actively changing levels
- Line Customization: Width, style, and color options for all elements
Color System
- Short TF High: Default red for resistance levels
- Short TF Low: Default green for support levels
- Long TF High: Transparent red for broader resistance context
- Long TF Low: Transparent green for broader support context
- Momentum Colors: Brighter colors when levels are actively changing
Technical Implementation Details
How Level Tracking Works
The indicator uses a custom tracking function that:
1. Detects Timeframe Periods: Uses `time()` function to identify when new periods begin
2. Tracks Extremes: Monitors highest/lowest values within each period
3. Resets on New Periods: Clears tracking when timeframe periods change
4. Updates Mid-Period: Continues tracking if new extremes are reached
The Timeframe Limitation Explained
`pinescript
// What the indicator does:
short_tf_start = ta.change(time(short_timeframe)) != 0 // Detects 30m period start
= track_highest(open, short_tf_start) // BUT uses chart TF opens!
// What true multi-timeframe would be:
// short_tf_high = request.security(syminfo.tickerid, short_timeframe, high)
`
This means:
- On a 5m chart with 30m/4h settings: Tracks 5m bar opens during 30m and 4h windows
- On a 1m chart with same settings: Tracks 1m bar opens during 30m and 4h windows
- Results will be different between chart timeframes
- May miss important price action that occurred between your chart's bars
Visual Elements
1. Level Lines
- Short TF High: Upper resistance line from shorter timeframe analysis
- Short TF Low: Lower support line from shorter timeframe analysis
- Long TF High: Broader resistance context from longer timeframe
- Long TF Low: Broader support context from longer timeframe
2. Zone Fills
- High Zone: Area between long TF high and short TF high (potential resistance cluster)
- Low Zone: Area between long TF low and short TF low (potential support cluster)
- Regular Fill: Standard transparency when levels are static
- Momentum Fill: Enhanced visibility when levels are actively changing
3. Dynamic Coloring
- Static Periods: Normal colors when levels haven't changed recently
- Active Periods: Momentum colors when levels are being tested/broken
- Confluence Zones: Different intensities based on timeframe alignment
Trading Applications
1. Support/Resistance Trading
- Entry Points: Trade bounces from zone boundaries
- Confluence Areas: Focus on areas where short and long TF levels cluster
- Zone Breaks: Enter on confirmed breaks through entire zones
- Multiple Timeframe Confirmation: Stronger signals when both timeframes align
2. Range Trading
- Zone Boundaries: Use fill zones as range extremes
- Mean Reversion: Trade back toward opposite zone when price reaches extremes
- Breakout Preparation: Watch for momentum color changes indicating potential breakouts
- Risk Management: Place stops outside the opposite zone
3. Trend Following
- Direction Bias: Trade in direction of zone breaks
- Pullback Entries: Enter on pullbacks to broken zones (now support/resistance)
- Momentum Confirmation: Use momentum coloring to confirm trend strength
- Multiple Timeframe Alignment: Strongest trends when both timeframes agree
4. Scalping Applications
- Quick Bounces: Trade rapid moves between zone boundaries
- Momentum Signals: Enter when momentum colors appear
- Short-Term Targets: Use opposite zone as profit target
- Tight Stops: Place stops just outside current zone
Optimization Guide
1. Timeframe Selection
For Different Trading Styles:
- Scalping: 15m/1h - Quick levels, frequent updates
- Day Trading: 30m/4h - Balanced view, good for intraday moves
- Swing Trading: 4h/1D - Longer-term perspective, fewer false signals
- Position Trading: 1D/1W - Major structural levels
2. Chart Timeframe Considerations
**Important**: Your chart timeframe affects results
- Lower Chart TF: More granular level tracking, but may be noisy
- Higher Chart TF: Smoother levels, but may miss important price action
- Recommended: Use chart timeframe 2-4x smaller than short indicator timeframe
3. Display Settings
- Busy Charts: Disable fills, show only key levels
- Clean Analysis: Enable all fills and momentum coloring
- Multi-Monitor Setup: Use different color schemes for easy identification
- Mobile Trading: Increase line width for visibility
Best Practices
1. Level Verification
- Always Cross-Check: Verify levels against actual higher timeframe charts
- Multiple Timeframes: Check 2-3 different chart timeframes for consistency
- Price Action Confirmation: Wait for candlestick confirmation at levels
- Volume Analysis: Combine with volume for stronger confirmation
2. Risk Management
- Stop Placement: Use zones rather than exact prices for stops
- Position Sizing: Reduce size when zones are narrow (higher risk)
- Multiple Targets: Scale out at different zone boundaries
- False Break Protection: Allow for minor zone penetrations
3. Signal Quality Assessment
- Momentum Colors: Higher probability when momentum coloring appears
- Zone Width: Wider zones often provide stronger support/resistance
- Historical Testing: Backtest on your preferred timeframe combinations
- Market Conditions: Adjust sensitivity based on volatility
Advanced Features
1. Momentum Detection System
The indicator tracks when levels change mid-period:
`pinescript
short_high_changed = short_high != short_high and not short_tf_start
`
This identifies:
- Active level testing
- Potential breakout situations
- Increased market volatility
- Trend acceleration points
2. Dynamic Color System
Complex conditional logic determines fill colors:
- Static Zones: Regular transparency for stable levels
- Active Zones: Enhanced colors for changing levels
- Mixed States: Different combinations based on user preferences
- Custom Overrides: User can prioritize certain color schemes
3. Zone Interaction Analysis
- Convergence: When short and long TF levels approach each other
- Divergence: When timeframes show conflicting levels
- Alignment: When both timeframes agree on direction
- Transition: When one timeframe changes while other remains static
Common Issues and Solutions
1. Inconsistent Levels
Problem: Levels look different on various chart timeframes
Solution: Always verify against actual higher timeframe charts
2. Missing Price Action
Problem: Important wicks or gaps not reflected in levels
Solution: Use chart timeframe closer to indicator's short timeframe setting
3. Too Many Signals
Problem: Excessive level changes and momentum alerts
Solution: Increase timeframe settings or reduce chart timeframe granularity
4. Lagging Signals
Problem: Levels seem to update too slowly
Solution: Decrease chart timeframe or use more sensitive timeframe combinations
Recommended Setups
Conservative Approach
- Timeframes: 4h/1D
- Chart: 1h
- Display: Show fills only, no momentum coloring
- Use: Swing trading, position management
Aggressive Approach
- Timeframes: 15m/1h
- Chart: 5m
- Display: All features enabled, momentum highlighting
- Use: Scalping, quick reversal trades
Balanced Approach
- Timeframes: 30m/4h
- Chart: 15m
- Display: Selective fills, momentum on key levels
- Use: Day trading, multi-session analysis
Final Notes
**Remember**: This indicator provides a synthetic view of multi-timeframe levels, not true higher timeframe data. While useful for identifying potential confluence areas, always verify important levels by checking actual higher timeframe charts.
**Best Results When**:
- Combined with actual multi-timeframe analysis
- Used for confluence confirmation rather than primary signals
- Applied with proper risk management
- Verified against price action and volume
**DISCLAIMER**: This indicator and its signals are intended solely for educational and informational purposes. The timeframe limitation means results may not reflect true higher timeframe levels. Always conduct your own analysis and verify levels independently before making trading decisions. Trading involves significant risk of loss.
Cari dalam skrip untuk "如何用wind搜索股票的发行价和份数"
Killzones [Plug&Play]Highlight the most important institutional trading hours with precision.
The Setup Agent Killzones indicator automatically plots vertical lines to mark the key “Killzone” windows each day — London (08:00–09:00) and New York (15:00–16:00), shown in UK time. These timeframes represent periods of high volatility, where smart money activity is most likely to create the day’s major moves.
How it works:
Instantly visualise the London and New York Killzones with subtle vertical lines.
Customise which sessions to show to fit your trading style.
Stay focused on the windows where market makers are most active.
Perfect for intraday traders and anyone using session-based strategies.
Combine with our session indicator for a complete Plug&Play edge.
Why EMA Isn't What You Think It IsMany new traders adopt the Exponential Moving Average (EMA) believing it's simply a "better Simple Moving Average (SMA)". This common misconception leads to fundamental misunderstandings about how EMA works and when to use it.
EMA and SMA differ at their core. SMA use a window of finite number of data points, giving equal weight to each data point in the calculation period. This makes SMA a Finite Impulse Response (FIR) filter in signal processing terms. Remember that FIR means that "all that we need is the 'period' number of data points" to calculate the filter value. Anything beyond the given period is not relevant to FIR filters – much like how a security camera with 14-day storage automatically overwrites older footage, making last month's activity completely invisible regardless of how important it might have been.
EMA, however, is an Infinite Impulse Response (IIR) filter. It uses ALL historical data, with each past price having a diminishing - but never zero - influence on the calculated value. This creates an EMA response that extends infinitely into the past—not just for the last N periods. IIR filters cannot be precise if we give them only a 'period' number of data to work on - they will be off-target significantly due to lack of context, like trying to understand Game of Thrones by watching only the final season and wondering why everyone's so upset about that dragon lady going full pyromaniac.
If we only consider a number of data points equal to the EMA's period, we are capturing no more than 86.5% of the total weight of the EMA calculation. Relying on he period window alone (the warm-up period) will provide only 1 - (1 / e^2) weights, which is approximately 1−0.1353 = 0.8647 = 86.5%. That's like claiming you've read a book when you've skipped the first few chapters – technically, you got most of it, but you probably miss some crucial early context.
▶️ What is period in EMA used for?
What does a period parameter really mean for EMA? When we select a 15-period EMA, we're not selecting a window of 15 data points as with an SMA. Instead, we are using that number to calculate a decay factor (α) that determines how quickly older data loses influence in EMA result. Every trader knows EMA calculation: α = 1 / (1+period) – or at least every trader claims to know this while secretly checking the formula when they need it.
Thinking in terms of "period" seriously restricts EMA. The α parameter can be - should be! - any value between 0.0 and 1.0, offering infinite tuning possibilities of the indicator. When we limit ourselves to whole-number periods that we use in FIR indicators, we can only access a small subset of possible IIR calculations – it's like having access to the entire RGB color spectrum with 16.7 million possible colors but stubbornly sticking to the 8 basic crayons in a child's first art set because the coloring book only mentioned those by name.
For example:
Period 10 → alpha = 0.1818
Period 11 → alpha = 0.1667
What about wanting an alpha of 0.17, which might yield superior returns in your strategy that uses EMA? No whole-number period can provide this! Direct α parameterization offers more precision, much like how an analog tuner lets you find the perfect radio frequency while digital presets force you to choose only from predetermined stations, potentially missing the clearest signal sitting right between channels.
Sidenote: the choice of α = 1 / (1+period) is just a convention from 1970s, probably started by J. Welles Wilder, who popularized the use of the 14-day EMA. It was designed to create an approximate equivalence between EMA and SMA over the same number of periods, even thought SMA needs a period window (as it is FIR filter) and EMA doesn't. In reality, the decay factor α in EMA should be allowed any valye between 0.0 and 1.0, not just some discrete values derived from an integer-based period! Algorithmic systems should find the best α decay for EMA directly, allowing the system to fine-tune at will and not through conversion of integer period to float α decay – though this might put a few traditionalist traders into early retirement. Well, to prevent that, most traditionalist implementations of EMA only use period and no alpha at all. Heaven forbid we disturb people who print their charts on paper, draw trendlines with rulers, and insist the market "feels different" since computers do algotrading!
▶️ Calculating EMAs Efficiently
The standard textbook formula for EMA is:
EMA = CurrentPrice × alpha + PreviousEMA × (1 - alpha)
But did you know that a more efficient version exists, once you apply a tiny bit of high school algebra:
EMA = alpha × (CurrentPrice - PreviousEMA) + PreviousEMA
The first one requires three operations: 2 multiplications + 1 addition. The second one also requires three ops: 1 multiplication + 1 addition + 1 subtraction.
That's pathetic, you say? Not worth implementing? In most computational models, multiplications cost much more than additions/subtractions – much like how ordering dessert costs more than asking for a water refill at restaurants.
Relative CPU cost of float operations :
Addition/Subtraction: ~1 cycle
Multiplication: ~5 cycles (depending on precision and architecture)
Now you see the difference? 2 * 5 + 1 = 11 against 5 + 1 + 1 = 7. That is ≈ 36.36% efficiency gain just by swapping formulas around! And making your high school math teacher proud enough to finally put your test on the refrigerator.
▶️ The Warmup Problem: how to start the EMA sequence right
How do we calculate the first EMA value when there's no previous EMA available? Let's see some possible options used throughout the history:
Start with zero : EMA(0) = 0. This creates stupidly large distortion until enough bars pass for the horrible effect to diminish – like starting a trading account with zero balance but backdating a year of missed trades, then watching your balance struggle to climb out of a phantom debt for months.
Start with first price : EMA(0) = first price. This is better than starting with zero, but still causes initial distortion that will be extra-bad if the first price is an outlier – like forming your entire opinion of a stock based solely on its IPO day price, then wondering why your model is tanking for weeks afterward.
Use SMA for warmup : This is the tradition from the pencil-and-paper era of technical analysis – when calculators were luxury items and "algorithmic trading" meant your broker had neat handwriting. We first calculate an SMA over the initial period, then kickstart the EMA with this average value. It's widely used due to tradition, not merit, creating a mathematical Frankenstein that uses an FIR filter (SMA) during the initial period before abruptly switching to an IIR filter (EMA). This methodology is so aesthetically offensive (abrupt kink on the transition from SMA to EMA) that charting platforms hide these early values entirely, pretending EMA simply doesn't exist until the warmup period passes – the technical analysis equivalent of sweeping dust under the rug.
Use WMA for warmup : This one was never popular because it is harder to calculate with a pencil - compared to using simple SMA for warmup. Weighted Moving Average provides a much better approximation of a starting value as its linear descending profile is much closer to the EMA's decay profile.
These methods all share one problem: they produce inaccurate initial values that traders often hide or discard, much like how hedge funds conveniently report awesome performance "since strategy inception" only after their disastrous first quarter has been surgically removed from the track record.
▶️ A Better Way to start EMA: Decaying compensation
Think of it this way: An ideal EMA uses an infinite history of prices, but we only have data starting from a specific point. This creates a problem - our EMA starts with an incorrect assumption that all previous prices were all zero, all close, or all average – like trying to write someone's biography but only having information about their life since last Tuesday.
But there is a better way. It requires more than high school math comprehension and is more computationally intensive, but is mathematically correct and numerically stable. This approach involves compensating calculated EMA values for the "phantom data" that would have existed before our first price point.
Here's how phantom data compensation works:
We start our normal EMA calculation:
EMA_today = EMA_yesterday + α × (Price_today - EMA_yesterday)
But we add a correction factor that adjusts for the missing history:
Correction = 1 at the start
Correction = Correction × (1-α) after each calculation
We then apply this correction:
True_EMA = Raw_EMA / (1-Correction)
This correction factor starts at 1 (full compensation effect) and gets exponentially smaller with each new price bar. After enough data points, the correction becomes so small (i.e., below 0.0000000001) that we can stop applying it as it is no longer relevant.
Let's see how this works in practice:
For the first price bar:
Raw_EMA = 0
Correction = 1
True_EMA = Price (since 0 ÷ (1-1) is undefined, we use the first price)
For the second price bar:
Raw_EMA = α × (Price_2 - 0) + 0 = α × Price_2
Correction = 1 × (1-α) = (1-α)
True_EMA = α × Price_2 ÷ (1-(1-α)) = Price_2
For the third price bar:
Raw_EMA updates using the standard formula
Correction = (1-α) × (1-α) = (1-α)²
True_EMA = Raw_EMA ÷ (1-(1-α)²)
With each new price, the correction factor shrinks exponentially. After about -log₁₀(1e-10)/log₁₀(1-α) bars, the correction becomes negligible, and our EMA calculation matches what we would get if we had infinite historical data.
This approach provides accurate EMA values from the very first calculation. There's no need to use SMA for warmup or discard early values before output converges - EMA is mathematically correct from first value, ready to party without the awkward warmup phase.
Here is Pine Script 6 implementation of EMA that can take alpha parameter directly (or period if desired), returns valid values from the start, is resilient to dirty input values, uses decaying compensator instead of SMA, and uses the least amount of computational cycles possible.
// Enhanced EMA function with proper initialization and efficient calculation
ema(series float source, simple int period=0, simple float alpha=0)=>
// Input validation - one of alpha or period must be provided
if alpha<=0 and period<=0
runtime.error("Alpha or period must be provided")
// Calculate alpha from period if alpha not directly specified
float a = alpha > 0 ? alpha : 2.0 / math.max(period, 1)
// Initialize variables for EMA calculation
var float ema = na // Stores raw EMA value
var float result = na // Stores final corrected EMA
var float e = 1.0 // Decay compensation factor
var bool warmup = true // Flag for warmup phase
if not na(source)
if na(ema)
// First value case - initialize EMA to zero
// (we'll correct this immediately with the compensation)
ema := 0
result := source
else
// Standard EMA calculation (optimized formula)
ema := a * (source - ema) + ema
if warmup
// During warmup phase, apply decay compensation
e *= (1-a) // Update decay factor
float c = 1.0 / (1.0 - e) // Calculate correction multiplier
result := c * ema // Apply correction
// Stop warmup phase when correction becomes negligible
if e <= 1e-10
warmup := false
else
// After warmup, EMA operates without correction
result := ema
result // Return the properly compensated EMA value
▶️ CONCLUSION
EMA isn't just a "better SMA"—it is a fundamentally different tool, like how a submarine differs from a sailboat – both float, but the similarities end there. EMA responds to inputs differently, weighs historical data differently, and requires different initialization techniques.
By understanding these differences, traders can make more informed decisions about when and how to use EMA in trading strategies. And as EMA is embedded in so many other complex and compound indicators and strategies, if system uses tainted and inferior EMA calculatiomn, it is doing a disservice to all derivative indicators too – like building a skyscraper on a foundation of Jell-O.
The next time you add an EMA to your chart, remember: you're not just looking at a "faster moving average." You're using an INFINITE IMPULSE RESPONSE filter that carries the echo of all previous price actions, properly weighted to help make better trading decisions.
EMA done right might significantly improve the quality of all signals, strategies, and trades that rely on EMA somewhere deep in its algorithmic bowels – proving once again that math skills are indeed useful after high school, no matter what your guidance counselor told you.
TLC sessionA Professional Intraday Session Tracker with VWAP and Economic Event Integration
Description
This indicator provides visual tracking of major trading sessions (Asian, London, New York) combined with VWAP calculations and macroeconomic event zones. It's designed for intraday traders who need to monitor session overlaps, liquidity periods, and high-impact news events.
The basic script of trading sessions was taken as a basis and refined for greater convenience.
Key Features:
Customizable Session Tracking: Visualize up to 3 trading sessions with adjustable time zones (supports IANA & GMT formats)
Dynamic VWAP Integration: Built-in Volume-Weighted Average Price calculation
Macro Event Zones: Highlights key economic announcement windows (adjustable for summer/winter time)
Price Action Visualization: Displays open/close prices, session ranges, and average price levels
Automatic DST Adjustment: Uses IANA timezone database for daylight savings awareness
How It Works
1. Trading Session Detection
Three fully configurable sessions (e.g., Asia, London, New York)
Each session displays:
Colored background zone
Opening price (dashed line)
Closing price (dashed line)
Average price (dotted line)
Optional label with session name
2. VWAP Calculation
Standard Volume-Weighted Average Price plotted as circled line
Helps identify fair value within each session
3. Macro Event Zones
Special highlighted period for economic news releases
Automatically adjusts for summer/winter time
Default set to 1000-1200 (summer) or 0900-1100 (winter) GMT-5 (US session open)
Why This Indicator is Unique
Multi-Session Awareness
Unlike simple session indicators, this tool:
Tracks price development within each session
Shows session overlaps (critical for volatility periods)
Maintains separate VWAP calculations across sessions
Professional-Grade Features
IANA timezone support (automatic DST handling)
Customizable visual elements (toggle labels, ranges, averages)
Object-based architecture (clean, efficient rendering)
News event integration (helps avoid trading during high-impact releases)
Usage Recommendations
Best Timeframes
1-minute to 1-hour charts (intraday focus)
Not recommended for daily+ timeframes
Trading Applications
1. Session Breakout Strategy: Trade breakouts when London/New York sessions open
2. VWAP Reversion: Fade moves that deviate too far from VWAP
3. News Avoidance: Reduce position sizing during macro event windows
Visual Example
Asian session (red)
London session (blue)
New York session (purple)
Macro event zone (white)
VWAP line (gold circles)
The basic script of trading sessions was taken as a basis and refined for greater convenience.
Dskyz (DAFE) MAtrix with ATR-Powered Precision Dskyz (DAFE) MAtrix with ATR-Powered Precision
This cutting‐edge futures trading strategy built to thrive in rapidly changing market conditions. Developed for high-frequency futures trading on instruments such as the CME Mini MNQ, this strategy leverages a matrix of sophisticated moving averages combined with ATR-based filters to pinpoint high-probability entries and exits. Its unique combination of adaptable technical indicators and multi-timeframe trend filtering sets it apart from standard strategies, providing enhanced precision and dynamic responsiveness.
imgur.com
Core Functional Components
1. Advanced Moving Averages
A distinguishing feature of the DAFE strategy is its robust, multi-choice moving averages (MAs). Clients can choose from a wide array of MAs—each with specific strengths—in order to fine-tune their trading signals. The code includes user-defined functions for the following MAs:
imgur.com
Hull Moving Average (HMA):
The hma(src, len) function calculates the HMA by using weighted moving averages (WMAs) to reduce lag considerably while smoothing price data. This function computes an intermediate WMA of half the specified length, then a full-length WMA, and finally applies a further WMA over the square root of the length. This design allows for rapid adaptation to price changes without the typical delays of traditional moving averages.
Triple Exponential Moving Average (TEMA):
Implemented via tema(src, len), TEMA uses three consecutive exponential moving averages (EMAs) to effectively cancel out lag and capture price momentum. The final formula—3 * (ema1 - ema2) + ema3—produces a highly responsive indicator that filters out short-term noise.
Double Exponential Moving Average (DEMA):
Through the dema(src, len) function, DEMA calculates an EMA and then a second EMA on top of it. Its simplified formula of 2 * ema1 - ema2 provides a smoother curve than a single EMA while maintaining enhanced responsiveness.
Volume Weighted Moving Average (VWMA):
With vwma(src, len), this MA accounts for trading volume by weighting the price, thereby offering a more contextual picture of market activity. This is crucial when volume spikes indicate significant moves.
Zero Lag EMA (ZLEMA):
The zlema(src, len) function applies a correction to reduce the inherent lag found in EMAs. By subtracting a calculated lag (based on half the moving average window), ZLEMA is exceptionally attuned to recent price movements.
Arnaud Legoux Moving Average (ALMA):
The alma(src, len, offset, sigma) function introduces ALMA—a type of moving average designed to be less affected by outliers. With parameters for offset and sigma, it allows customization of the degree to which the MA reacts to market noise.
Kaufman Adaptive Moving Average (KAMA):
The custom kama(src, len) function is noteworthy for its adaptive nature. It computes an efficiency ratio by comparing price change against volatility, then dynamically adjusts its smoothing constant. This results in an MA that quickly responds during trending periods while remaining smoothed during consolidation.
Each of these functions—integrated into the strategy—is selectable by the trader (via the fastMAType and slowMAType inputs). This flexibility permits the tailored application of the MA most suited to current market dynamics and individual risk management preferences.
2. ATR-Based Filters and Risk Controls
ATR Calculation and Volatility Filter:
The strategy computes the Average True Range (ATR) over a user-defined period (atrPeriod). ATR is then used to derive both:
Volatility Assessment: Expressed as a ratio of ATR to closing price, ensuring that trades are taken only when volatility remains within a safe, predefined threshold (volatilityThreshold).
ATR-Based Entry Filters: Implemented as atrFilterLong and atrFilterShort, these conditions ensure that for long entries the price is sufficiently above the slow MA and vice versa for shorts. This acts as an additional confirmation filter.
Dynamic Exit Management:
The exit logic employs a dual approach:
Fixed Stop and Profit Target: Stops and targets are set at multiples of ATR (fixedStopMultiplier and profitTargetATRMult), helping manage risk in volatile markets.
Trailing Stop Adjustments: A trailing stop is calculated using the ATR multiplied by a user-defined offset (trailOffset), which captures additional profits as the trade moves favorably while protecting against reversals.
3. Multi-Timeframe Trend Filtering
The strategy enhances its signal reliability by leveraging a secondary, higher timeframe analysis:
15-Minute Trend Analysis:
By retrieving 15-minute moving averages (fastMA15m and slowMA15m) via request.security, the strategy determines the broader market trend. This secondary filter (enabled or disabled through useTrendFilter) ensures that entries are aligned with the prevailing market direction, thereby reducing the incidence of false signals.
4. Signal and Execution Logic
Combined MA Alignment:
The entry conditions are based primarily on the alignment of the fast and slow MAs. A long condition is triggered when the current price is above both MAs and the fast MA is above the slow MA—complemented by the ATR filter and volume conditions. The reverse applies for a short condition.
Volume and Time Window Validation:
Trades are permitted only if the current volume exceeds a minimum (minVolume) and the current hour falls within the predefined trading window (tradingStartHour to tradingEndHour). An additional volume spike check (comparing current volume to a moving average of past volumes) further filters for optimal market conditions.
Comprehensive Order Execution:
The strategy utilizes flexible order execution functions that allow pyramiding (up to 10 positions), ensuring that it can scale into positions as favorable conditions persist. The use of both market entries and automated exits (with profit targets, stop-losses, and trailing stops) ensures that risk is managed at every step.
5. Integrated Dashboard and Metrics
For transparency and real-time analysis, the strategy includes:
On-Chart Visualizations:
Both fast and slow MAs are plotted on the chart, making it easy to see the market’s technical foundation.
Dynamic Metrics Dashboard:
A built-in table displays crucial performance statistics—including current profit/loss, equity, ATR (both raw and as a percentage), and the percentage gap between the moving averages. These metrics offer immediate insight into the health and performance of the strategy.
Input Parameters: Detailed Breakdown
Every input is meticulously designed to offer granular control:
Fast & Slow Lengths:
Determine the window size for the fast and slow moving averages. Smaller values yield more sensitivity, while larger values provide a smoother, delayed response.
Fast/Slow MA Types:
Choose the type of moving average for fast and slow signals. The versatility—from basic SMA and EMA to more complex ones like HMA, TEMA, ZLEMA, ALMA, and KAMA—allows customization to fit different market scenarios.
ATR Parameters:
atrPeriod and atrMultiplier shape the volatility assessment, directly affecting entry filters and risk management through stop-loss and profit target levels.
Trend and Volume Filters:
Inputs such as useTrendFilter, minVolume, and the volume spike condition help confirm that a trade occurs in active, trending markets rather than during periods of low liquidity or market noise.
Trading Hours:
Restricting trade execution to specific hours (tradingStartHour and tradingEndHour) helps avoid illiquid or choppy markets outside of prime trading sessions.
Exit Strategies:
Parameters like trailOffset, profitTargetATRMult, and fixedStopMultiplier provide multiple layers of risk management and profit protection by tailoring how exits are generated relative to current market conditions.
Pyramiding and Fixed Trade Quantity:
The strategy supports multiple entries within a trend (up to 10 positions) and sets a predefined trade quantity (fixedQuantity) to maintain consistent exposure and risk per trade.
Dashboard Controls:
The resetDashboard input allows for on-the-fly resetting of performance metrics, keeping the strategy’s performance dashboard accurate and up-to-date.
Why This Strategy is Truly Exceptional
Multi-Faceted Adaptability:
The ability to switch seamlessly between various moving average types—each suited to particular market conditions—enables the strategy to adapt dynamically. This is a testament to the high level of coding sophistication and market insight infused within the system.
Robust Risk Management:
The integration of ATR-based stops, profit targets, and trailing stops ensures that every trade is executed with well-defined risk parameters. The system is designed to mitigate unexpected market swings while optimizing profit capture.
Comprehensive Market Filtering:
By combining moving average crossovers with volume analysis, volatility thresholds, and multi-timeframe trend filters, the strategy only enters trades under the most favorable conditions. This multi-layered filtering reduces noise and enhances signal quality.
-Final Thoughts-
The Dskyz Adaptive Futures Elite (DAFE) MAtrix with ATR-Powered Precision strategy is not just another trading algorithm—it is a multi-dimensional, fully customizable system built on advanced technical principles and sophisticated risk management techniques. Every function and input parameter has been carefully engineered to provide traders with a system that is both powerful and transparent.
For clients seeking a state-of-the-art trading solution that adapts dynamically to market conditions while maintaining strict discipline in risk management, this strategy truly stands in a class of its own.
****Please show support if you enjoyed this strategy. I'll have more coming out in the near future!!
-Dskyz
Caution
DAFE is experimental, not a profit guarantee. Futures trading risks significant losses due to leverage. Backtest, simulate, and monitor actively before live use. All trading decisions are your responsibility.
RSI3M3+ v.1.8RSI3M3+ v.1.8 Indicator
This script is an advanced trading indicator based on Walter J. Bressert's cycle analysis methodology, combined with an RSI (Relative Strength Index) variation. Let me break it down and explain how it works.
Core Concepts
The RSI3M3+ indicator combines:
A short-term RSI (3-period)
A 3-period moving average to smooth the RSI
Bressert's cycle analysis principles to identify optimal trading points
RSI3M3+ Indicator VisualizationImage Walter J. Bressert's Cycle Analysis Concepts
Walter Bressert was a pioneer in cycle analysis trading who believed markets move in cyclical patterns that can be measured and predicted. His key principles integrated into this indicator include:
Trading Cycles: Markets move in cycles with measurable time spans from low to low
Timing Bands: Projected periods when the next cyclical low or high is anticipated
Oscillator Use: Using oscillators like RSI to confirm cycle position
Entry/Exit Rules: Specific rules for trade entry and exit based on cycle position
Key Parameters in the Script
Basic RSI Parameters
Required bars: Minimum number of bars needed (default: 20)
Overbought region: RSI level considered overbought (default: 70)
Oversold region: RSI level considered oversold (default: 30)
Bressert-Specific Parameters
Cycle Detection Length: Lookback period for cycle identification (default: 30)
Minimum/Maximum Cycle Length: Expected cycle duration in days (default: 15-30)
Buy Line: Lower threshold for buy signals (default: 40)
Sell Line: Upper threshold for sell signals (default: 60)
How the Indicator Works
RSI3M3 Calculation:
Calculates a 3-period RSI (sRSI)
Smooths it with a 3-period moving average (sMA)
Cycle Detection:
Identifies bottoms: When the RSI is below the buy line (40) and starting to turn up
Identifies tops: When the RSI is above the sell line (60) and starting to turn down
Records these points to calculate cycle lengths
Timing Bands:
Projects when the next cycle bottom or top should occur
Creates visual bands on the chart showing these expected time windows
Signal Generation:
Buy signals occur when the RSI turns up from below the oversold level (30)
Sell signals occur when the RSI turns down from above the overbought level (70)
Enhanced by Bressert's specific timing rules
Bressert's Five Trading Rules (Implemented in the Script)
Cycle Timing: The low must be 15-30 market days from the previous Trading Cycle bottom
Prior Top Validation: A Trading Cycle high must have occurred with the oscillator above 60
Oscillator Behavior: The oscillator must drop below 40 and turn up
Entry Trigger: Entry is triggered by a rise above the price high of the upturn day
Protective Stop: Place stop slightly below the Trading Cycle low (implemented as 99% of bottom price)
How to Use the Indicator
Reading the Chart
Main Plot Area:
Green line: 3-period RSI
Red line: 3-period moving average of the RSI
Horizontal bands: Oversold (30) and Overbought (70) regions
Dotted lines: Buy line (40) and Sell line (60)
Yellow vertical bands: Projected timing windows for next cycle bottom
Signals:
Green up arrows: Buy signals
Red down arrows: Sell signals
Trading Strategy
For Buy Signals:
Wait for the RSI to drop below the buy line (40)
Look for an upturn in the RSI from below this level
Enter the trade when price rises above the high of the upturn day
Place a protective stop at 99% of the Trading Cycle low
For Sell Signals:
Wait for the RSI to rise above the sell line (60)
Look for a downturn in the RSI from above this level
Consider exiting or taking profits when a sell signal appears
Alternative exit: When price moves below the low of the downturn day
Cycle Timing Enhancement:
Pay attention to the yellow timing bands
Signals occurring within these bands have higher probability of success
Signals outside these bands may be less reliable
Practical Tips for Using RSI3M3+
Timeframe Selection:
The indicator works best on daily charts for intermediate-term trading
Can be used on weekly charts for longer-term position trading
On intraday charts, adjust cycle lengths accordingly
Market Applicability:
Works well in trending markets with clear cyclical behavior
Less effective in choppy, non-trending markets
Consider additional indicators for trend confirmation
Parameter Adjustment:
Different markets may have different natural cycle lengths
You may need to adjust the min/max cycle length parameters
Higher volatility markets may need wider overbought/oversold levels
Trade Management:
Enter trades when all Bressert's conditions are met
Use the protective stop as defined (99% of cycle low)
Consider taking partial profits at the projected cycle high timing
Advanced Techniques
Multiple Timeframe Analysis:
Confirm signals with the same indicator on higher timeframes
Enter in the direction of the larger cycle when smaller and larger cycles align
Divergence Detection:
Look for price making new lows while RSI makes higher lows (bullish)
Look for price making new highs while RSI makes lower highs (bearish)
Confluence with Price Action:
Combine with support/resistance levels
Use with candlestick patterns for confirmation
Consider volume confirmation of cycle turns
This RSI3M3+ indicator combines the responsiveness of a short-term RSI with the predictive power of Bressert's cycle analysis, offering traders a sophisticated tool for identifying high-probability trading opportunities based on market cycles and momentum shifts.
THANK YOU FOR PREVIOUS CODER THAT EFFORT TO CREATE THE EARLIER VERSION THAT MAKE WALTER J BRESSERT CONCEPT IN TRADINGVIEW @ADutchTourist
Casa_SessionsLibrary "Casa_Sessions"
Advanced trading session management library that enhances TradingView's default functionality:
Key Features:
- Accurate session detection for futures markets
- Custom session hour definitions
- Drop-in replacements for standard TradingView session functions
- Flexible session map customization
- Full control over trading windows and market hours
Perfect for traders who need precise session timing, especially when working
with futures markets or custom trading schedules.
SetSessionTimes(session_type_input, custom_session_times_input, syminfo_type, syminfo_root, syminfo_timezone)
Parameters:
session_type_input (simple string) : Input string for session selection:
- 'Custom': User-defined session times
- 'FX-Tokyo': Tokyo forex session
- 'FX-London': London forex session
- 'FX-New York': NY forex session
- 'Overnight Session (ON)': After-hours trading
- 'Day Session (RTH)': Regular trading hours
custom_session_times_input (simple string) : Session parameter for custom time windows
Only used when session_type_input is 'Custom'
syminfo_type (simple string)
syminfo_root (simple string)
syminfo_timezone (simple string)
Returns:
session_times: Trading hours for selected session
session_timezone: Market timezone (relevant for forex)
getSessionMap()
Get futures trading session hours map
Keys are formatted as 'symbol:session', examples:
- 'ES:market' - Regular trading hours (RTH)
- 'ES:overnight' - Extended trading hours (ETH)
- 'NQ:market' - NASDAQ futures RTH
- 'CL:overnight' - Crude Oil futures ETH
Returns: Map
Key: Symbol:session identifier
Value: Session hours in format "HH:MM-HH:MM"
getSessionString(session, symbol, sessionMap)
Returns a session string representing the session hours (and days) for the requested symbol (or the chart's symbol if the symbol value is not provided). If the session string is not found in the collection, it will return a blank string.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
symbol (string) : The symbol to check. Optional. Defaults to chart symbol.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
inSession(session, sessionMap, barsBack)
Returns true if the current symbol is currently in the session parameters defined by sessionString.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
barsBack (int) : Private. Only used by futures to check islastbar. Optional. The default is 0.
ismarket(sessionMap)
Returns true if the current bar is a part of the regular trading hours (i.e. market hours), false otherwise. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar()
Returns true if the current bar is the first bar of the day's session, false otherwise. If extended session information is used, only returns true on the first bar of the pre-market bars. Works for futures (TradingView's methods do not).
Returns: bool
islastbar()
Returns true if the current bar is the last bar of the day's session, false otherwise. If extended session information is used, only returns true on the last bar of the post-market bars. Works for futures (TradingView's methods do not).
Returns: bool
ispremarket(sessionMap)
Returns true if the current bar is a part of the pre-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
ispostmarket(sessionMap)
Returns true if the current bar is a part of the post-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar_regular(sessionMap)
Returns true on the first regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
islastbar_regular(sessionMap)
Returns true on the last regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isovernight(sessionMap)
Returns true if the current bar is a part of the pre-market or post-market, false otherwise. On non-intraday charts always returns false.
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
getSessionHighAndLow(session, sessionMap)
Returns a tuple containing the high and low print during the specified session.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: A tuple containing
getSessionHigh(session, sessionMap)
Convenience function to return the session high. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The high of the session
getSessionLow(session, sessionMap)
Convenience function to return the session low. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The low of the session
EMA SHIFT & PARALLEL [n_dot]BINANCE:ETHUSDT.P
This strategy was developed for CRYPTO FUTURES, (the settings for ETHUSDT.P) . I aimed for the strategy to function in a live environment, so I focused on making its operation realistic:
When determining the position, only 80% (adjustable) of the available cash is invested to reduce the risk of position liquidation.
I account for a 0.05% commission, typical on the futures market, for each entry and exit.
Concept:
I modified a simple, well-known method: the crossover of two exponential moving averages (FAST, SLOW) generates the entry and exit signals.
I enhanced the base idea as follows:
For the fast EMA, I incorporated a multiplier (offset) to filter out market noise and focus only on strong signals.
I use different EMAs for long and short entry points; both have their own FAST and SLOW EMAs and their own offset. For longs, the FAST EMA is adjusted downward (<1), while for shorts, it is adjusted upward (>1). Consequently, the signal is generated when the modified FAST EMA crosses the SLOW EMA.
Risk Management:
The position includes the following components:
Separate stop-losses for long and short positions.
Separate trailers for long and short positions.
The strategy operates so that the entry point is determined by the EMA crossover, while the exit is governed only by the Stop Loss or Trailer. Optionally, it can be set to close the position at the EMA recrossing ("Close at Signal").
Trailer Operation:
An entry percentage and offset are defined. The trailer activates when the price surpasses the entry price, calculated automatically by the system.
The trailer closes the position when the price drops by the offset percentage from the highest reached price.
Example for trailer:
Purchase Price = 100
Trailer Enter = 5% → Activation Price = 105 (triggers trailer if market price crosses it).
Trailer Offset = 2%
If the price rises to 110, the exit price becomes 107.8.
If the price goes to 120, the exit price becomes 117.6.
If the price falls below 117.6, the trailer closes the position.
Settings:
Source: Determines the market price reference.
End Close: Closes positions at the end of the simulation to avoid "shadow positions" and provide an objective result.
Lot proportional to free cash (%): Only a portion of free cash is invested to meet margin requirements.
Plot Short, Plot Long: Simplifies displayed information by toggling indicator lines on/off.
Long Position (toggleable):
EMA Fast ws: Window size for FAST EMA.
EMA Slow ws: Window size for SLOW EMA.
EMA Fast down shift: Adjustment factor for FAST EMA.
Stop Loss long (%): Percent drop to close the position.
Trailer enter (%): Percent above the purchase price to activate the trailer.
Trailer offset (%): Percent drop to close the position.
Short Position (toggleable):
EMA Fast ws: Window size for FAST EMA.
EMA Slow ws: Window size for SLOW EMA.
EMA Fast up shift: Adjustment factor for FAST EMA.
Stop Loss short (%): Percent rise to close the position.
Trailer enter (%): Percent below the purchase price to activate the trailer.
Trailer offset (%): Percent rise to close the position.
Operational Framework:
If in a long position and a short EMA crossover occurs, the strategy closes the long and opens a short (flip).
If in a short position and a long EMA crossover occurs, the strategy closes the short and opens a long (flip).
A position can close in three ways:
Stop Loss
Trailer
Signal Recrossing
If none are active, the position remains open until the end of the simulation.
Observations:
Shifts significantly deviating from 1 increase overfitting risk. Recommended ranges: 0.96–0.99 (long) and 1.01–1.05 (short).
The strategy's advantage lies in risk management, crucial in leveraged futures markets. It operates with relatively low DrawDown.
Recommendations:
Bullish Market: Higher entry threshold (e.g., 6%) and larger offset (e.g., 3%).
Volatile/Sideways Market: Tighter parameters (e.g., 3%, 1%).
The method is stable, and minor parameter adjustments do not significantly impact results, helping assess overfitting: if small changes lead to drastic differences, the strategy is over-optimized.
EMA Settings: Adjust FAST and SLOW EMAs based on the asset's volatility and cyclicality.
On the crypto market, especially in the Futures market, short time periods (1–15 minutes) often show significant noise, making patterns/repetitions hard to identify. I recommend setting the interval to at least 1 hour.
I hope this contributes to your success!
Snipe 1-Minute IntradayPurpose
This script demonstrates a simple intraday approach using RSI, EMAs, VWAP, and an optional volume filter. It plots visual buy (bullish) and sell (bearish) signals on the chart under certain conditions. You can use it as a starting point to explore or develop your own intraday strategies.
Key Features
1. VWAP (Volume Weighted Average Price)
Plots the built-in VWAP for additional context on intraday price action.
2. EMA Crossover
Uses two EMAs (fast and slow). A bullish signal triggers when the fast EMA is above the slow EMA, and a bearish signal triggers when the fast EMA is below the slow EMA.
3. RSI Momentum Filter
An RSI reading above 50 indicates bullish momentum; below 50 indicates bearish momentum.
4. Volume Filter (Optional)
Compares the current bar’s volume against the average volume (over a user-defined period). When enabled, signals only appear if the current volume exceeds the average.
5. Time Window (Optional)
Allows you to define a specific time window (e.g., the first hour of trading) for valid signals. You can enable or disable this filter and set your preferred time zone.
How the Signals Are Generated
• Bullish Signal
o Occurs when:
1. Price is above VWAP.
2. Fast EMA is above Slow EMA.
3. RSI is above 50.
4. (Optional) Current volume exceeds the average volume if the volume filter is enabled.
5. (Optional) The chart’s timestamp is within the specified session if the time filter is enabled.
A green triangle is plotted below the bar, and an optional background highlight is shown.
• Bearish Signal
Occurs when the conditions are inverted (price below VWAP, fast EMA below slow EMA, RSI below 50, volume filter and time window—if enabled—are satisfied).
A red triangle is plotted above the bar, and an optional background highlight is shown.
How to Use
1. Load on a 1-Minute Chart (Recommended)
This script is intended for intraday timeframes (specifically 1-minute). Feel free to experiment with other timeframes.
2. Adjust Inputs
You can modify the RSI length, EMA lengths, and volume lookback to suit your preferences or trading style.
If you prefer signals outside the default session hours, turn off “Use Time Filter for Signals?” or change the session window and time zone.
3. Enable or Disable Volume Filter
Turn this on if you only want signals during higher-than-average volume bars.
4. Combine with Other Analysis
This script can be used as a visual tool; however, it is not a complete trading system by itself. Consider additional technical or fundamental analysis to validate your trading decisions.
5. Risk Management
Always practice sound risk management. Setting appropriate stop-losses or using position sizing techniques can help manage potential losses.
Important Notes and Disclaimers
• Educational Only: This script is for demonstration and educational purposes and does not guarantee future results.
• No Financial Advice: Nothing here should be construed as financial or investment advice. Always do your own research and consider consulting a qualified financial professional.
• Test Before Using Live: If you plan to incorporate this script into a strategy, backtest it on historical data and consider forward-testing on a demo account.
• License: This code is subject to the Mozilla Public License 2.0.
Kernel Regression Envelope with SMI OscillatorThis script combines the predictive capabilities of the **Nadaraya-Watson estimator**, implemented by the esteemed jdehorty (credit to him for his excellent work on the `KernelFunctions` library and the original Nadaraya-Watson Envelope indicator), with the confirmation strength of the **Stochastic Momentum Index (SMI)** to create a dynamic trend reversal strategy. The core idea is to identify potential overbought and oversold conditions using the Nadaraya-Watson Envelope and then confirm these signals with the SMI before entering a trade.
**Understanding the Nadaraya-Watson Envelope:**
The Nadaraya-Watson estimator is a non-parametric regression technique that essentially calculates a weighted average of past price data to estimate the current underlying trend. Unlike simple moving averages that give equal weight to all past data within a defined period, the Nadaraya-Watson estimator uses a **kernel function** (in this case, the Rational Quadratic Kernel) to assign weights. The key parameters influencing this estimation are:
* **Lookback Window (h):** This determines how many historical bars are considered for the estimation. A larger window results in a smoother estimation, while a smaller window makes it more reactive to recent price changes.
* **Relative Weighting (alpha):** This parameter controls the influence of different time frames in the estimation. Lower values emphasize longer-term price action, while higher values make the estimator more sensitive to shorter-term movements.
* **Start Regression at Bar (x\_0):** This allows you to exclude the potentially volatile initial bars of a chart from the calculation, leading to a more stable estimation.
The script calculates the Nadaraya-Watson estimation for the closing price (`yhat_close`), as well as the highs (`yhat_high`) and lows (`yhat_low`). The `yhat_close` is then used as the central trend line.
**Dynamic Envelope Bands with ATR:**
To identify potential entry and exit points around the Nadaraya-Watson estimation, the script uses **Average True Range (ATR)** to create dynamic envelope bands. ATR measures the volatility of the price. By multiplying the ATR by different factors (`nearFactor` and `farFactor`), we create multiple bands:
* **Near Bands:** These are closer to the Nadaraya-Watson estimation and are intended to identify potential immediate overbought or oversold zones.
* **Far Bands:** These are further away and can act as potential take-profit or stop-loss levels, representing more extreme price extensions.
The script calculates both near and far upper and lower bands, as well as an average between the near and far bands. This provides a nuanced view of potential support and resistance levels around the estimated trend.
**Confirming Reversals with the Stochastic Momentum Index (SMI):**
While the Nadaraya-Watson Envelope identifies potential overextended conditions, the **Stochastic Momentum Index (SMI)** is used to confirm a potential trend reversal. The SMI, unlike a traditional stochastic oscillator, oscillates around a zero line. It measures the location of the current closing price relative to the median of the high/low range over a specified period.
The script calculates the SMI on a **higher timeframe** (defined by the "Timeframe" input) to gain a broader perspective on the market momentum. This helps to filter out potential whipsaws and false signals that might occur on the current chart's timeframe. The SMI calculation involves:
* **%K Length:** The lookback period for calculating the highest high and lowest low.
* **%D Length:** The period for smoothing the relative range.
* **EMA Length:** The period for smoothing the SMI itself.
The script uses a double EMA for smoothing within the SMI calculation for added smoothness.
**How the Indicators Work Together in the Strategy:**
The strategy enters a long position when:
1. The closing price crosses below the **near lower band** of the Nadaraya-Watson Envelope, suggesting a potential oversold condition.
2. The SMI crosses above its EMA, indicating positive momentum.
3. The SMI value is below -50, further supporting the oversold idea on the higher timeframe.
Conversely, the strategy enters a short position when:
1. The closing price crosses above the **near upper band** of the Nadaraya-Watson Envelope, suggesting a potential overbought condition.
2. The SMI crosses below its EMA, indicating negative momentum.
3. The SMI value is above 50, further supporting the overbought idea on the higher timeframe.
Trades are closed when the price crosses the **far band** in the opposite direction of the trade. A stop-loss is also implemented based on a fixed value.
**In essence:** The Nadaraya-Watson Envelope identifies areas where the price might be deviating significantly from its estimated trend. The SMI, calculated on a higher timeframe, then acts as a confirmation signal, suggesting that the momentum is shifting in the direction of a potential reversal. The ATR-based bands provide dynamic entry and exit points based on the current volatility.
**How to Use the Script:**
1. **Apply the script to your chart.**
2. **Adjust the "Kernel Settings":**
* **Lookback Window (h):** Experiment with different values to find the smoothness that best suits the asset and timeframe you are trading. Lower values make the envelope more reactive, while higher values make it smoother.
* **Relative Weighting (alpha):** Adjust to control the influence of different timeframes on the Nadaraya-Watson estimation.
* **Start Regression at Bar (x\_0):** Increase this value if you want to exclude the initial, potentially volatile, bars from the calculation.
* **Stoploss:** Set your desired stop-loss value.
3. **Adjust the "SMI" settings:**
* **%K Length, %D Length, EMA Length:** These parameters control the sensitivity and smoothness of the SMI. Experiment to find settings that work well for your trading style.
* **Timeframe:** Select the higher timeframe you want to use for SMI confirmation.
4. **Adjust the "ATR Length" and "Near/Far ATR Factor":** These settings control the width and sensitivity of the envelope bands. Smaller ATR lengths make the bands more reactive to recent volatility.
5. **Customize the "Color Settings"** to your preference.
6. **Observe the plots:**
* The **Nadaraya-Watson Estimation (yhat)** line represents the estimated underlying trend.
* The **near and far upper and lower bands** visualize potential overbought and oversold zones based on the ATR.
* The **fill areas** highlight the regions between the near and far bands.
7. **Look for entry signals:** A long entry is considered when the price touches or crosses below the lower near band and the SMI confirms upward momentum. A short entry is considered when the price touches or crosses above the upper near band and the SMI confirms downward momentum.
8. **Manage your trades:** The script provides exit signals when the price crosses the far band. The fixed stop-loss will also close trades if the price moves against your position.
**Justification for Combining Nadaraya-Watson Envelope and SMI:**
The combination of the Nadaraya-Watson Envelope and the SMI provides a more robust approach to identifying potential trend reversals compared to using either indicator in isolation. The Nadaraya-Watson Envelope excels at identifying potential areas where the price is overextended relative to its recent history. However, relying solely on the envelope can lead to false signals, especially in choppy or volatile markets. By incorporating the SMI as a confirmation tool, we add a momentum filter that helps to validate the potential reversals signaled by the envelope. The higher timeframe SMI further helps to filter out noise and focus on more significant shifts in momentum. The ATR-based bands add a dynamic element to the entry and exit points, adapting to the current market volatility. This mashup aims to leverage the strengths of each indicator to create a more reliable trading strategy.
Overnight Effect High Volatility Crypto (AiBitcoinTrend)👽 Overview of the Strategy
This strategy leverages the overnight effect in the cryptocurrency market, specifically targeting the two-hour window from 21:00 UTC to 23:00 UTC. The strategy is designed to be applied only during periods of high volatility, which is determined using historical volatility data. This approach, inspired by research from Padyšák and Vojtko (2022), aims to capitalize on statistically significant return patterns observed during these hours.
Deep Backtesting with a High Volatility Filter
Deep Backtesting without a High Volatility Filter
👽 How the Strategy Works
Volatility Calculation:
Each day at 00:00 UTC, the strategy calculates the 30-day historical volatility of crypto returns (typically Bitcoin). The historical volatility is the standard deviation of the log returns over the past 30 days, representing the market's recent volatility level.
Median Volatility Benchmark:
The median of the 30-day historical volatility is calculated over a 365-day period (one year). This median acts as a benchmark to classify each day as either:
👾 High Volatility: When the current 30-day volatility exceeds the median volatility.
👾 Low Volatility: When the current 30-day volatility is below the median.
Trading Rule:
If the day is classified as a High Volatility Day, the strategy executes the following trades:
👾 Buy at 21:00 UTC.
👾 Sell at 23:00 UTC.
Trade Execution Details:
The strategy uses a 0.02% fee per trade.
Each trade is executed with 25% of the available capital. This allocation helps manage risk while allowing for compounding returns.
Rationale:
The returns during the 22:00 and 23:00 UTC hours have been found to be statistically significant during high volatility periods. The overnight effect is believed to drive this phenomenon due to the asynchronous closing hours of global financial markets. This creates unique trading opportunities in the cryptocurrency market, where exchanges remain open 24/7.
👽 Market Context and Global Time Zone Impact
👾 Why 21:00 to 23:00 UTC?
During this window, major traditional financial markets are closed:
NYSE (New York) closes at 21:00 UTC.
London and European markets are closed during these hours.
Asian markets (Tokyo, Hong Kong, etc.) open later, leaving this window largely unaffected by traditional trading flows.
This global market inactivity creates a period where significant moves can occur in the cryptocurrency market, particularly during high volatility.
👽 Strategy Parameters
Volatility Period: 30 days.
The lookback period for calculating historical volatility.
Median Period: 365 days.
The lookback period for calculating the median volatility benchmark.
Entry Time: 21:00 UTC.
Adjust this to your local time if necessary (e.g., 16:00 in New York, 22:00 in Stockholm).
Exit Time: 23:00 UTC.
Adjust this to your local time if necessary (e.g., 18:00 in New York, 00:00 midnight in Stockholm).
👽 Benefits of the Strategy
Seasonality Effect:
The strategy captures consistent patterns driven by the overnight effect and high volatility periods.
Risk Reduction:
Since trades are executed during a specific window and only on high volatility days, the strategy helps mitigate exposure to broader market risk.
Simplicity and Efficiency:
The strategy is moderately complex, making it accessible for traders while offering significant returns.
Global Applicability:
Suitable for traders worldwide, with clear guidelines on adjusting for local time zones.
👽 Considerations
Market Conditions: The strategy works best in a high-volatility environment.
Execution: Requires precise timing to enter and exit trades at the specified hours.
Time Zone Adjustments: Ensure you convert UTC times accurately based on your location to execute trades at the correct local times.
Disclaimer: This information is for entertainment purposes only and does not constitute financial advice. Please consult with a qualified financial advisor before making any investment decisions.
Rolling VWAP with Optional Kalman FilterThis script provides an advanced and customizable Rolling VWAP (Volume-Weighted Average Price) indicator, designed for traders who want to refine their trend analysis and improve decision-making. With a unique option to apply a Kalman Filter, you can smooth out VWAP values to reduce noise in volatile markets, making it easier to identify actionable trends.
Key Features:
Dynamic Rolling VWAP:
Choose the rolling window size (number of bars) to match your trading style, whether you’re an intraday scalper or a swing trader.
Kalman Filter Toggle:
Enable the Kalman filter to smooth VWAP values and eliminate market noise.
Adjustable Kalman Gain to control the level of smoothing, making it suitable for both fast and slow markets.
Price Source Flexibility:
Use the Typical Price ((H+L+C)/3) or the Close Price as the basis for VWAP calculation.
Visual Enhancements:
Background shading highlights whether the price is above (bullish) or below (bearish) the VWAP, helping traders make quick visual assessments.
A legend dynamically updates the current VWAP value.
Dual View Option:
Compare the raw Rolling VWAP and the Kalman-filtered VWAP when the filter is enabled, giving you deeper insight into market trends.
Use Cases:
Intraday Traders: Identify key price levels for re-entry or exits using a short rolling window and responsive filtering.
Swing Traders: Analyze broader trends with a longer rolling window and smoother VWAP output.
Volatile Markets: Use the Kalman filter to reduce noise and avoid false signals during high market volatility.
How to Use:
Adjust the Rolling Window to set the number of bars for VWAP calculation.
Toggle Kalman Filter on/off depending on your preference for raw or smoothed VWAP values.
Fine-tune the Kalman Gain for the desired level of smoothing.
Use the shading to quickly assess whether the price is trading above or below the VWAP for potential entry/exit signals.
Bullish/Bearish Reversal Bars Indicator [Skyrexio]Introduction
Bullish/Bearish Reversal Bars Indicator leverages the combination of candlestick reversal bar pattern and the Williams Alligator indicator to help traders in understanding where there is a high probability of market reversal or correction. Indicator works for both bearish and bullish cases. It visualizes the bearish and bullish reversal bars with red and green dots and also plots the Alligator's lips to make it more convenient for traders to understand if price is above or below lips line (more information in "Methodology and it's justification" paragraph).
Features
Market Facilitation Index(MFI) filter: with the specified parameter in settings user can choose to filter bullish and bearish reversal bars which passed the MFI condition.
Awesome Oscillator(AO) filter: with the specified parameter in settings user can choose to filter bullish and bearish reversal bars which passed the AO condition.
Alerts: user can set up the alert and have notifications when bullish/bearish reversal bar has been printed.
Methodology and it's justification
In the script’s methodology, we apply the concepts of bullish and bearish reversal bars introduced by Bill Williams in his book Trading Chaos. So, what exactly is a bullish or bearish reversal bar? At its core, it’s a candlestick pattern. A bullish reversal bar is a bar that closes in its upper half, while a bearish reversal bar closes in its lower half.
Why is this type of bar significant? Let’s look at the bullish reversal bar as an example. When the price is trending upward, forming higher highs with each candle, and we suddenly see a bullish bar that makes a new high but ultimately closes in its lower half, it signals a shift in control. Bears have taken control toward the end of that candle's period, pushing the price back down. This can be interpreted as a sign of trend weakness and a potential reversal (or at least a correction).
An additional key point is that a reversal bar often indicates a possible end to the trend. Therefore, for a reversal bar to be valid, several preceding candles should show lower highs (for bullish bars) or higher lows (for bearish bars), reinforcing the likelihood of a trend change.
The second step on methodology is the location of the bar related to Williams Alligator. The Williams Alligator Indicator, developed by Bill Williams, is a technical analysis tool that helps traders identify trends and potential turning points in the market. It consists of three lines, often called the jaw, teeth, and lips of the alligator, each representing different moving averages:
Jaw (Blue Line): A slower moving average, typically a 13-period smoothed moving average shifted 8 bars into the future.
Teeth (Red Line): A medium moving average, typically an 8-period smoothed moving average shifted 5 bars into the future.
Lips (Green Line): A faster moving average, usually a 5-period smoothed moving average shifted 3 bars into the future.
When the three lines are spread out and moving in the same direction, it suggests a strong trend (the "alligator" is "awake and feeding"). When they intertwine, the indicator suggests that the market is moving sideways, or in a range, signaling a lack of clear trend (the "alligator" is "sleeping"). Traders use the Alligator Indicator to enter trades in trending markets and avoid trades in choppy, non-trending markets.
If bullish reversal bar's high is not below and bearish reversal bar's low is not above all three Alligator's lines (jaw, lips, teeth) they cannot be interpreted as these types of bars. It can be explained as following: if we are waiting for the bullish reversal bar it shall be reversal from downtrend. If price is not below all three lines it can't be interpret as the downtrend according to this method. The opposite is true for the bearish reversal bar.
All described above are obligatory conditions for reversal bar, now let's discuss two not obligatory conditions. The first one is Market Facilitation Index (MFI) restriction. Let's briefly look what is MFI. The Market Facilitation Index (MFI) is a technical indicator that measures the price movement per unit of volume, helping traders gauge the efficiency of price movement in relation to trading volume. Here's how you can calculate it:
MFI = (High−Low)/Volume
MFI can be used in combination with volume, so we can divide 4 states. Bill Williams introduced these to help traders interpret the interaction between volume and price movement. Here’s a quick summary:
Green Window (Increased MFI & Increased Volume): Indicates strong momentum with both price and volume increasing. Often a sign of trend continuation, as both buying and selling interest are rising.
Fake Window (Increased MFI & Decreased Volume): Shows that price is moving but with lower volume, suggesting weak support for the trend. This can signal a potential end of the current trend.
Squat Window (Decreased MFI & Increased Volume): Shows high volume but little price movement, indicating a tug-of-war between buyers and sellers. This often precedes a breakout as the pressure builds.
Fade Window (Decreased MFI & Decreased Volume): Indicates a lack of interest from both buyers and sellers, leading to lower momentum. This typically happens in range-bound markets and may signal consolidation before a new move.
For our purposes we are interested in squat bars. This is the sign that volume cannot move the price easily. This type of bar increases the probability of trend reversal. In this indicator we added to enable the MFI filter of reversal bars. If potential reversal bar or two preceding bars have squat state this bar can be interpret as a reversal one.
The second additional filter is Awesome Oscillator. The Awesome Oscillator (AO), developed by Bill Williams, is a momentum indicator that measures market momentum by comparing recent price action to a longer historical context. It helps traders identify potential trend reversals and the strength of trends. Formula:
AO = SMA5(Median Price) − SMA34(Median Price)
where:
Median Price = (High + Low) / 2
SMA5 = 5-period Simple Moving Average of the Median Price
SMA 34 = 34-period Simple Moving Average of the Median Price
If AO is decreasing momentum is bearish, if increasing - bullish. According to Bill Williams approach reversal bars are the potential trades against the trend. As a result we added second filter for bullish reversal bars AO shall be decreasing, for bearish increasing.
How to use indicator
Apply it to desired chart and time frame. It works on every time frame.
Setup the filters with the "Enable MFI" and "Enable AO" checkboxes in the settings. By default they are turned on.
Analyze the price action. Indicator plotted the white line, this is the lips of an Alligator. It will help you to understand how price is moving in comparison to lips line. Indicator will print the green dot and text "BULL" below it current bar is bullish reversal. It will print the red dot and text "BEAR" above it if current bar is interpreted by algorithm as a bearish reversal.
Set up the alerts if it's needed. Indicator has two custom alerts called "Bullish reversal bar has been printed" and "Bearish reversal bar has been printed"
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test indicators before live implementation.
EMD Oscillator (Zeiierman)█ Overview
The Empirical Mode Decomposition (EMD) Oscillator is an advanced indicator designed to analyze market trends and cycles with high precision. It breaks down complex price data into simpler parts called Intrinsic Mode Functions (IMFs), allowing traders to see underlying patterns and trends that aren’t visible with traditional indicators. The result is a dynamic oscillator that provides insights into overbought and oversold conditions, as well as trend direction and strength. This indicator is suitable for all types of traders, from beginners to advanced, looking to gain deeper insights into market behavior.
█ How It Works
The core of this indicator is the Empirical Mode Decomposition (EMD) process, a method typically used in signal processing and advanced scientific fields. It works by breaking down price data into various “layers,” each representing different frequencies in the market’s movement. Imagine peeling layers off an onion: each layer (or IMF) reveals a different aspect of the price action.
⚪ Data Decomposition (Sifting): The indicator “sifts” through historical price data to detect natural oscillations within it. Each oscillation (or IMF) highlights a unique rhythm in price behavior, from rapid fluctuations to broader, slower trends.
⚪ Adaptive Signal Reconstruction: The EMD Oscillator allows traders to select specific IMFs for a custom signal reconstruction. This reconstructed signal provides a composite view of market behavior, showing both short-term cycles and long-term trends based on which IMFs are included.
⚪ Normalization: To make the oscillator easy to interpret, the reconstructed signal is scaled between -1 and 1. This normalization lets traders quickly spot overbought and oversold conditions, as well as trend direction, without worrying about the raw magnitude of price changes.
The indicator adapts to changing market conditions, making it effective for identifying real-time market cycles and potential turning points.
█ Key Calculations: The Math Behind the EMD Oscillator
The EMD Oscillator’s advanced nature lies in its high-level mathematical operations:
⚪ Intrinsic Mode Functions (IMFs)
IMFs are extracted from the data and act as the building blocks of this indicator. Each IMF is a unique oscillation within the price data, similar to how a band might be divided into treble, mid, and bass frequencies. In the EMD Oscillator:
Higher-Frequency IMFs: Represent short-term market “noise” and quick fluctuations.
Lower-Frequency IMFs: Capture broader market trends, showing more stable and long-term patterns.
⚪ Sifting Process: The Heart of EMD
The sifting process isolates each IMF by repeatedly separating and refining the data. Think of this as filtering water through finer and finer mesh sieves until only the clearest parts remain. Mathematically, it involves:
Extrema Detection: Finding all peaks and troughs (local maxima and minima) in the data.
Envelope Calculation: Smoothing these peaks and troughs into upper and lower envelopes using cubic spline interpolation (a method for creating smooth curves between data points).
Mean Removal: Calculating the average between these envelopes and subtracting it from the data to isolate one IMF. This process repeats until the IMF criteria are met, resulting in a clean oscillation without trend influences.
⚪ Spline Interpolation
The cubic spline interpolation is an advanced mathematical technique that allows smooth curves between points, which is essential for creating the upper and lower envelopes around each IMF. This interpolation solves a tridiagonal matrix (a specialized mathematical problem) to ensure that the envelopes align smoothly with the data’s natural oscillations.
To give a relatable example: imagine drawing a smooth line that passes through each peak and trough of a mountain range on a map. Spline interpolation ensures that line is as smooth and close to reality as possible. Achieving this in Pine Script is technically demanding and demonstrates a high level of mathematical coding.
⚪ Amplitude Normalization
To make the oscillator more readable, the final signal is scaled by its maximum amplitude. This amplitude normalization brings the oscillator into a range of -1 to 1, creating consistent signals regardless of price level or volatility.
█ Comparison with Other Signal Processing Methods
Unlike standard technical indicators that often rely on fixed parameters or pre-defined mathematical functions, the EMD adapts to the data itself, capturing natural cycles and irregularities in real-time. For example, if the market becomes more volatile, EMD adjusts automatically to reflect this without requiring parameter changes from the trader. In this way, it behaves more like a “smart” indicator, intuitively adapting to the market, unlike most traditional methods. EMD’s adaptive approach is akin to AI’s ability to learn from data, making it both resilient and robust in non-linear markets. This makes it a great alternative to methods that struggle in volatile environments, such as fixed-parameter oscillators or moving averages.
█ How to Use
Identify Market Cycles and Trends: Use the EMD Oscillator to spot market cycles that represent phases of buying or selling pressure. The smoothed version of the oscillator can help highlight broader trends, while the main oscillator reveals immediate cycles.
Spot Overbought and Oversold Levels: When the oscillator approaches +1 or -1, it may indicate that the market is overbought or oversold, signaling potential entry or exit points.
Confirm Divergences: If the price movement diverges from the oscillator's direction, it may indicate a potential reversal. For example, if prices make higher highs while the oscillator makes lower highs, it could be a sign of weakening trend strength.
█ Settings
Window Length (N): Defines the number of historical bars used for EMD analysis. A larger window captures more data but may slow down performance.
Number of IMFs (M): Sets how many IMFs to extract. Higher values allow for a more detailed decomposition, isolating smaller cycles within the data.
Amplitude Window (L): Controls the length of the window used for amplitude calculation, affecting the smoothness of the normalized oscillator.
Extraction Range (IMF Start and End): Allows you to select which IMFs to include in the reconstructed signal. Starting with lower IMFs captures faster cycles, while ending with higher IMFs includes slower, trend-based components.
Sifting Stopping Criterion (S-number): Sets how precisely each IMF should be refined. Higher values yield more accurate IMFs but take longer to compute.
Max Sifting Iterations (num_siftings): Limits the number of sifting iterations for each IMF extraction, balancing between performance and accuracy.
Source: The price data used for the analysis, such as close or open prices. This determines which price movements are decomposed by the indicator.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
Dynamic Score Supertrend [QuantAlgo]Dynamic Score Supertrend 📈🚀
The Dynamic Score Supertrend by QuantAlgo introduces a sophisticated trend-following tool that combines the well-known Supertrend indicator with an innovative dynamic trend scoring technique . By tracking market momentum through a scoring system that evaluates price behavior over a customizable window, this indicator adapts to changing market conditions. The result is a clearer, more adaptive tool that helps traders and investors detect and capitalize on trend shifts with greater precision.
💫 Conceptual Foundation and Innovation
At the core of the Dynamic Score Supertrend is the dynamic trend score system , which measures price movements relative to the Supertrend’s upper and lower bands. This scoring technique adds a layer of trend validation, assessing the strength of price trends over time. Unlike traditional Supertrend indicators that rely solely on ATR calculations, this system incorporates a scoring mechanism that provides more insight into trend direction, allowing traders and investors to navigate both trending and choppy markets with greater confidence.
✨ Technical Composition and Calculation
The Dynamic Score Supertrend utilizes the Average True Range (ATR) to calculate the upper and lower Supertrend bands. The dynamic trend scoring technique then compares the price to these bands over a customizable window, generating a trend score that reflects the current market direction.
When the score exceeds the uptrend or downtrend thresholds, it signals a possible shift in market direction. By adjusting the ATR settings and window length, the indicator becomes more adaptable to different market conditions, from steady trends to periods of higher volatility. This customization allows users to refine the Supertrend’s sensitivity and responsiveness based on their trading or investing style.
📈 Features and Practical Applications
Customizable ATR Settings: Adjust the ATR length and multiplier to control the sensitivity of the Supertrend bands. This allows the indicator to smooth out noise or react more quickly to price shifts, depending on market conditions.
Window Length for Dynamic Scoring: Modify the window length to adjust how many data points the scoring system considers, allowing you to tailor the indicator’s responsiveness to short-term or long-term trends.
Uptrend/Downtrend Thresholds: Set thresholds for identifying trend signals. Increase these thresholds for more reliable signals in choppy markets, or lower them for more aggressive entry points in trending markets.
Bar and Background Coloring: Visual cues such as bar coloring and background fills highlight the direction of the current trend, making it easier to spot potential reversals and trend shifts.
Trend Confirmation: The dynamic trend score system provides a clearer confirmation of trend strength, helping you identify strong, sustained movements while filtering out false signals.
⚡️ How to Use
✅ Add the Indicator: Add the Dynamic Score Supertrend to your favourites, then apply it to your chart. Adjust the ATR length, multiplier, and dynamic score settings to suit your trading or investing strategy.
👀 Monitor Trend Shifts: Track price movements relative to the Supertrend bands and use the dynamic trend score to confirm the strength of a trend. Bar and background colors make it easy to visualize key trend shifts.
🔔 Set Alerts: Configure alerts when the dynamic trend score crosses key thresholds, so you can act on significant trend changes without constantly monitoring the charts.
🌟 Summary and Usage Tips
The Dynamic Score Supertrend by QuantAlgo is a robust trend-following tool that combines the power of the Supertrend with an advanced dynamic scoring system. This approach provides more adaptable and reliable trend signals, helping traders and investors make informed decisions in trending markets. The customizable ATR settings and scoring thresholds make it versatile across various market conditions, allowing you to fine-tune the indicator for both short-term momentum and long-term trend following. To maximize its effectiveness, adjust the settings based on current market volatility and use the visual cues to confirm trend shifts. The Dynamic Score Supertrend offers a refined, probabilistic approach to trading and investing, making it a valuable addition to your toolkit.
Killzones And Macros LibraryKillzones & Macros Library for Trading Sessions
This Pine Script library is designed to help traders identify and act during high-volatility trading windows, commonly referred to as "Killzones." These are specific times during the day when institutional traders are most active, resulting in increased liquidity and price movement. The library provides boolean fields that return true when the current time falls within one of the killzones or macroeconomic event windows, allowing for enhanced trade timing and precision.
Killzones Include:
London Open, New York Open, Midnight Open, London Lunch, New York PM, and more.
Capture high-volume periods like Power Hour, Equities Open, and Asian Range.
Macros:
Identify key moments like London 02:33, New York 08:50, and other significant times aligned with market movements or events.
This library is perfect for integrating into your custom strategies, backtesting, or setting alerts for optimal trade execution during major trading sessions and events.
ICT Asian Range and KillzonesThis TradingView indicator highlights key trading sessions and their price ranges on a chart. It identifies the Asian Range and the Killzones for both the London Open and New York Open sessions. Here’s a brief breakdown:
Asian Range:
Defines the high and low price levels during the Asian trading session (between the specified start and end hours, default 00:00 to 04:00 UTC).
Plots horizontal lines to mark the highest and lowest prices reached during the Asian session.
Adds labels showing the values of these high and low points after the session ends.
London and New York Killzones:
Identifies the “Killzones” or key trading windows for the London Open (default 06:00 to 09:00 UTC) and the New York Open (default 11:00 to 14:00 UTC).
Tracks the high and low price levels within these windows and plots rectangles ("boxes") on the chart to visualize these ranges.
The boxes are color-coded and customizable, indicating potential areas of high market activity or volatility.
Customizable Visuals:
Users can adjust the colors, border widths, and other visual properties for better clarity and chart integration.
[ALGOA+] Markov Chains Library by @metacamaleoLibrary "MarkovChains"
Markov Chains library by @metacamaleo. Created in 09/08/2024.
This library provides tools to calculate and visualize Markov Chain-based transition matrices and probabilities. This library supports two primary algorithms: a rolling window Markov Chain and a conditional Markov Chain (which operates based on specified conditions). The key concepts used include Markov Chain states, transition matrices, and future state probabilities based on past market conditions or indicators.
Key functions:
- `mc_rw()`: Builds a transition matrix using a rolling window Markov Chain, calculating probabilities based on a fixed length of historical data.
- `mc_cond()`: Builds a conditional Markov Chain transition matrix, calculating probabilities based on the current market condition or indicator state.
Basically, you will just need to use the above functions on your script to default outputs and displays.
Exported UDTs include:
- s_map: An UDT variable used to store a map with dummy states, i.e., if possible states are bullish, bearish, and neutral, and current is bullish, it will be stored
in a map with following keys and values: "bullish", 1; "bearish", 0; and "neutral", 0. You will only use it to customize your own script, otherwise, it´s only for internal use.
- mc_states: This UDT variable stores user inputs, calculations and MC outputs. As the above, you don´t need to use it, but you may get features to customize your own script.
For example, you may use mc.tm to get the transition matrix, or the prob map to customize the display. As you see, functions are all based on mc_states UDT. The s_map UDT is used within mc_states´s s array.
Optional exported functions include:
- `mc_table()`: Displays the transition matrix in a table format on the chart for easy visualization of the probabilities.
- `display_list()`: Displays a map (or array) of string and float/int values in a table format, used for showing transition counts or probabilities.
- `mc_prob()`: Calculates and displays probabilities for a given number of future bars based on the current state in the Markov Chain.
- `mc_all_states_prob()`: Calculates probabilities for all states for future bars, considering all possible transitions.
The above functions may be used to customize your outputs. Use the returned variable mc_states from mc_rw() and mc_cond() to display each of its matrix, maps or arrays using mc_table() (for matrices) and display_list() (for maps and arrays) if you desire to debug or track the calculation process.
See the examples in the end of this script.
Have good trading days!
Best regards,
@metacamaleo
-----------------------------
KEY FUNCTIONS
mc_rw(state, length, states, pred_length, show_table, show_prob, table_position, prob_position, font_size)
Builds the transition matrix for a rolling window Markov Chain.
Parameters:
state (string) : The current state of the market or system.
length (int) : The rolling window size.
states (array) : Array of strings representing the possible states in the Markov Chain.
pred_length (int) : The number of bars to predict into the future.
show_table (bool) : Boolean to show or hide the transition matrix table.
show_prob (bool) : Boolean to show or hide the probability table.
table_position (string) : Position of the transition matrix table on the chart.
prob_position (string) : Position of the probability list on the chart.
font_size (string) : Size of the table font.
Returns: The transition matrix and probabilities for future states.
mc_cond(state, condition, states, pred_length, show_table, show_prob, table_position, prob_position, font_size)
Builds the transition matrix for conditional Markov Chains.
Parameters:
state (string) : The current state of the market or system.
condition (string) : A string representing the condition.
states (array) : Array of strings representing the possible states in the Markov Chain.
pred_length (int) : The number of bars to predict into the future.
show_table (bool) : Boolean to show or hide the transition matrix table.
show_prob (bool) : Boolean to show or hide the probability table.
table_position (string) : Position of the transition matrix table on the chart.
prob_position (string) : Position of the probability list on the chart.
font_size (string) : Size of the table font.
Returns: The transition matrix and probabilities for future states based on the HMM.
Rolling Correlation with Bitcoin V1.1 [ADRIDEM]Overview
The Rolling Correlation with Bitcoin script is designed to offer a comprehensive view of the correlation between the selected ticker and Bitcoin. This script helps investors understand the relationship between the performance of the current ticker and Bitcoin over a rolling period, providing insights into their interconnected behavior. Below is a detailed presentation of the script and its unique features.
Unique Features of the New Script
Bitcoin Comparison : Allows users to compare the correlation of the current ticker with Bitcoin, providing an analysis of their relationship.
Customizable Rolling Window : Enables users to set the length for the rolling window, adapting to different market conditions and timeframes. The default value is 252 bars, which approximates one year of trading days, but it can be adjusted as needed.
Smoothing Option : Includes an option to apply a smoothing simple moving average (SMA) to the correlation coefficient, helping to reduce noise and highlight trends. The smoothing length is customizable, with a default value of 4 bars.
Visual Indicators : Plots the smoothed correlation coefficient between the current ticker and Bitcoin, with distinct colors for easy interpretation. Additionally, horizontal lines help identify key levels of correlation.
Dynamic Background Color : Adds dynamic background colors to highlight areas of strong positive and negative correlations, enhancing visual clarity.
Originality and Usefulness
This script uniquely combines the analysis of rolling correlation for a current ticker with Bitcoin, providing a comparative view of their relationship. The inclusion of a customizable rolling window and smoothing option enhances its adaptability and usefulness in various market conditions.
Signal Description
The script includes several features that highlight potential insights into the correlation between the assets:
Rolling Correlation with Bitcoin : Plotted as a red line, this represents the smoothed rolling correlation coefficient between the current ticker and Bitcoin.
Horizontal Lines and Background Color : Lines at -0.5, 0, and 0.5 help to quickly identify regions of strong negative, weak, and strong positive correlations.
These features assist in identifying the strength and direction of the relationship between the current ticker and Bitcoin.
Detailed Description
Input Variables
Length for Rolling Window (`length`) : Defines the range for calculating the rolling correlation coefficient. Default is 252.
Smoothing Length (`smoothing_length`) : The number of periods for the smoothing SMA. Default is 4.
Bitcoin Ticker (`bitcoin_ticker`) : The ticker symbol for Bitcoin. Default is "BINANCE:BTCUSDT".
Functionality
Correlation Calculation : The script calculates the daily returns for both Bitcoin and the current ticker and computes their rolling correlation coefficient.
```pine
bitcoin_close = request.security(bitcoin_ticker, timeframe.period, close)
bitcoin_dailyReturn = ta.change(bitcoin_close) / bitcoin_close
current_dailyReturn = ta.change(close) / close
rolling_correlation = ta.correlation(current_dailyReturn, bitcoin_dailyReturn, length)
```
Smoothing : A simple moving average is applied to the rolling correlation coefficient to smooth the data.
```pine
smoothed_correlation = ta.sma(rolling_correlation, smoothing_length)
```
Plotting : The script plots the smoothed rolling correlation coefficient and includes horizontal lines for key levels.
```pine
plot(smoothed_correlation, title="Rolling Correlation with Bitcoin", color=color.rgb(255, 82, 82, 50), linewidth=2)
h_neg1 = hline(-1, "-1 Line", color=color.gray)
h_neg05 = hline(-0.5, "-0.5 Line", color=color.red)
h0 = hline(0, "Zero Line", color=color.gray)
h_pos05 = hline(0.5, "0.5 Line", color=color.green)
h1 = hline(1, "1 Line", color=color.gray)
fill(h_neg1, h_neg05, color=color.rgb(255, 0, 0, 90), title="Strong Negative Correlation Background")
fill(h_neg05, h0, color=color.rgb(255, 165, 0, 90), title="Weak Negative Correlation Background")
fill(h0, h_pos05, color=color.rgb(255, 255, 0, 90), title="Weak Positive Correlation Background")
fill(h_pos05, h1, color=color.rgb(0, 255, 0, 90), title="Strong Positive Correlation Background")
```
How to Use
Configuring Inputs : Adjust the rolling window length and smoothing length as needed. Ensure the Bitcoin ticker is set to the desired asset for comparison.
Interpreting the Indicator : Use the plotted correlation coefficient and horizontal lines to assess the strength and direction of the relationship between the current ticker and Bitcoin.
Signal Confirmation : Look for periods of strong positive or negative correlation to identify potential co-movements or divergences. The background colors help to highlight these key levels.
This script provides a detailed comparative view of the correlation between the current ticker and Bitcoin, aiding in more informed decision-making by highlighting the strength and direction of their relationship.
Rolling Calmar Ratio with Ref Ticker V1.0 [ADRIDEM]Overview
The Rolling Calmar Ratio with Ref Ticker script is designed to offer a comprehensive view of the Calmar ratios for a selected reference ticker and the current ticker. This script helps investors compare risk-adjusted returns between two assets over a rolling period, providing insights into their relative performance and risk. Below is a detailed presentation of the script and its unique features.
Unique Features of the New Script
Reference Ticker Comparison : Allows users to compare the Calmar ratio of the current ticker with a reference ticker, providing a relative performance analysis. Default ticker is BTCUSDT but can be changed.
Customizable Rolling Window : Enables users to set the length for the rolling window, adapting to different market conditions and timeframes. The default value is 252 bars, which approximates one year of trading days, but it can be adjusted as needed.
Smoothing Option : Includes an option to apply a smoothing simple moving average (SMA) to the Calmar ratios, helping to reduce noise and highlight trends. The smoothing length is customizable, with a default value of 14 bars.
Visual Indicators : Plots the smoothed Calmar ratios for both the reference ticker and the current ticker, with distinct colors for easy comparison. Additionally, a horizontal line helps identify key levels.
Dynamic Background Color : Adds a gray-blue transparent background between the Calmar ratio levels of 0 and 1, highlighting the critical region where risk-adjusted returns are assessed.
Originality and Usefulness
This script uniquely combines the analysis of Calmar ratios for a reference ticker and the current ticker, providing a comparative view of their risk-adjusted returns. The inclusion of a customizable rolling window and smoothing option enhances its adaptability and usefulness in various market conditions.
Signal Description
The script includes several features that highlight potential insights into the risk-adjusted returns of the assets:
Reference Ticker Calmar Ratio : Plotted as a red line, this represents the smoothed Calmar ratio for the user-selected reference ticker.
Current Ticker Calmar Ratio : Plotted as a white line, this represents the smoothed Calmar ratio for the current ticker.
Horizontal Lines and Background Color : A line at 0 helps to quickly identify the regions of positive and negative risk-adjusted returns.
These features assist in identifying relative performance differences and confirming the strength or weakness of risk-adjusted returns between the two tickers.
Detailed Description
Input Variables
Length for Rolling Window (`length`) : Defines the range for calculating the rolling Calmar ratio. Default is 252.
Smoothing Length (`smoothing_length`) : The number of periods for the smoothing SMA. Default is 14.
Reference Ticker (`ref_ticker`) : The ticker symbol for the reference asset. Default is "BINANCE:BTCUSDT".
Functionality
Calmar Ratio Calculation : The script calculates the cumulative returns and maximum drawdown for both the reference ticker and the current ticker. These values are used to compute the Calmar ratio.
```pine
ref_cumulativeReturn = (ref_close / ta.valuewhen(ta.lowest(ref_close, length) == ref_close, ref_close, 0)) - 1
ref_rollingMax = ta.highest(ref_close, length)
ref_drawdown = (ref_close - ref_rollingMax) / ref_rollingMax
ref_maxDrawdown = ta.lowest(ref_drawdown, length)
ref_calmarRatio = ref_cumulativeReturn / math.abs(ref_maxDrawdown)
current_cumulativeReturn = (close / ta.valuewhen(ta.lowest(close, length) == close, close, 0)) - 1
current_rollingMax = ta.highest(close, length)
current_drawdown = (close - current_rollingMax) / current_rollingMax
current_maxDrawdown = ta.lowest(current_drawdown, length)
current_calmarRatio = current_cumulativeReturn / math.abs(current_maxDrawdown)
```
Smoothing : A simple moving average is applied to the Calmar ratios to smooth the data.
```pine
smoothed_ref_calmarRatio = ta.sma(ref_calmarRatio, smoothing_length)
smoothed_current_calmarRatio = ta.sma(current_calmarRatio, smoothing_length)
```
Plotting : The script plots the smoothed Calmar ratios for both the reference ticker and the current ticker, along with a horizontal line.
```pine
plot(smoothed_ref_calmarRatio, title="Ref Ticker Calmar Ratio", color=color.rgb(255, 82, 82, 50), linewidth=2)
plot(smoothed_current_calmarRatio, title="Current Ticker Calmar Ratio", color=color.white, linewidth=2)
h0 = hline(0, "Zero Line", color=color.gray)
fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
```
How to Use
Configuring Inputs : Adjust the detection length and smoothing length as needed. Set the reference ticker to the desired asset for comparison.
Interpreting the Indicator : Use the plotted Calmar ratios and horizontal line to assess the relative risk-adjusted returns of the reference and current tickers.
Signal Confirmation : Look for differences in the Calmar ratios to identify potential performance advantages or weaknesses. The horizontal line helps to highlight key levels of risk-adjusted returns.
This script provides a detailed comparative view of risk-adjusted returns, aiding in more informed decision-making by highlighting key differences between the reference ticker and the current ticker.
Rolling Sortino Ratio with Ref Ticker V1.0 [ADRIDEM]Overview
The Rolling Sortino Ratio with Ref Ticker script is designed to offer a comprehensive view of the Sortino ratios for a selected reference ticker and the current ticker. This script helps investors compare risk-adjusted returns between two assets over a rolling period, providing insights into their relative performance and risk. Below is a detailed presentation of the script and its unique features.
Unique Features of the New Script
Reference Ticker Comparison : Allows users to compare the Sortino ratio of the current ticker with a reference ticker, providing a relative performance analysis. Default ticker is BTCUSDT but can be changed.
Customizable Rolling Window : Enables users to set the length for the rolling window, adapting to different market conditions and timeframes. The default value is 252 bars, which approximates one year of trading days, but it can be adjusted as needed.
Smoothing Option : Includes an option to apply a smoothing simple moving average (SMA) to the Sortino ratios, helping to reduce noise and highlight trends. The smoothing length is customizable, with a default value of 4 bars.
Visual Indicators : Plots the smoothed Sortino ratios for both the reference ticker and the current ticker, with distinct colors for easy comparison. Additionally, horizontal lines and a shaded background help identify key levels.
Dynamic Background Color : Adds a gray-blue transparent background between the Sortino ratio levels of 0 and 1, highlighting the critical region where risk-adjusted returns are assessed.
Originality and Usefulness
This script uniquely combines the analysis of Sortino ratios for a reference ticker and the current ticker, providing a comparative view of their risk-adjusted returns. The inclusion of a customizable rolling window and smoothing option enhances its adaptability and usefulness in various market conditions.
Signal Description
The script includes several features that highlight potential insights into the risk-adjusted returns of the assets:
Reference Ticker Sortino Ratio : Plotted as a red line, this represents the smoothed Sortino ratio for the user-selected reference ticker.
Current Ticker Sortino Ratio : Plotted as a white line, this represents the smoothed Sortino ratio for the current ticker.
Horizontal Lines and Background Color : Lines at 0 and 1, along with a shaded background between these levels, help to quickly identify the regions of positive and strong risk-adjusted returns.
These features assist in identifying relative performance differences and confirming the strength or weakness of risk-adjusted returns between the two tickers.
Detailed Description
Input Variables
Length for Rolling Window (`length`) : Defines the range for calculating the rolling Sortino ratio. Default is 252.
Smoothing Length (`smoothing_length`) : The number of periods for the smoothing SMA. Default is 4.
Annual Risk-Free Rate (`riskFreeRate`) : The annual risk-free rate used in the Sortino ratio calculation. Default is 0.02 (2%).
Reference Ticker (`ref_ticker`) : The ticker symbol for the reference asset. Default is "BINANCE:BTCUSDT".
Functionality
Sortino Ratio Calculation : The script calculates the daily returns, mean return, and downside deviation for both the reference ticker and the current ticker. These values are used to compute the annualized Sortino ratio.
```pine
ref_dailyReturn = ta.change(ref_close) / ref_close
ref_meanReturn = ta.sma(ref_dailyReturn, length)
ref_downsideDeviation = ta.stdev(math.min(ref_dailyReturn, 0), length)
ref_annualizedReturn = ref_meanReturn * length
ref_annualizedDownsideDev = ref_downsideDeviation * math.sqrt(length)
ref_sortinoRatio = (ref_annualizedReturn - riskFreeRate) / ref_annualizedDownsideDev
```
Smoothing : A simple moving average is applied to the Sortino ratios to smooth the data.
```pine
smoothed_ref_sortinoRatio = ta.sma(ref_sortinoRatio, smoothing_length)
smoothed_current_sortinoRatio = ta.sma(current_sortinoRatio, smoothing_length)
```
Plotting : The script plots the smoothed Sortino ratios for both the reference ticker and the current ticker, along with horizontal lines and a shaded background.
```pine
plot(smoothed_ref_sortinoRatio, title="Ref Ticker Sortino Ratio", color=color.rgb(255, 82, 82, 50), linewidth=2)
plot(smoothed_current_sortinoRatio, title="Current Ticker Sortino Ratio", color=color.white, linewidth=2)
h0 = hline(0, "Zero Line", color=color.gray)
h1 = hline(1, "One Line", color=color.gray)
fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
```
How to Use
Configuring Inputs : Adjust the detection length, smoothing length, and risk-free rate as needed. Set the reference ticker to the desired asset for comparison.
Interpreting the Indicator : Use the plotted Sortino ratios and background shading to assess the relative risk-adjusted returns of the reference and current tickers.
Signal Confirmation : Look for differences in the Sortino ratios to identify potential performance advantages or weaknesses. The background shading helps to highlight key levels of risk-adjusted returns.
This script provides a detailed comparative view of risk-adjusted returns, aiding in more informed decision-making by highlighting key differences between the reference ticker and the current ticker.
Rolling Sharpe Ratio with Ref Ticker V1.0 [ADRIDEM]Overview
The Rolling Sharpe Ratio with Ref Ticker script is designed to offer a comprehensive view of the Sharpe ratios for a selected reference ticker and the current ticker. This script helps investors compare risk-adjusted returns between two assets over a rolling period, providing insights into their relative performance and risk. Below is a detailed presentation of the script and its unique features.
Unique Features of the New Script
Reference Ticker Comparison : Allows users to compare the Sharpe ratio of the current ticker with a reference ticker, providing a relative performance analysis. Default ticker is BTCUSDT but can be changed.
Customizable Rolling Window : Enables users to set the length for the rolling window, adapting to different market conditions and timeframes. The default value is 252 bars, which approximates one year of trading days, but it can be adjusted as needed.
Smoothing Option : Includes an option to apply a smoothing simple moving average (SMA) to the Sharpe ratios, helping to reduce noise and highlight trends. The smoothing length is customizable, with a default value of 4 bars.
Visual Indicators : Plots the smoothed Sharpe ratios for both the reference ticker and the current ticker, with distinct colors for easy comparison. Additionally, horizontal lines and a shaded background help identify key levels.
Dynamic Background Color : Adds a gray-blue transparent background between the Sharpe ratio levels of 0 and 1, highlighting the critical region where risk-adjusted returns are assessed.
Originality and Usefulness
This script uniquely combines the analysis of Sharpe ratios for a reference ticker and the current ticker, providing a comparative view of their risk-adjusted returns. The inclusion of a customizable rolling window and smoothing option enhances its adaptability and usefulness in various market conditions.
Signal Description
The script includes several features that highlight potential insights into the risk-adjusted returns of the assets:
Reference Ticker Sharpe Ratio : Plotted as a red line, this represents the smoothed Sharpe ratio for the user-selected reference ticker.
Current Ticker Sharpe Ratio : Plotted as a white line, this represents the smoothed Sharpe ratio for the current ticker.
Horizontal Lines and Background Color : Lines at 0 and 1, along with a shaded background between these levels, help to quickly identify the regions of positive and strong risk-adjusted returns.
These features assist in identifying relative performance differences and confirming the strength or weakness of risk-adjusted returns between the two tickers.
Detailed Description
Input Variables
Length for Rolling Window (`length`) : Defines the range for calculating the rolling Sharpe ratio. Default is 252.
Smoothing Length (`smoothing_length`) : The number of periods for the smoothing SMA. Default is 4.
Annual Risk-Free Rate (`riskFreeRate`) : The annual risk-free rate used in the Sharpe ratio calculation. Default is 0.02 (2%).
Reference Ticker (`ref_ticker`) : The ticker symbol for the reference asset. Default is "BINANCE:BTCUSDT".
Functionality
Sharpe Ratio Calculation : The script calculates the daily returns, mean return, and standard deviation for both the reference ticker and the current ticker. These values are used to compute the annualized Sharpe ratio.
```pine
ref_dailyReturn = ta.change(ref_close) / ref_close
ref_meanReturn = ta.sma(ref_dailyReturn, length)
ref_stdDevReturn = ta.stdev(ref_dailyReturn, length)
ref_annualizedReturn = ref_meanReturn * length
ref_annualizedStdDev = ref_stdDevReturn * math.sqrt(length)
ref_sharpeRatio = (ref_annualizedReturn - riskFreeRate) / ref_annualizedStdDev
```
Smoothing : A simple moving average is applied to the Sharpe ratios to smooth the data.
```pine
smoothed_ref_sharpeRatio = ta.sma(ref_sharpeRatio, smoothing_length)
smoothed_current_sharpeRatio = ta.sma(current_sharpeRatio, smoothing_length)
```
Plotting : The script plots the smoothed Sharpe ratios for both the reference ticker and the current ticker, along with horizontal lines and a shaded background.
```pine
plot(smoothed_ref_sharpeRatio, title="Ref Ticker Sharpe Ratio", color=color.rgb(255, 82, 82, 50), linewidth=2)
plot(smoothed_current_sharpeRatio, title="Current Ticker Sharpe Ratio", color=color.white, linewidth=2)
h0 = hline(0, "Zero Line", color=color.gray)
h1 = hline(1, "One Line", color=color.gray)
fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
```
How to Use
Configuring Inputs : Adjust the detection length, smoothing length, and risk-free rate as needed. Set the reference ticker to the desired asset for comparison.
Interpreting the Indicator : Use the plotted Sharpe ratios and background shading to assess the relative risk-adjusted returns of the reference and current tickers.
Signal Confirmation : Look for differences in the Sharpe ratios to identify potential performance advantages or weaknesses. The background shading helps to highlight key levels of risk-adjusted returns.
This script provides a detailed comparative view of risk-adjusted returns, aiding in more informed decision-making by highlighting key differences between the reference ticker and the current ticker.
Double Vegas SuperTrend Enhanced - Strategy [presentTrading]
█ Introduction and How It Is Different
The "Double Vegas SuperTrend Enhanced" strategy is a sophisticated trading system that combines two Vegas SuperTrend Enhanced. Very Powerful!
Let's celebrate the joy of Children's Day on June 1st! Enjoyyy!
BTCUSD LS performance
The strategy aims to pinpoint market trends with greater accuracy and generate trades that align with the overall market direction.
This approach differentiates itself by integrating volatility adjustments and leveraging the Vegas Channel's width to refine the SuperTrend calculations, resulting in a dynamic and responsive trading system.
Additionally, the strategy incorporates customizable take-profit and stop-loss levels, providing traders with a robust framework for risk management.
-> check Vegas SuperTrend Enhanced - Strategy
█ Strategy, How It Works: Detailed Explanation
🔶 Vegas Channel and SuperTrend Calculations
The strategy initiates by calculating the Vegas Channel, which is derived from a simple moving average (SMA) and the standard deviation (STD) of the closing prices over a specified window length. This channel helps in measuring market volatility and forms the basis for adjusting the SuperTrend indicator.
Vegas Channel Calculation:
- vegasMovingAverage = SMA(close, vegasWindow)
- vegasChannelStdDev = STD(close, vegasWindow)
- vegasChannelUpper = vegasMovingAverage + vegasChannelStdDev
- vegasChannelLower = vegasMovingAverage - vegasChannelStdDev
SuperTrend Multiplier Adjustment:
- channelVolatilityWidth = vegasChannelUpper - vegasChannelLower
- adjustedMultiplier = superTrendMultiplierBase + volatilityAdjustmentFactor * (channelVolatilityWidth / vegasMovingAverage)
The adjusted multiplier enhances the SuperTrend's sensitivity to market volatility, making it more adaptable to changing market conditions.
BTCUSD Local picture.
🔶 Average True Range (ATR) and SuperTrend Values
The ATR is computed over a specified period to measure market volatility. Using the ATR and the adjusted multiplier, the SuperTrend upper and lower levels are determined.
ATR Calculation:
- averageTrueRange = ATR(atrPeriod)
**SuperTrend Calculation:**
- superTrendUpper = hlc3 - (adjustedMultiplier * averageTrueRange)
- superTrendLower = hlc3 + (adjustedMultiplier * averageTrueRange)
The SuperTrend levels are continuously updated based on the previous values and the current market trend direction. The market trend is determined by comparing the closing prices with the SuperTrend levels.
Trend Direction:
- If close > superTrendLowerPrev, then marketTrend = 1 (bullish)
- If close < superTrendUpperPrev, then marketTrend = -1 (bearish)
🔶 Trade Entry and Exit Conditions
The strategy generates trade signals based on the alignment of both SuperTrends. Trades are executed only when both SuperTrends indicate the same market direction.
Entry Conditions:
- Long Position: Both SuperTrends must signal a bullish trend.
- Short Position: Both SuperTrends must signal a bearish trend.
Exit Conditions:
- Positions are exited if either SuperTrend reverses its trend direction.
- Additional conditions include holding periods and configurable take-profit and stop-loss levels.
█ Trade Direction
The strategy allows traders to specify the desired trade direction through a customizable input setting. Options include:
- Long: Only enter long positions.
- Short: Only enter short positions.
- Both: Enter both long and short positions based on the market conditions.
█ Usage
To utilize the "Double Vegas SuperTrend Enhanced" strategy, traders need to configure the input settings according to their trading preferences and market conditions. The strategy includes parameters for ATR periods, Vegas Channel window lengths, SuperTrend multipliers, volatility adjustment factors, and risk management settings such as hold days, take-profit, and stop-loss percentages.
█ Default Settings
The strategy comes with default settings that can be adjusted to fit individual trading styles:
- trade Direction: Both (allows trading in both long and short directions for maximum flexibility).
- ATR Periods: 10 for SuperTrend 1 and 5 for SuperTrend 2 (shorter ATR period results in more sensitivity to recent price movements).
- Vegas Window Lengths: 100 for SuperTrend 1 and 200 for SuperTrend 2 (longer window length results in smoother moving averages and less sensitivity to short-term volatility).
- SuperTrend Multipliers: 5 for SuperTrend 1 and 7 for SuperTrend 2 (higher multipliers lead to wider SuperTrend channels, reducing the frequency of trades).
- Volatility Adjustment Factors: 5 for SuperTrend 1 and 7 for SuperTrend 2 (higher adjustment factors increase the responsiveness to changes in market volatility).
- Hold Days: 5 (defines the minimum duration a position is held, ensuring trades are not exited prematurely).
- Take Profit: 30% (sets the target profit level to lock in gains).
- Stop Loss: 20% (sets the maximum acceptable loss level to mitigate risk).