Auto Swing TPAutomatic TP generator from recent swing highs and swing lows
Multiple long & short TPs from current price are displayed.
Results will differ by timeframe.
The main parameter is the "cell size" which is the least significant price move for the current asset. The default value of 0.4% is optimized for crypto. You may want to use less for less volatile asset classes.
How it works
We divide price into cells of a certain percent sizes, mainly because this makes the computation a lot easier.
We note in which bar every price cell was last visited. We take the distance to the current bar and then the logarithm of that to a certain base (the "time dimension"). Using a logarithm gives a nice balance of near-term and long-term targets. We call that logarithmic value the "level" of that price cell.
If a price cell has a significantly higher or lower level (at least by +2 or -2) than the cell above or below, this is considered a possible TP area.
Finally we check if the trade makes sense (meaning is of a certain size, at least 10 cells by default). If yes, we reduce the TP by a bit (by default 2 cells) and add it to the chart.
指标和策略
Sector Relative Strength [Afnan]This indicator calculates and displays the relative strength (RS) of multiple sectors against a chosen benchmark. It allows you to quickly compare the performance of various sectors within any global stock market. While the default settings are configured for the Indian stock market , this tool is not limited to it; you can use it for any market by selecting the appropriate benchmark and sector indices.
📊 Key Features ⚙️
Customizable Benchmark: Select any symbol as your benchmark for relative strength calculation. The default benchmark is set to `NSE:CNX100`. This allows for global market analysis by selecting the appropriate benchmark index of any country.
Multiple Sectors: Analyze up to 23 different sector indices. The default settings include major NSE sector indices. This can be customized to any market by using the relevant sector indices of that country.
Individual Sector Control: Toggle the visibility of each sector's RS on the chart.
Color-Coded Plots: Each sector's RS is plotted with a distinct color for easy identification.
Adjustable Lookback Period: Customize the lookback period for RS calculation.
Interactive Table: A sortable table displays the current RS values for all visible sectors, allowing for quick ranking.
Table Customization: Adjust the table's position, text size, and visibility.
Zero Line: A horizontal line at zero provides a reference point for RS values.
🧭 How to Use 🗺️
Add the indicator to your TradingView chart.
Select your desired benchmark symbol. The default is `NSE:CNX100`. For example, use SPY for the US market, or DAX for the German market.
Adjust the lookback period as needed.
Enable/disable the sector indices you want to analyze. The default includes major NSE sector indices like `NSE:CNXIT`, `NSE:CNXAUTO`, etc.
Customize the table's appearance as needed.
Observe the RS plots and the table to identify sectors with relative strength or weakness.
📝 Note 💡
This indicator is designed for sectorial analysis. You can use it with any market by selecting the appropriate benchmark and sector indices.
The default settings are configured for the Indian stock market with `NSE:CNX100` as the benchmark and major NSE sector indices pre-selected.
The relative strength calculation is based on the price change of the sector index compared to the benchmark over the lookback period.
Positive RS values indicate relative outperformance, while negative values indicate relative underperformance.
👨💻 Developer 🛠️
Afnan Tajuddin
Weekly Open LineThis indicator displays the weekly open price on the chart. It automatically updates every Monday to reflect the opening price of the current week. A dashed line is drawn to indicate the weekly open, and a label stating "Monday" is shown on each Monday for easy identification.
Features:
Automatically calculates the weekly open on Mondays.
Displays a dashed line at the weekly open price.
Labels the weekly open with the text "Monday" for visibility.
Indikator ini menampilkan harga open mingguan di grafik. Indikator ini secara otomatis diperbarui setiap hari Senin untuk mencerminkan harga pembukaan minggu berjalan. Garis putus-putus digambar untuk menunjukkan open mingguan, dan sebuah label yang menyatakan "Moday" ditampilkan setiap hari Senin untuk memudahkan identifikasi.
Market Open Levels v3This indicator "Market Open Levels v3" allows a chart user to automatically display up to 20 previous price levels at the open price of up to 8 different markets simultaneously on one indicator.
The user can specify custom labels for each market's price level, as well as adjust the GMT Offset to allow for market open times in a different timezone than the chart's displayed time.
Displays price level at specified market open times. For instance, if a user specifies a market opens at 08:00, then a price level (horizontal line) will be drawn at the most recent 08:00 candle's open price (if GMT Offset is set to 0).
See tooltips for more information on specific inputs.
Smart DCA Strategy (Public)INSPIRATION
While Dollar Cost Averaging (DCA) is a popular and stress-free investment approach, I noticed an opportunity for enhancement. Standard DCA involves buying consistently, regardless of market conditions, which can sometimes mean missing out on optimal investment opportunities. This led me to develop the Smart DCA Strategy – a 'set and forget' method like traditional DCA, but with an intelligent twist to boost its effectiveness.
The goal was to build something more profitable than a standard DCA strategy so it was equally important that this indicator could backtest its own results in an A/B test manner against the regular DCA strategy.
WHY IS IT SMART?
The key to this strategy is its dynamic approach: buying aggressively when the market shows signs of being oversold, and sitting on the sidelines when it's not. This approach aims to optimize entry points, enhancing the potential for better returns while maintaining the simplicity and low stress of DCA.
WHAT THIS STRATEGY IS, AND IS NOT
This is an investment style strategy. It is designed to improve upon the common standard DCA investment strategy. It is therefore NOT a day trading strategy. Feel free to experiment with various timeframes, but it was designed to be used on a daily timeframe and that's how I recommend it to be used.
You may also go months without any buy signals during bull markets, but remember that is exactly the point of the strategy - to keep your buying power on the sidelines until the markets have significantly pulled back. You need to be patient and trust in the historical backtesting you have performed.
HOW IT WORKS
The Smart DCA Strategy leverages a creative approach to using Moving Averages to identify the most opportune moments to buy. A trigger occurs when a daily candle, in its entirety including the high wick, closes below the threshold line or box plotted on the chart. The indicator is designed to facilitate both backtesting and live trading.
HOW TO USE
Settings:
The input parameters for tuning have been intentionally simplified in an effort to prevent users falling into the overfitting trap.
The main control is the Buying strictness scale setting. Setting this to a lower value will provide more buying days (less strict) while higher values mean less buying days (more strict). In my testing I've found level 9 to provide good all round results.
Validation days is a setting to prevent triggering entries until the asset has spent a given number of days (candles) in the overbought state. Increasing this makes entries stricter. I've found 0 to give the best results across most assets.
In the backtest settings you can also configure how much to buy for each day an entry triggers. Blind buy size is the amount you would buy every day in a standard DCA strategy. Smart buy size is the amount you would buy each day a Smart DCA entry is triggered.
You can also experiment with backtesting your strategy over different historical datasets by using the Start date and End date settings. The results table will not calculate for any trades outside what you've set in the date range settings.
Backtesting:
When backtesting you should use the results table on the top right to tune and optimise the results of your strategy. As with all backtests, be careful to avoid overfitting the parameters. It's better to have a setup which works well across many currencies and historical periods than a setup which is excellent on one dataset but bad on most others. This gives a much higher probability that it will be effective when you move to live trading.
The results table provides a clear visual representation as to which strategy, standard or smart, is more profitable for the given dataset. You will notice the columns are dynamically coloured red and green. Their colour changes based on which strategy is more profitable in the A/B style backtest - green wins, red loses. The key metrics to focus on are GOA (Gain on Account) and Avg Cost.
Live Trading:
After you've finished backtesting you can proceed with configuring your alerts for live trading.
But first, you need to estimate the amount you should buy on each Smart DCA entry. We can use the Total invested row in the results table to calculate this. Assuming we're looking to trade on
BTCUSD
Decide how much USD you would spend each day to buy BTC if you were using a standard DCA strategy. Lets say that is $5 per day
Enter that USD amount in the Blind buy size settings box
Check the Blind Buy column in the results table. If we set the backtest date range to the last 10 years, we would expect the amount spent on blind buys over 10 years to be $18,250 given $5 each day
Next we need to tweak the value of the Smart buy size parameter in setting to get it as close as we can to the Total Invested amount for Blind Buy
By following this approach it means we will invest roughly the same amount into our Smart DCA strategy as we would have into a standard DCA strategy over any given time period.
After you have calculated the Smart buy size, you can go ahead and set up alerts on Smart DCA buy triggers.
BOT AUTOMATION
In an effort to maintain the 'set and forget' stress-free benefits of a standard DCA strategy, I have set my personal Smart DCA Strategy up to be automated. The bot runs on AWS and I have a fully functional project for the bot on my GitHub account. Just reach out if you would like me to point you towards it. You can also hook this into any other 3rd party trade automation system of your choice using the pre-configured alerts within the indicator.
PLANNED FUTURE DEVELOPMENTS
Currently this is purely an accumulation strategy. It does not have any sell signals right now but I have ideas on how I will build upon it to incorporate an algorithm for selling. The strategy should gradually offload profits in bull markets which generates more USD which gives more buying power to rinse and repeat the same process in the next cycle only with a bigger starting capital. Watch this space!
MARKETS
Crypto:
This strategy has been specifically built to work on the crypto markets. It has been developed, backtested and tuned against crypto markets and I personally only run it on crypto markets to accumulate more of the coins I believe in for the long term. In the section below I will provide some backtest results from some of the top crypto assets.
Stocks:
I've found it is generally more profitable than a standard DCA strategy on the majority of stocks, however the results proved to be a lot more impressive on crypto. This is mainly due to the volatility and cycles found in crypto markets. The strategy makes its profits from capitalising on pullbacks in price. Good stocks on the other hand tend to move up and to the right with less significant pullbacks, therefore giving this strategy less opportunity to flourish.
Forex:
As this is an accumulation style investment strategy, I do not recommend that you use it to trade Forex.
For more info about this strategy including backtest results, please see the full description on the invite only version of this strategy named "Smart DCA Strategy"
MACD Aggressive Scalp SimpleComment on the Script
Purpose and Structure:
The script is a scalping strategy based on the MACD indicator combined with EMA (50) as a trend filter.
It uses the MACD histogram's crossover/crossunder of zero to trigger entries and exits, allowing the trader to capitalize on short-term momentum shifts.
The use of strategy.close ensures that positions are closed when specified conditions are met, although adjustments were made to align with Pine Script version 6.
Strengths:
Simplicity and Clarity: The logic is straightforward and focuses on essential scalping principles (momentum-based entries and exits).
Visual Indicators: The plotted MACD line, signal line, and histogram columns provide clear visual feedback for the strategy's operation.
Trend Confirmation: Incorporating the EMA(50) as a trend filter helps avoid trades that go against the prevailing trend, reducing the likelihood of false signals.
Dynamic Exit Conditions: The conditional logic for closing positions based on weakening momentum (via MACD histogram change) is a good way to protect profits or minimize losses.
Potential Improvements:
Parameter Inputs:
Make the MACD (12, 26, 9) and EMA(50) values adjustable by the user through input statements for better customization during backtesting.
Example:
pine
Copy code
macdFast = input(12, title="MACD Fast Length")
macdSlow = input(26, title="MACD Slow Length")
macdSignal = input(9, title="MACD Signal Line Length")
emaLength = input(50, title="EMA Length")
Stop Loss and Take Profit:
The strategy currently lacks explicit stop-loss or take-profit levels, which are critical in a scalping strategy to manage risk and lock in profits.
ATR-based or fixed-percentage exits could be added for better control.
Position Size and Risk Management:
While the script uses 50% of equity per trade, additional options (e.g., fixed position sizes or risk-adjusted sizes) would be beneficial for flexibility.
Avoid Overlapping Signals:
Add logic to prevent overlapping signals (e.g., opening a new position immediately after closing one on the same bar).
Backtesting Optimization:
Consider adding labels or markers (label.new or plotshape) to visualize entry and exit points on the chart for better debugging and analysis.
The inclusion of performance metrics like max drawdown, Sharpe ratio, or profit factor would help assess the strategy's robustness during backtesting.
Compatibility with Live Trading:
The strategy could be further enhanced with alert conditions using alertcondition to notify the trader of buy/sell signals in real-time.
Market StructureThis is an advanced, non-repainting Market Structure indicator that provides a robust framework for understanding market dynamics across any timeframe and instrument.
Key Features:
- Non-repainting market structure detection using swing highs/lows
- Clear identification of internal and general market structure levels
- Breakout threshold system for structure adjustments
- Integrated multi-timeframe compatibility
- Rich selection of 30+ moving average types, from basic to advanced adaptive variants
What Makes It Different:
Unlike most market structure indicators that repaint or modify past signals, this implementation uses a fixed-length lookback period to identify genuine swing points.
This means once a structure level or pivot is identified, it stays permanent - providing reliable signals for analysis and trading decisions.
The indicator combines two layers of market structure:
1. Internal Structure (lighter lines) - More sensitive to local price action
2. General Structure (darker lines) - Shows broader market context
Technical Details:
- Uses advanced pivot detection algorithm with customizable swing size
- Implements consecutive break counting for structure adjustments
- Supports both close and high/low price levels for breakout detection
- Includes offset option for better visual alignment
- Each structure break is validated against multiple conditions to prevent false signals
Offset on:
Offset off:
Moving Averages Library:
Includes comprehensive selection of moving averages, from traditional to advanced adaptive types:
- Basic: SMA, EMA, WMA, VWMA
- Advanced: KAMA, ALMA, VIDYA, FRAMA
- Specialized: Hull MA, Ehlers Filter Series
- Adaptive: JMA, RPMA, and many more
Perfect for:
- Price action analysis
- Trend direction confirmation
- Support/resistance identification
- Market structure trading strategies
- Multiple timeframe analysis
This open-source tool is designed to help traders better understand market dynamics and make more informed trading decisions. Feel free to use, modify, and enhance it for your trading needs.
3 EMA + RSI with Trail Stop [Free990] (LOW TF)This trading strategy combines three Exponential Moving Averages (EMAs) to identify trend direction, uses RSI to signal exit conditions, and applies both a fixed percentage stop-loss and a trailing stop for risk management. It aims to capture momentum when the faster EMAs cross the slower EMA, then uses RSI thresholds, time-based exits, and stops to close trades.
Short Explanation of the Logic
Trend Detection: When the 10 EMA crosses above the 20 EMA and both are above the 100 EMA (and the current price bar closes higher), it triggers a long entry signal. The reverse happens for a short (the 10 EMA crosses below the 20 EMA and both are below the 100 EMA).
RSI Exit: RSI crossing above a set threshold closes long trades; crossing below another threshold closes short trades.
Time-Based Exit: If a trade is in profit after a set number of bars, the strategy closes it.
Stop-Loss & Trailing Stop: A fixed stop-loss based on a percentage from the entry price guards against large drawdowns. A trailing stop dynamically tightens as the trade moves in favor, locking in potential gains.
Detailed Explanation of the Strategy Logic
Exponential Moving Average (EMA) Setup
Short EMA (out_a, length=10)
Medium EMA (out_b, length=20)
Long EMA (out_c, length=100)
The code calculates three separate EMAs to gauge short-term, medium-term, and longer-term trend behavior. By comparing their relative positions, the strategy infers whether the market is bullish (EMAs stacked positively) or bearish (EMAs stacked negatively).
Entry Conditions
Long Entry (entryLong): Occurs when:
The short EMA (10) crosses above the medium EMA (20).
Both EMAs (short and medium) are above the long EMA (100).
The current bar closes higher than it opened (close > open).
This suggests that momentum is shifting to the upside (short-term EMAs crossing up and price action turning bullish). If there’s an existing short position, it’s closed first before opening a new long.
Short Entry (entryShort): Occurs when:
The short EMA (10) crosses below the medium EMA (20).
Both EMAs (short and medium) are below the long EMA (100).
The current bar closes lower than it opened (close < open).
This indicates a potential shift to the downside. If there’s an existing long position, that gets closed first before opening a new short.
Exit Signals
RSI-Based Exits:
For long trades: When RSI exceeds a specified threshold (e.g., 70 by default), it triggers a long exit. RSI > short_rsi generally means overbought conditions, so the strategy exits to lock in profits or avoid a pullback.
For short trades: When RSI dips below a specified threshold (e.g., 30 by default), it triggers a short exit. RSI < long_rsi indicates oversold conditions, so the strategy closes the short to avoid a bounce.
Time-Based Exit:
If the trade has been open for xBars bars (configurable, e.g., 24 bars) and the trade is in profit (current price above entry for a long, or current price below entry for a short), the strategy closes the position. This helps lock in gains if the move takes too long or momentum stalls.
Stop-Loss Management
Fixed Stop-Loss (% Based): Each trade has a fixed stop-loss calculated as a percentage from the average entry price.
For long positions, the stop-loss is set below the entry price by a user-defined percentage (fixStopLossPerc).
For short positions, the stop-loss is set above the entry price by the same percentage.
This mechanism prevents catastrophic losses if the market moves strongly against the position.
Trailing Stop:
The strategy also sets a trail stop using trail_points (the distance in price points) and trail_offset (how quickly the stop “catches up” to price).
As the market moves in favor of the trade, the trailing stop gradually tightens, allowing profits to run while still capping potential drawdowns if the price reverses.
Order Execution Flow
When the conditions for a new position (long or short) are triggered, the strategy first checks if there’s an opposite position open. If there is, it closes that position before opening the new one (prevents going “both long and short” simultaneously).
RSI-based and time-based exits are checked on each bar. If triggered, the position is closed.
If the position remains open, the fixed stop-loss and trailing stop remain in effect until the position is exited.
Why This Combination Works
Multiple EMA Cross: Combining 10, 20, and 100 EMAs balances short-term momentum detection with a longer-term trend filter. This reduces false signals that can occur if you only look at a single crossover without considering the broader trend.
RSI Exits: RSI provides a momentum oscillator view—helpful for detecting overbought/oversold conditions, acting as an extra confirmation to exit.
Time-Based Exit: Prevents “lingering trades.” If the position is in profit but failing to advance further, it takes profit rather than risking a trend reversal.
Fixed & Trailing Stop-Loss: The fixed stop-loss is your safety net to cap worst-case losses. The trailing stop allows the strategy to lock in gains by following the trade as it moves favorably, thus maximizing profit potential while keeping risk in check.
Overall, this approach tries to capture momentum from EMA crossovers, protect profits with trailing stops, and limit risk through both a fixed percentage stop-loss and exit signals from RSI/time-based logic.
Bitcoin COT [SAKANE]#Overview
Bitcoin COT is an indicator that visualizes Bitcoin futures market positions based on the Commitment of Traders (COT) report provided by the CFTC (Commodity Futures Trading Commission).
This indicator stands out from similar tools with the following features:
- Flexible Data Switching: Supports multiple COT report types, including "Financial," "Legacy," "OpenInterest," and "Force All."
- Position Direction Selection: Easily switch between long, short, and net positions. Net positions are automatically calculated.
- Open Interest Integration: View the overall trading volume in the market at a glance.
- Comparison and Customization: Toggle individual trader types (Dealer, Asset Manager, Commercials, etc.) on and off, with visually distinct color-coded graphs.
- Force All Mode: Simultaneously display data from different report types, enabling comprehensive market analysis.
These features make it a powerful tool for both beginners and advanced traders to deeply analyze the Bitcoin futures market.
#Use Cases
1. Analyzing Trader Sentiment
- Compare net positions of various trader types (Dealer, Asset Manager, Commercials, etc.) to understand market sentiment.
2. Identifying Trend Reversals
- Detect early signs of trend reversals from sudden increases or decreases in long and short positions.
3. Utilizing Open Interest
- Monitor the overall trading volume represented by open interest to evaluate entry points or changes in volatility.
4. Tracking Position Structures
- Compare positions of leveraged funds and asset managers to analyze risk-on or risk-off environments.
#Key Features
1. Report Type Selection
- Financial (Financial Traders)
- Legacy (Legacy Report)
- Open Interest
- Force All (Display all data)
2. Position Direction Selection
- Long
- Short
- Net
3. Visualization of Major Trader Types
- Financial Traders: Dealer, Asset Manager, Leveraged Funds, Other Reportable
- Legacy: Commercials, Non-Commercials, Small Speculators
4. Open Interest Visualization
- Monitor the total open positions in the market.
5. Flexible Customization
- Toggle individual trader types on and off.
- Intuitive settings with tooltips for better usability.
#How to Use
1. Add the indicator to your chart and click the settings icon in the top-right corner.
2. Select the desired report type in the "Report Type" field.
3. Choose the position direction (Long/Short/Net) in the "Direction" field.
4. Toggle the visibility of trader types as needed.
#Notes
- Data is provided by the CFTC and is updated weekly. It is not real-time.
- Changes to the settings may take a few seconds to reflect.
[blackcat] L1 Simple Dual Channel Breakout█ OVERVIEW
The script " L1 Simple Dual Channel Breakout" is an indicator designed to plot dual channel breakout bands and their long-term EMAs on a chart. It calculates short-term and long-term moving averages and deviations to establish upper, lower, and middle bands, which traders can use to identify potential breakout opportunities.
█ LOGICAL FRAMEWORK
Structure:
The script is structured into several main sections:
• Input Parameters: The script does not explicitly define input parameters for the user to adjust, but it uses default values for short_term_length (5) and long_term_length (181).
• Calculations: The calculate_dual_channel_breakout function performs the core calculations, including the blast condition, typical price, short-term and long-term moving averages, and dynamic moving averages.
• Plotting: The script plots the short-term bands (upper, lower, and middle) and their long-term EMAs. It also plots conditional line breaks when the short-term bands cross the long-term EMAs.
Flow of Data and Logic:
1 — The script starts by defining the calculate_dual_channel_breakout function.
2 — Inside the function, it calculates various moving averages and deviations based on the input prices and lengths.
3 — The function returns the calculated bands and EMAs.
4 — The script then calls this function with predefined lengths and plots the resulting bands and EMAs on the chart.
5 — Conditional plots are added to highlight breakouts when the short-term bands cross the long-term EMAs.
█ CUSTOM FUNCTIONS
The script defines one custom function:
• calculate_dual_channel_breakout(close_price, high_price, low_price, short_term_length, long_term_length): This function calculates the short-term and long-term bands and EMAs. It takes five parameters: close_price, high_price, low_price, short_term_length, and long_term_length. It returns an array containing the upper band, lower band, middle band, long-term upper EMA, long-term lower EMA, and long-term middle EMA.
█ KEY POINTS AND TECHNIQUES
• Typical Price Calculation: The script uses a modified typical price calculation (2 * close_price + high_price + low_price) / 4 instead of the standard (high_price + low_price + close_price) / 3.
• Short-term and Long-term Bands: The script calculates short-term bands using a simple moving average (SMA) of the typical price and long-term bands using a relative moving average (RMA) of the close price.
• Conditional Plotting: The script uses conditional plotting to highlight breakouts when the short-term bands cross the long-term EMAs, enhancing visual identification of trading signals.
• EMA for Long-term Trends: The use of Exponential Moving Averages (EMAs) for long-term bands helps in smoothing out short-term fluctuations and focusing on long-term trends.
█ EXTENDED KNOWLEDGE AND APPLICATIONS
• Modifications: Users can add input parameters to allow customization of short_term_length and long_term_length, making the indicator more flexible.
• Enhancements: The script could be extended to include alerts for breakout conditions, providing traders with real-time notifications.
• Alternative Bands: Users might experiment with different types of moving averages (e.g., WMA, HMA) for the short-term and long-term bands to see if they yield better results.
• Additional Indicators: Combining this indicator with other technical indicators (e.g., RSI, MACD) could provide a more comprehensive trading strategy.
• Backtesting: Users can backtest the strategy using Pine Script's strategy functions to evaluate its performance over historical data.
5x Volume indicator - Day Trading5x Volume Screener - Day Trading
Version: 6.0
Description:
This indicator is designed to identify significant volume spikes in crypto and stock markets,
specifically targeting instances where volume exceeds 5x the average of a 10-period Simple Moving Average (SMA) as the baseline.
Perfect for day traders and momentum traders looking for high-volume breakout opportunities.
Key Features:
Tracks real-time volume compared to 5-period moving average
Visual alerts through green histogram bars for 5x volume spikes
Dynamic volume ratio display showing exact multiple of average volume
Clear threshold line for quick reference
Optional labels showing precise volume ratios
Benefits:
Instantly spot unusual volume activity
Identify potential breakout opportunities
Validate price movements with volume confirmation
Perfect for day trading and scalping
Works across multiple timeframes
Best Used For:
Day trading setups
Breakout trading
Volume confirmation
Momentum trading
Market reversal identification
Created by: CigarSavant
Last Updated: December 2024
[blackcat] L1 Enveloped Oscillator█ OVERVIEW
The script is an indicator named “ L1 Enveloped Oscillator” (L1 EO) designed to plot various trend and oscillator values on a separate chart pane. It calculates multiple indicators such as trend, adjusted trend, oscillator, directional strength, and normalized oscillator, and uses these to detect potential buy and sell signals based on trend contractions, expansions, and divergences.
█ LOGICAL FRAMEWORK
Structure:
1 — Input Parameters: None are explicitly defined, but the script is parameterized within the function with fixed values for levels and periods.
2 — Calculations: The calculate_l1_enveloped_oscillator function computes multiple values including price bases, trend, oscillator, and adjusted trends. This function uses built-in Pine Script functions like ta.highest, ta.lowest, ta.ema, ta.sma, and math.max.
3 — Plotting: The calculated values are plotted on the chart using the plot function, with different colors and styles for visual distinction.
4 — Signal Detection: The script detects and labels potential buy and sell signals based on trend contractions, expansions, and divergences between the price and oscillator.
5 — Conditional Statements: Multiple if statements are used to determine when to place labels for buy and sell signals.
█ CUSTOM FUNCTIONS
• calculate_l1_enveloped_oscillator(high, low, close, open): Calculates various trend and oscillator values based on the input price data.
— Parameters: high, low, close, open (price data).
— Return Values: A tuple containing top_level, bottom_level, middle_level, adjusted_trend, trend, oscillator, directional_strength, normalized_oscillator, and adjusted_candle_trend.
█ KEY POINTS AND TECHNIQUES
• Advanced Pine Script Features: Utilizes built-in functions for technical analysis (ta.highest, ta.lowest, ta.ema, ta.sma, ta.crossover, ta.crossunder).
• Optimization Techniques: Uses fixed periods and levels for calculations, which can be adjusted for different market conditions.
• Best Practices: Clearly separates calculations and plotting, making the script modular and easier to maintain.
• Unique Approaches: Combines multiple indicators (trend, oscillator, directional strength) to detect complex market conditions like divergences and contractions/expansions.
█ EXTENDED KNOWLEDGE AND APPLICATIONS
• Modifications: Users can modify the levels (top_level, bottom_level, middle_level) and periods used in calculations to better suit specific asset classes or market conditions.
• Extensions: The script can be extended to include additional indicators or signals, such as RSI or MACD, to enhance its predictive power.
• Application Scenarios: Similar techniques can be applied in other trading strategies involving trend analysis and divergence detection, such as momentum trading or mean reversion strategies.
• Related Concepts: Users can explore other Pine Script concepts like alerts, backtesting, and optimization to fine-tune strategies based on historical data.
Shark Price & Bar Prediction
### Description for TradingView
**Shark Price & Bar Prediction Indicator**
The "Shark Price & Bar Prediction" indicator is designed to provide traders with insights into potential price movements based on local extremes in price action. Utilizing Volume Spread Analysis (VSA), this script identifies key price levels and generates predictive targets for bullish and bearish trends.
#### Features:
- **Local Extremes Detection**: Automatically finds the highest and lowest points within a specified prediction period.
- **Price Prediction**: Calculates potential bullish and bearish targets using Fibonacci levels.
- **Visual Signals**: Displays buy and sell signals directly on the chart, making it easy to identify entry points.
- **Customizable Settings**: Users can adjust the prediction period and confidence threshold to suit their trading style.
### How to Use:
1. **Settings**: Adjust the following inputs according to your preferences:
- **Prediction Period**: Set the number of bars to look back for local extremes.
- **Confidence Threshold**: Define the confidence level for predicting price targets.
- **Show Additional Labels**: Toggle additional labels for more detailed information on the chart.
2. **Interpreting Signals**:
- **Buy Signal**: When the closing price exceeds the bullish target, an upward arrow will appear below the bar, indicating a potential buying opportunity.
- **Sell Signal**: When the closing price falls below the bearish target, a downward arrow will appear above the bar, suggesting a potential selling opportunity.
3. **Visual Indicators**:
- The highest point is marked with a 🔴 **red circle**, while the lowest point is marked with a 🟢 **green circle**.
- Bullish targets are represented by a 🔵 **blue line**, and bearish targets are represented by a 🟣 **purple line**.
### Объяснение на русском
**Индикатор Прогнозирования Цены и Баров Shark**
Индикатор "Shark Price & Bar Prediction" предназначен для предоставления трейдерам информации о потенциальных ценовых движениях на основе локальных экстремумов в ценовом действии. Используя анализ объема и спреда (VSA), этот скрипт определяет ключевые уровни цен и генерирует прогнозные цели для бычьих и медвежьих трендов.
#### Особенности:
- **Обнаружение Локальных Экстремумов**: Автоматически находит максимальные и минимальные точки в заданный период прогнозирования.
- **Прогнозирование Цены**: Вычисляет потенциальные бычьи и медвежьи цели с использованием уровней Фибоначчи.
- **Визуальные Сигналы**: Отображает сигналы покупки и продажи непосредственно на графике, что облегчает определение точек входа.
- **Настраиваемые Параметры**: Пользователи могут регулировать период прогнозирования и уровень уверенности в соответствии со своим стилем торговли.
### Как использовать:
1. **Настройки**: Отрегулируйте следующие параметры в соответствии с вашими предпочтениями:
- **Период Прогнозирования**: Установите количество баров для поиска локальных экстремумов.
- **Порог Уверенности**: Определите уровень уверенности для прогнозирования ценовых целей.
- **Показать Дополнительные Метки**: Включите дополнительные метки для более детальной информации на графике.
2. **Интерпретация Сигналов**:
- **Сигнал Покупки**: Когда цена закрытия превышает бычью цель, под баром появится стрелка вверх, указывающая на потенциальную возможность покупки.
- **Сигнал Продажи**: Когда цена закрытия падает ниже медвежьей цели, над баром появится стрелка вниз, предлагающая потенциальную возможность продажи.
3. **Визуальные Индикаторы**:
- Максимальная точка обозначена 🔴 **красным кругом**, а минимальная точка — 🟢 **зеленым кругом**.
- Бычьи цели представлены 🔵 **синей линией**, а медвежьи цели — 🟣 **пурпурной линией**.
Weighted Fourier Transform: Spectral Gating & Main Frequency🙏🏻 This drop has 2 purposes:
1) to inform every1 who'd ever see it that Weighted Fourier Tranform does exist, while being available nowhere online, not even in papers, yet there's nothing incredibly complicated about it, and it can/should be used in certain cases;
2) to show TradingView users how they can use it now in dem endevours, to show em what spectral filtering is, and what can they do with all of it in diy mode.
... so we gonna have 2 sections in the description
Section 1: Weighted Fourier Transform
It's quite easy to include weights in Fourier analysis: you just premultiply each datapoint by its corresponding weight -> feed to direct Fourier Transform, and then divide by weights after inverse Fourier transform. Alternatevely, in direct transform you just multiply contributions of each data point to the real and imaginary parts of the Fourier transform by corresponding weights (in accumulation phase), and in inverse transform you divide by weights instead during the accumulation phase. Everything else stays the same just like in non-weighted version.
If you're from the first target group let's say, you prolly know a thing or deux about how to code & about Fourier Transform, so you can just check lines of code to see the implementation of Weighted Discrete version of Fourier Transform, and port it to to any technology you desire. Pine Script is a developing technology that is incredibly comfortable in use for quant-related tasks and anything involving time series in general. While also using Python for research and C++ for development, every time I can do what I want in Pine Script, I reach for it and never touch matlab, python, R, or anything else.
Weighted version allows you to explicetly include order/time information into the operation, which is essential with every time series, although not widely used in mainstream just as many other obvious and right things. If you think deeply, you'll understand that you can apply a usual non-weighted Fourier to any 2d+ data you can (even if none of these dimensions represent time), because this is a geometric tool in essence. By applying linearly decaying weights inside Fourier transform, you're explicetly saying, "one of these dimensions is Time, and weights represent the order". And obviously you can combine multiple weightings, eg time and another characteristic of each datum, allows you to include another non-spatial dimension in your model.
By doing that, on properly processed (not only stationary but Also centered around zero data), you can get some interesting results that you won't be able to recreate without weights:
^^ A sine wave, centered around zero, period of 16. Gray line made by: DWFT (direct weighted Fourier transform) -> spectral gating -> IWFT (inverse weighted Fourier transform) -> plotting the last value of gated reconstructed data, all applied to expanding window. Look how precisely it follows the original data (the sine wave) with no lag at all. This can't be done by using non-weighted version of Fourier transform.
^^ spectral filtering applied to the whole dataset, calculated on the latest data update
And you should never forget about Fast Fourier Transform, tho it needs recursion...
Section 2: About use cases for quant trading, about this particular implementaion in Pine Script 6 (currently the latest version as of Friday 13, December 2k24).
Given the current state of things, we have certain limits on matrix size on TradingView (and we need big dope matrixes to calculate polynomial regression -> detrend & center our data before Fourier), and recursion is not yet available in Pine Script, so the script works on short datasets only, and requires some time.
A note on detrending. For quality results, Fourier Transform should be applied to not only stationary but also centered around zero data. The rightest way to do detrending of time series
is to fit Cumulative Weighted Moving Polynomial Regression (known as WLSMA in some narrow circles xD) and calculate the deltas between datapoint at time t and this wonderful fit at time t. That's exactly what you see on the main chart of script description: notice the distances between chart and WLSMA, now look lower and see how it matches the distances between zero and purple line in WFT study. Using residuals of one regression fit of the whole dataset makes less sense in time series context, we break some 'time' and order rules in a way, tho not many understand/cares abouit it in mainstream quant industry.
Two ways of using the script:
Spectral Gating aka Spectral filtering. Frequency domain filtering is quite responsive and for a greater computational cost does not introduce a lag the way it works with time-domain filtering. Works this way: direct Fourier transform your data to get frequency & phase info -> compute power spectrum out of it -> zero out all dem freqs that ain't hit your threshold -> inverse Fourier tranform what's left -> repeat at each datapoint plotting the very first value of reconstructed array*. With this you can watch for zero crossings to make appropriate trading decisions.
^^ plot Freq pass to use the script this way, use Level setting to control the intensity of gating. These 3 only available values: -1, 0 and 1, are the general & natural ones.
* if you turn on labels in script's style settings, you see the gray dots perfectly fitting your data. They get recalculated (for the whole dataset) at each update. You call it repainting, this is for analytical & aesthetic purposes. Included for demonstration only.
Finding main/dominant frequency & period. You can use it to set up Length for your other studies, and for analytical purposes simply to understand the periodicity of your data.
^^ plot main frequency/main period to use the script this way. On the screenshot, you can see the script applied to sine wave of period 16, notice how many datapoints it took the algo to figure out the signal's period quite good in expanding window mode
Now what's the next step? You can try applying signal windowing techniques to make it all less data-driven but your ego-driven, make a weighted periodogram or autocorrelogram (check Wiener-Khinchin Theorem ), and maybe whole shiny spectrogram?
... you decide, choice is yours,
The butterfly reflect the doors ...
∞
Scatter Plot with Symbol or Data Source InputsDescription of setting items
Use Symbol for X Data?
Type: Checkbox (input.bool)
Explanation: Selects whether the data used for the X axis is obtained from a “symbol” or a “data source”.
If true: data for the X axis will be taken from a symbol (e.g. stock ticker).
If false: X axis data will be taken from the specified data source (e.g., closing price or volume).
Use Symbol for Y Data?
type: checkbox (input.bool)
Explanation: Selects whether the data used for the Y axis is retrieved from a “symbol” or a “data source”.
If true: Y-axis data is obtained from symbols.
If false: Data for the Y axis is obtained from the specified data source.
Select Ticker Symbol for X Data
type: symbol input (input.symbol)
description: selects the symbol to be used for the X axis (default is “AAPL”).
If “Use Symbol for X Data?” is set to true, this symbol will be used as the data for the X axis.
Select Ticker Symbol for Y Data
Type: Symbol input (input.symbol)
description: selects the symbol to be used for the Y axis (default is “GOOG”).
If “Use Symbol for Y Data?” is set to true, this symbol will be used as the data for the Y axis.
X Data Source
type: data source input (input.source)
description: specifies the data source to be used for the X axis.
Default is “close” (closing price).
Other possible values include open, high, low, volume, etc.
Y Data Source
Type: data source input (input.source)
Description: Specifies the data source to be used for the Y axis.
Default is “volume” (volume).
Other possible values include open, high, low, close, etc.
X Offset
type: integer input (input.int)
description: sets the offset value of the X axis.
This shifts the position of the X axis on the grid. The range is from -500 to 500.
Y Offset
Type: Integer input (constant)
description: offset value for y-axis.
Defaults to 0, but can be changed to adjust the Y axis position.
grid_width
type: integer input (input.int)
description: sets the width of the grid.
The default is 200. Increasing the value results in a finer grid.
grid_height
type: integer input (input.int)
description: sets the height of the grid.
Defaults to 200. Increasing the value results in a finer grid.
Frequency of updates
type: integer input (input.int)
description: set frequency of updates.
The higher the frequency of updates, the more bars will be used to calculate minimum and maximum values.
X Tick Interval
type: integer input (input.int)
description: sets the tick interval for the X axis.
The default is 10. To increase the number of ticks, decrease the value.
Y Tick Interval
Box border color
type: select color (input.color)
description: select color for grid box border
Default is blue.
Explanation of usage
To use symbol data: Set Use Symbol for X Data?
When “Use Symbol for X Data?” and “Use Symbol for Y Data?” are set to true, the data of the specified symbol is displayed on each axis. For example, you can use “AAPL” (Apple's stock price data) for the X axis and “GOOG” (Google's stock price data) for the Y axis.
To set the symbol, select the desired ticker in Select Ticker Symbol for X Data and Select Ticker Symbol for Y Data.
To use a data source: select the
You can set Use Symbol for X Data? and Use Symbol for Y Data? to false and use the data source specified in X Data Source or Y Data Source instead (e.g., closing price or volume).
Change Grid Size:.
Set the width and height of the grid with grid_width and grid_height. Larger values allow for more detailed scatter plots.
Set Tick Intervals: Set the X Tick Interval and Y Tick Interval.
Adjust X Tick Interval and Y Tick Interval to change the tick spacing on the X and Y axes.
Data Range Adjustment: Adjust the Frequency of updates to change the frequency of updates.
The Frequency of updates can be changed to control how often the data range is updated. The higher this value, the more historical data is considered and displayed.
Box Color.
Box Border Color allows you to change the color of the box border.
This script is useful for visualizing different symbols and data sources, especially to show the relationship between financial data.
Caution.
Some data may exceed the memory size, but the scale is the same, so you will know most of the locations.
*I made it myself because I could not find anything to draw a scatter plot. You can also compare more than 3 pieces of data by displaying more than one scatter plot. Here is how to do it. Set X or Y as the reference data. Set the data you want to compare to the one that is not the standard. Next, set the same indicator and set the reference to another set of data you wish to compare. Now you can compare the three sets of data. It is effective to change the color of the display box to prevent the user from not knowing which is which. Thus, you should be able to compare more than 3 pieces of data, so give it a try.
Physical Levels (XAUUSD, 5$ Pricesteps)Functionality:
This indicator draws horizontal lines in the XAUUSD market at a fixed spacing of USD 5. The lines are both above and below the current market price. The number of lines is limited to optimize performance.
Use:
The indicator is particularly useful for traders who want to analyze psychological price levels, support and resistance areas, or significant price zones in the gold market. It helps to better visualize price movements and their proximity to round numbers.
How it works:
The indicator calculates a starting price based on the current price of XAUUSD, rounded to the nearest multiple of USD 5.
Starting from this starting price, evenly distributed lines are drawn up and down.
The lines are black throughout and are updated dynamically according to the current chart.
ATR/DTR with Custom Percentage DisplayThis Pine Script indicator provides a detailed view of the Average True Range (ATR) and Daily True Range (DTR), along with additional calculated metrics to assist in analyzing price volatility. The key features of the indicator include:
ATR Calculation:
The ATR is calculated over a user-defined timeframe, allowing traders to assess average market volatility over a specific period.
DTR Calculation:
The DTR represents the absolute range (high - low) of the current or chosen timeframe, providing insights into the day's price movement.
ATR/DTR Percentage:
This metric calculates the DTR as a percentage of the ATR, showing how the daily range compares to the average range, with dynamic coloring to highlight when it exceeds a user-defined threshold.
Custom Percentage of ATR:
Users can input a custom percentage to calculate and display a corresponding value of the ATR. For example, entering 15% will compute and display 15% of the ATR in the indicator’s table.
Dynamic Table Display:
The indicator outputs all these metrics in a well-organized table that is overlaid on the chart. The table includes:
ATR
DTR
ATR/DTR percentage
The user-defined percentage of ATR
Customizable Features:
Color Coding: The table dynamically changes its background color when the ATR/DTR percentage exceeds a user-defined threshold.
Placement Options: The table's position on the chart can be adjusted (e.g., bottom-right, top-center) for optimal visibility.
Use Case:
This indicator is ideal for traders who want a deeper understanding of market volatility and prefer visual representation of how current price movements compare to historical averages. It is especially useful for:
Setting volatility-based stop-loss levels.
Identifying high-volatility trading opportunities.
Tailoring strategies around price movement patterns.
VWAP SlopeThis script calculates and displays the slope of the Volume Weighted Average Price (VWAP) . It compares the current VWAP with its value from a user-defined lookback period to determine the slope. The slope is color-coded: green for an upward trend (positive slope) and red for a downward trend (negative slope) .
Key Points:
VWAP Calculation: The script calculates the VWAP based on a user-defined timeframe (default: daily), which represents the average price weighted by volume.
Slope Determination: The slope is calculated by comparing the current VWAP to its value from a previous period, providing insight into market trends.
Color-Coding: The slope line is color-coded to visually indicate the market direction: green for uptrend and red for downtrend.
This script helps traders identify the direction of the market based on VWAP , offering a clear view of trends and potential turning points.
VWAP - TrendThis Pine Script calculates the Volume Weighted Average Price (VWAP) for a specified timeframe and plots its Linear Regression over a user-defined lookback period . The regression line is color-coded: green indicates an uptrend and red indicates a downtrend. The line is broken at the end of each day to prevent it from extending into the next day, ensuring clarity on a daily basis.
Key Features:
VWAP Calculation: The VWAP is calculated based on a selected timeframe, providing a smoothed average price considering volume.
Linear Regression: The script calculates a linear regression of the VWAP over a custom lookback period to capture the underlying trend.
Color-Coding: The regression line is color-coded to easily identify trends—green for an uptrend and red for a downtrend.
Day-End Break: The regression line breaks at the end of each day to prevent continuous plotting across days, which helps keep the analysis focused within daily intervals.
User Inputs: The user can adjust the VWAP timeframe and the linear regression lookback period to tailor the indicator to their preferences.
This script provides a visual representation of the VWAP trend, helping traders identify potential market directions and turning points based on the linear regression of the VWAP.
Breakout Point Highlighting//@version=6
indicator("Breakout Point Highlighting", overlay=true)
// Input: Lookback period for finding breakout points
lookbackPeriod = input.int(20, title="Lookback Period", minval=1)
// Calculate the highest high and lowest low over the lookback period
highestHigh = ta.highest(high, lookbackPeriod)
lowestLow = ta.lowest(low, lookbackPeriod)
// Breakout conditions: price breaks above the highest high or below the lowest low
breakoutUp = close > highestHigh
breakoutDown = close < lowestLow
// Plot the breakout points
plotshape(breakoutUp, color=color.green, style=shape.triangleup, location=location.belowbar, title="Breakout Up", size=size.small)
plotshape(breakoutDown, color=color.red, style=shape.triangledown, location=location.abovebar, title="Breakout Down", size=size.small)
// Highlight the breakout zones
bgcolor(breakoutUp ? color.new(color.green, 90) : na, title="Breakout Up Highlight")
bgcolor(breakoutDown ? color.new(color.red, 90) : na, title="Breakout Down Highlight")
// Alert conditions
alertcondition(breakoutUp, title="Breakout Up Alert", message="Price has broken above the highest high.")
alertcondition(breakoutDown, title="Breakout Down Alert", message="Price has broken below the lowest low.")
Moving Average Cross; Linear RegressionThis Pine Script is designed to display smoothed linear regression lines on a chart, with an option to adjust the regression period lengths and smoothing factor. The script calculates short-term and long-term linear regression lines based on the selected timeframe. These regression lines act as a regressed moving average cross , visually representing the interaction between the two smoothed linear regressions.
Short Regression Line: A linear regression line based on a short lookback period, colored blue for an uptrend and orange for a downtrend .
Long Regression Line: A linear regression line based on a longer lookback period, similarly colored blue for an uptrend and orange for a downtrend .
The script provides input options to adjust:
The length of short and long regression periods.
The smoothing length for the regression lines.
The timeframe for the linear regression calculations.
This tool can help traders observe the crossovers between the two smoothed linear regression lines, which are similar to moving average crossovers, but with the added benefit of regression-based smoothing to reduce noise. The color-coding allows for easy trend identification, with blue indicating an uptrend and orange indicating a downtrend.
Custom ChoCH Indicator (10m) - SayajeeCustom ChoCH Indicator (10m) - Sayajee
This custom Pine Script indicator identifies and marks Change of Character (ChoCH) events on a 10-minute chart. ChoCH is a price action concept that highlights potential market reversals. The indicator detects bullish and bearish Change of Character points and displays them as labels and background color highlights on the chart.
Features:
Bullish & Bearish ChoCH Signals: Detects price reversals and trends based on the relationship between recent highs and lows.
Bullish ChoCH: When the close price is greater than the previous swing high and the previous low is lower than the previous swing low.
Bearish ChoCH: When the close price is lower than the previous swing low and the previous high is greater than the previous swing high.
Visual Indicators:
Labels ("ChoCH↑" for bullish, "ChoCH↓" for bearish) are displayed at the high or low of the bar where the signal occurs.
Background highlights in green for bullish and red for bearish conditions to make the signals easily recognizable.
Customization:
Option to toggle the visibility of labels.
Option to customize the colors for bullish and bearish signals.
Alerts: Configured alert conditions to notify you when a Bullish ChoCH or Bearish ChoCH occurs.
Inputs:
Show Labels for ChoCH: Toggle to display ChoCH labels on the chart.
Bullish ChoCH Color: Choose the color for bullish signals.
Bearish ChoCH Color: Choose the color for bearish signals.
Usage:
This indicator is useful for detecting potential trend reversals and market shifts, especially when combined with other technical analysis tools. It's designed for traders who rely on price action and prefer visual cues to make informed decisions.
Multi TimeFrame OHLC Overlay @MaxMaseratiMulti TimeFrame OHLC Overlay @MaxMaserati
A powerful and versatile indicator that displays OHLC (Open, High, Low, Close) data across multiple timeframes with enhanced visualization features. Perfect for traders who need to analyze price action across different time periods simultaneously.
Key Features:
Customizable multi-timeframe OHLC visualization with box and line overlays
Extended OHLC lines from higher timeframes with clear labeling
Distinct bullish and bearish candle representations
Fully configurable color schemes and display options
Real-time timeframe information display
Main Components:
Multi-Timeframe Display
Primary timeframe OHLC visualization with boxes and lines
Extended timeframe overlay for broader market context
Clear visual distinction between timeframes
Customizable Visuals
Separate color settings for bullish and bearish patterns
Adjustable transparency for both body and wick components
Configurable OHLC line colors and visibility
Extended Lines Features
Higher timeframe OHLC level overlay
Custom labels with timeframe identification
Adjustable line properties and visibility
Information Display
Current timeframe indicator
Extended timeframe reference
Clean and unobtrusive interface
Settings Groups:
Extended OHLC Lines
Labels Options
Display Options
Bullish/Bearish Candle Settings
OHLC Lines Configuration
Usage Tips:
Start with the default 240-minute timeframe or adjust to your preferred interval
Use the extended lines feature to view higher timeframe levels
Customize colors and transparency to match your chart theme
Enable/disable specific components based on your analysis needs
Perfect For:
Multi-timeframe analysis
Support/Resistance identification
Price action trading
Trend following strategies
Market structure analysis
This indicator combines powerful multi-timeframe analysis capabilities with clean visualization, making it an essential tool for traders who need to maintain awareness of price action across different time periods.
Note:
For optimal performance, adjust the visual settings according to your chart's timeframe and color scheme. The indicator is designed to work seamlessly across all trading instruments and timeframes.