The Bar Counter Trend Reversal Strategy [TradeDots]Overview
The Bar Counter Trend Reversal Strategy is designed to identify potential counter-trend reversal points in the market after a series of consecutive rising or falling bars.
By analyzing price movements in conjunction with optional volume confirmation and channel bands (Bollinger Bands or Keltner Channels), this strategy aims to detect overbought or oversold conditions where a trend reversal may occur.
🔹How it Works
Consecutive Price Movements
Rising Bars: The strategy detects when there are a specified number of consecutive rising bars (No. of Rises).
Falling Bars: Similarly, it identifies a specified number of consecutive falling bars (No. of Falls).
Volume Confirmation (Optional)
When enabled, the strategy checks for increasing volume during the consecutive price movements, adding an extra layer of confirmation to the potential reversal signal.
Channel Confirmation (Optional)
Channel Type: Choose between Bollinger Bands ("BB") or Keltner Channels ("KC").
Channel Interaction: The strategy checks if the price interacts with the upper or lower channel lines: For short signals, it looks for price moving above the upper channel line. For long signals, it looks for price moving below the lower channel line.
Customization:
No. of Rises/Falls: Set the number of consecutive bars required to trigger a signal.
Volume Confirmation: Enable or disable volume as a confirmation factor.
Channel Confirmation: Enable or disable channel bands as a confirmation factor.
Channel Settings: Adjust the length and multiplier for the Bollinger Bands or Keltner Channels.
Visual Indicators:
Entry Signals: Triangles plotted on the chart indicate potential entry points:
Green upward triangle for long entries.
Red downward triangle for short entries.
Channel Bands: The upper and lower bands are plotted for visual reference.
Strategy Parameters:
Initial Capital: $10,000.
Position Sizing: 80% of equity per trade.
Commission: 0.01% per trade to simulate realistic trading costs.
🔹Usage
Set up the number of Rises/Falls and choose whether if you want to use channel indicators and volume as the confirmation.
Monitor the chart for triangles indicating potential entry points.
Consider the context of the overall market trend and other technical factors.
Backtesting and Optimization:
Use TradingView's Strategy Tester to evaluate performance.
Adjust parameters to optimize results for different market conditions.
🔹 Considerations and Recommendations
Risk Management:
The strategy does not include built-in stop-loss or take-profit levels. It's recommended to implement your own risk management techniques.
Market Conditions:
Performance may vary in different market environments. Testing and adjustments are advised when applying the strategy to new instruments or timeframes.
No Guarantee of Future Results:
Past performance is not indicative of future results. Always perform due diligence and consider the risks involved in trading.
Volatilty
Asymmetric volatilityThe "Asymmetric Volatility" indicator is designed to visualize the differences in volatility between upward and downward price movements of a selected instrument. It operates on the principle of analyzing price movements over a specified time period, with particular focus on the symmetrical evaluation of both price rises and falls.
User Parameters:
- Length: This parameter specifies the number of bars (candles) used to calculate the average volatility. The larger the value, the longer the time period, and the smoother the volatility data will be.
- Source: This represents the input data for the indicator calculations. By default, the close value of each bar is used, but the user can choose another data source (such as open, high, low, or any custom value).
Operational Algorithm:
1. Movement Calculation:
- UpMoves: Computed as the positive difference between the current bar value and the previous bar value, if it is greater than zero.
- DownMoves: Computed as the positive difference between the previous bar value and the current bar value, if it is greater than zero.
2. Volatility Calculation:
- UpVolatility: This is the arithmetic mean of the UpMoves values over the specified period.
- DownVolatility: This is the arithmetic mean of the DownMoves values over the specified period.
3. Graphical Representation:
- The indicator displays two plots: upward and downward volatility, represented by green and red lines, respectively.
- The background color changes based on which volatility is dominant: a green background indicates that upward volatility prevails, while a red background indicates downward volatility.
The indicator allows traders to quickly assess in which direction the market is more volatile at the moment, which can be useful for making trading decisions and evaluating the current market situation.
ATR Bands with ATR Cross + InfoTableOverview
This Pine Script™ indicator is designed to enhance traders' ability to analyze market volatility, trend direction, and position sizing directly on their TradingView charts. By plotting Average True Range (ATR) bands anchored at the OHLC4 price, displaying crossover labels, and providing a comprehensive information table, this tool offers a multifaceted approach to technical analysis.
Key Features:
ATR Bands Anchored at OHLC4: Visual representation of short-term and long-term volatility bands centered around the average price.
OHLC4 Dotted Line: A dotted line representing the average of Open, High, Low, and Close prices.
ATR Cross Labels: Visual cues indicating when short-term volatility exceeds long-term volatility and vice versa.
Information Table: Displays real-time data on market volatility, calculated position size based on risk parameters, and trend direction relative to the 20-period Smoothed Moving Average (SMMA).
Purpose
The primary purpose of this indicator is to:
Assess Market Volatility: By comparing short-term and long-term ATR values, traders can gauge the current volatility environment.
Determine Optimal Position Sizing: A calculated position size based on user-defined risk parameters helps in effective risk management.
Identify Trend Direction: Comparing the current price to the 20-period SMMA assists in determining the prevailing market trend.
Enhance Decision-Making: Visual cues and real-time data enable traders to make informed trading decisions with greater confidence.
How It Works
1. ATR Bands Anchored at OHLC4
Average True Range (ATR) Calculations
Short-Term ATR (SA): Calculated over a 9-period using ta.atr(9).
Long-Term ATR (LA): Calculated over a 21-period using ta.atr(21).
Plotting the Bands
OHLC4 Dotted Line: Plotted using small circles to simulate a dotted line due to Pine Script limitations.
ATR(9) Bands: Plotted in blue with semi-transparent shading.
ATR(21) Bands: Plotted in orange with semi-transparent shading.
Overlap: Bands can overlap, providing visual insights into changes in volatility.
2. ATR Cross Labels
Crossover Detection:
SA > LA: Indicates increasing short-term volatility.
Detected using ta.crossover(SA, LA).
A green upward label "SA>LA" is plotted below the bar.
SA < LA: Indicates decreasing short-term volatility.
Detected using ta.crossunder(SA, LA).
A red downward label "SA LA, then the market is considered volatile.
Display: Shows "Yes" or "No" based on the comparison.
b. Position Size Calculation
Risk Total Amount: User-defined input representing the total capital at risk.
Risk per 1 Stock: User-defined input representing the risk associated with one unit of the asset.
Purpose: Helps traders determine the appropriate position size based on their risk tolerance and current market volatility.
c. Is Price > 20 SMMA?
SMMA Calculation:
Calculated using a 20-period Smoothed Moving Average with ta.rma(close, 20).
Logic: If the current close price is above the SMMA, the trend is considered upward.
Display: Shows "Yes" or "No" based on the comparison.
How to Use
Step 1: Add the Indicator to Your Chart
Copy the Script: Copy the entire Pine Script code into the TradingView Pine Editor.
Save and Apply: Save the script and click "Add to Chart."
Step 2: Configure Inputs
Risk Parameters: Adjust the "Risk Total Amount" and "Risk per 1 Stock" in the indicator settings to match your personal risk management strategy.
Step 3: Interpret the Visuals
ATR Bands
Width of Bands: Wider bands indicate higher volatility; narrower bands indicate lower volatility.
Band Overlap: Pay attention to areas where the blue and orange bands diverge or converge.
OHLC4 Dotted Line
Serves as a central reference point for the ATR bands.
Helps visualize the average price around which volatility is measured.
ATR Cross Labels
"SA>LA" Label:
Indicates short-term volatility is increasing relative to long-term volatility.
May signal potential breakout or trend acceleration.
"SA 20 SMMA?
Use this to confirm trend direction before entering or exiting trades.
Practical Example
Imagine you are analyzing a stock and notice the following:
ATR(9) Crosses Above ATR(21):
A green "SA>LA" label appears.
The info table shows "Yes" for "Is ATR-based price volatile."
Position Size:
Based on your risk parameters, the position size is calculated.
Price Above 20 SMMA:
The info table shows "Yes" for "Is price > 20 SMMA."
Interpretation:
The market is experiencing increasing short-term volatility.
The trend is upward, as the price is above the 20 SMMA.
You may consider entering a long position, using the calculated position size to manage risk.
Customization
Colors and Transparency:
Adjust the colors of the bands and labels to suit your preferences.
Risk Parameters:
Modify the default values for risk amounts in the inputs.
Moving Average Period:
Change the SMMA period if desired.
Limitations and Considerations
Lagging Indicators: ATR and SMMA are lagging indicators and may not predict future price movements.
Market Conditions: The effectiveness of this indicator may vary across different assets and market conditions.
Risk of Overfitting: Relying solely on this indicator without considering other factors may lead to suboptimal trading decisions.
Conclusion
This indicator combines essential elements of technical analysis to provide a comprehensive tool for traders. By visualizing ATR bands anchored at the OHLC4, indicating volatility crossovers, and providing real-time data on position sizing and trend direction, it aids in making informed trading decisions.
Whether you're a novice trader looking to understand market volatility or an experienced trader seeking to refine your strategy, this indicator offers valuable insights directly on your TradingView charts.
Code Summary
The script is written in Pine Script™ version 5 and includes:
Calculations for OHLC4, ATRs, Bands, SMMA:
Uses built-in functions like ta.atr() and ta.rma() for calculations.
Plotting Functions:
plotshape() for the OHLC4 dotted line.
plot() and fill() for the ATR bands.
Crossover Detection:
ta.crossover() and ta.crossunder() for detecting ATR crosses.
Labeling Crossovers:
label.new() to place informative labels on the chart.
Information Table Creation:
table.new() to create the table.
table.cell() to populate it with data.
Acknowledgments
ATR and SMMA Concepts: Built upon standard technical analysis concepts widely used in trading.
Pine Script™: Leveraged the capabilities of Pine Script™ version 5 for advanced charting and analysis.
Note: Always test any indicator thoroughly and consider combining it with other forms of analysis before making trading decisions. Trading involves risk, and past performance is not indicative of future results.
Happy Trading!
ATR Price Targets (Daily, Weekly, Monthly)This indicator calculates and displays dynamic price targets based on the Average True Range (ATR) for daily, weekly, and monthly timeframes. It’s designed to help traders set volatility-based price targets for more precise stop-losses, take-profit levels, and trade management.
Features:
Daily, Weekly, and Monthly ATR Targets: Automatically calculates and plots upper and lower price targets based on ATR values for each timeframe.
Risk Management Tool: Ideal for setting stop-loss and take-profit levels based on market volatility.
Customizable Settings: You can adjust the ATR length and multiplier to match your preferred trading style and risk tolerance.
Visual Alerts: Background colors change when price reaches or exceeds the calculated targets, providing easy visual cues for decision-making.
How to Use:
Use the upper and lower price targets to set realistic exit points for your trades.
Adjust the ATR multiplier for more or less conservative targets based on market volatility.
Apply this across multiple timeframes to combine long-term and short-term volatility trends.
This indicator is perfect for traders looking to incorporate volatility analysis into their trading strategy using ATR.
[BRAIN] Absolute Volatility of Price
Hello traders!
Today I want to share with you a series of scripts and strategies that I developed a few years ago. This is one of my first works, born from the curiosity of seeing a candlestick representation in a different way, without considering the price movement along the y-axis.
Imagine observing the price movement in dollars and percentages, always starting from the same reference point: the 0 axis. This approach can offer new insights and ideas on how and how much prices move.
To explain it better, the open of each candle does not start from the previous close negotiations but always starts from the 0 axis . In this way, it is possible to clearly compare the bodies of the candles with each other.
Script Visualization Methods and Input
- Study Normal: Simply reports the prices, including the negative ones of the red candles, on the same scale in absolute terms (ABS), as shown in the first indicator above.
- Study Normal Neg: In this version, the red candles vary negatively below zero, instead of in absolute terms above zero, as shown in the second indicator above.
- Study Perc: Similar to "Study Normal" but uses percentage values instead of dollars, useful for very low timeframes and low variations with many decimals, such as 1 minute on EUR/USD.
- Study Perc Neg: Similar to "Study Normal Neg" but uses percentage values.
Additionally, I have added the possibility to display or not, through two buttons, an average of the candle bodies adjustable in length via input and the range of each candle, always correlated in dollars or percentages, as per the main study setting.
I hope this work can be useful to many of you. I invite you to like if you appreciate my scripts and want to see more like these. Do not hesitate to comment or contact me for any doubts or questions.
PS: If you notice that in the script the sum of the percentage values between the shadow and the body of the candle does not correspond to the range, it is only a rounding issue. Change the precision setting to a lower value and you will see that the rounding disappears.
PS: In the script, to better visualize the percentage growth and decline of the instrument on very high timeframes, I decided to represent it as follows:
- If close ≥ open: (high - low) / low * 100
- If close < open: (high - low) / high * 100
The same method is also applied for calculating the percentage variations of the shadows relative to themselves.
I hope you like this version! If you need any further modifications or adjustments, let me know. Good luck with your project!
(In the photos below I show 3 versions of the indicator open on 3 different tickers as an example: from top to bottom in the 3 indicators are set these Study: Study Normal, Study Perc and Study Perc Neg)
Volatility Trend Bands [UAlgo]The Volatility Trend Bands is a trend-following indicator that combines the concepts of volatility and trend detection. Built using the Average True Range (ATR) to measure volatility, this indicator dynamically adjusts upper and lower bands around price movements. The bands act as dynamic support and resistance levels, making it easier to identify trend shifts and potential entry and exit points.
With the ATR multiplier, this indicator effectively captures volatility-based shifts in the market. The use of midline values allows for accurate trend detection, which is displayed through color-coded signals on the chart. Additionally, this tool provides clear buy and sell signals, accompanied by intuitive graphical markers for ease of use.
The Volatility Trend Bands is ideal for traders seeking an adaptive trend-following method that responds to changing market conditions while maintaining robust volatility control.
🔶 Key Features
Dynamic Support and Resistance: The indicator utilizes volatility to create dynamic bands. The upper band acts as resistance, and the lower band acts as support for the price. Wider bands indicate higher volatility, while narrower bands indicate lower volatility.
Customizable Inputs
You can tailor the indicator to your strategy by adjusting the:
Price Source: Select the price data (e.g., closing price) used for calculations.
ATR Length: Define the lookback period for the Average True Range (ATR) volatility measure.
ATR Multiplier: This factor controls the width of the volatility bands relative to the ATR value.
Color Options: Choose colors for the bands and signal arrows for better visualization.
Visual Signals: Arrows ("▲" for buy, "▼" for sell) appear on the chart when the trend changes, providing clear entry point indications.
Alerts: Integrated alerts for both buy and sell conditions, allowing you to receive notifications for potential trade opportunities.
🔶 Interpreting Indicator
Upper and Lower Bands: The upper and lower bands are dynamic, adjusting based on market volatility using the ATR. These bands serve as adaptive support and resistance levels. When price breaks above the upper band, it indicates a potential bullish breakout, signaling a strong uptrend. Conversely, a break below the lower band signals a bearish breakout, indicating a downtrend.
Buy/Sell Signals: The indicator provides clear buy and sell signals at breakout points. A buy signal ("▲") is generated when the price breaks above the upper band, suggesting the start of a bullish trend. A sell signal ("▼") is triggered when the price breaks below the lower band, indicating the beginning of a bearish trend. These signals help traders identify potential entry and exit points at key breakout levels.
Color-Coded Bars: The bars on the chart change color based on the trend direction. Teal bars represent bullish momentum, while purple bars signify bearish momentum. This color coding provides a quick visual cue about the market's current direction.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Bollinger Bands ForLoopBollinger Bands ForLoop
OVERVIEW
BB ForLoop is an improved version of Bollinger Bands it is designed to calculate an array of values 1 or -1 depending if soruce for calculations is above or below basis.
It takes avereage of values over a range of lengths, providing trend signals smothed based on various moving averages in order to get rid of noise.
It offers flexibility with different signal modes and visual customizations.
TYPE OF SIGNALS
-FAST (MA > MA or MA > 0.99)
-SLOW (MA > 0)
-THRESHOLD CROSSING (when cross above/below treshold set independently for both directions)
-FAST THRESHOLD (when there's change in signal by set margin e.g (0.4 -> 0.2) means bearsih when FT is set to 0.1, when MA is > 0.99 it will signal bullish, when MA < -0.99 it will signal bearish)
Generaly Lime color of line indicates Bullish, Fuchsia indicates Bearish.
This colors are not set in stone so you can change them in settings.
-Bullish Trend, line color is lime
-Bearish Trend, line color is fuchsia
Credit
Idea for this script was from one of indicators created by www.tradingview.com
Warning
Be careful when using this indicator especialy combining DEMA with FT (Fast Treshold).
This indicator can be really noisy depending on the settings, signal mode so it should be used preferably as a part of an strategy not as a stand alone indicator
Remember the lower the timeframe you use the more noise there is.
No single indicator should be used alone when making investment decisions.
Price-Volume w Trendline - Strategy [presentTrading]█ Introduction and How it is Different
The Price-Volume with Trendline Strategy is an innovative strategy that combines volume profile analysis, price-based Z-scores, and dynamic trendline filtering to identify optimal entry and exit points in the market. What sets this strategy apart is the integration of volume concentration (Point of Control or PoC) with dynamic volatility thresholds. Additionally, this strategy introduces a multi-step take profit (TP) mechanism that adjusts based on predefined levels, allowing traders to exit trades progressively while capitalizing on market momentum.
BTCUSD 6hr LS Performance
█ Strategy, How it Works: Detailed Explanation
The combination of multiple indicators and methodologies serves to create a more robust and reliable trading system. Each element is carefully chosen for its complementary role in providing accurate signals while minimizing false entries and exits. Here’s why the different components were chosen and how they work together:
- PoC and Z-Scores: The volume profile identifies key price areas, while the Z-score measures deviations from the mean. Together, they highlight points where the market is likely to react. For example, when the Z-score indicates an oversold condition near a PoC support level, it increases the probability of a reversal, providing a clear entry signal.
- Trendlines and Z-Scores: Trendlines serve as a secondary filter to ensure that price deviations identified by Z-scores align with broader market trends. This ensures that trades are only entered when the price has both deviated from its average and broken through a significant trendline level, reducing the likelihood of false signals.
- Multi-Step TP and Risk Management: Finally, the multi-step take profit logic works in tandem with the entry signals generated by the PoC, Z-scores, and trendlines. As the price moves in favor of the trade, profits are gradually locked in, ensuring the trader captures gains while still leaving room for further upside.
🔶 Point of Control (PoC) and Volume Profile Analysis
The PoC identifies the price level with the highest volume concentration within a specified lookback period. This price level represents where the most trading activity has occurred, often acting as a strong support or resistance. By breaking down the range into several rows (bins), the strategy identifies how much volume was traded at each price level.
🔶 Z-Score Calculation
The Z-score is a statistical metric that measures how far the current price is from its mean, expressed in terms of standard deviations. This is calculated both for price deviation and PoC-based deviation.
🔶 Trendline Breakout Filtering
The trendline filtering is a crucial aspect that refines entry signals by confirming trend continuation or reversals. It calculates trendlines based on pivot highs and lows using the selected method (e.g., ATR or standard deviation).
🔶 Multi-Step Take Profit
The multi-step take profit mechanism allows the strategy to take partial profits at several predefined levels. For example, when the price reaches 3%, 8%, 14%, or 21% above (or below) the entry price, it exits portions of the position. This is a useful technique for locking in profits as the market moves favorably.
Local
█ Usage
The Price-Volume with Trendline Strategy can be applied to various asset classes, including stocks, cryptocurrencies, and commodities. It is particularly effective in volatile markets where price deviations and volume concentrations signal potential reversals or trend continuations. By adjusting the settings for volatility and the lookback period, this strategy can be tailored to both short-term intraday trades and longer-term swing trades.
█ Default Settings
The default settings in the strategy play a vital role in shaping its performance.
- POC_lookbackLength (144): This defines the number of bars used to calculate the PoC. A longer lookback captures more data, leading to a more stable PoC, but may result in delayed signals. A shorter lookback increases responsiveness but may introduce noise.
- priceDeviationLength (200): This determines the period for calculating the standard deviation of price. A higher length smooths out the volatility, reducing the likelihood of false signals. Shorter lengths make the strategy more sensitive to sudden price movements.
- TL_length (14): Controls the swing detection period for trendline calculation. A shorter length will generate more frequent trendline breakouts, while a longer length captures only significant moves.
- Stop Loss and Take Profit: The strategy offers both fixed and SuperTrend-based stop losses. SuperTrend is adaptive to volatility, while fixed stop losses provide simpler risk control. The multi-step take profit ensures that profits are secured progressively, which can improve performance in trending markets by reducing the risk of full reversals.
Each of these settings can significantly affect the strategy’s risk-reward balance. For instance, increasing the stop loss level or the take profit percentages allows the strategy to stay in trades longer, potentially increasing profit per trade but at the cost of larger drawdowns. Conversely, tighter stops and smaller profit targets result in more frequent trades with lower average profit per trade.
Black-Scholes option price model & delta hedge strategyBlack-Scholes Option Pricing Model Strategy
The strategy is based on the Black-Scholes option pricing model and allows the calculation of option prices, various option metrics (the Greeks), and the creation of synthetic positions through delta hedging.
ATTENTION!
Trading derivative financial instruments involves high risks. The author of the strategy is not responsible for your financial results! The strategy is not self-sufficient for generating profit! It is created exclusively for constructing a synthetic derivative financial instrument. Also, there might be errors in the script, so use it at your own risk! I would appreciate it if you point out any mistakes in the comments! I would be even more grateful if you send the corrected code!
Application Scope
This strategy can be used for delta hedging short positions in sold options. For example, suppose you sold a call option on Bitcoin on the Deribit exchange with a strike price of $60,000 and an expiration date of September 27, 2024. Using this script, you can create a delta hedge to protect against the risk of loss in the option position if the price of Bitcoin rises.
Another example: Suppose you use staking of altcoins in your strategies, for which options are not available. By using this strategy, you can hedge the risk of a price drop (Put option). In this case, you won't lose money if the underlying asset price increases, unlike with a short futures position.
Another example: You received an airdrop, but your tokens will not be fully unlocked soon. Using this script, you can fully hedge your position and preserve their dollar value by the time the tokens are fully unlocked. And you won't fear the underlying asset price increasing, as the loss in the event of a price rise is limited to the option premium you will pay if you rebalance the portfolio.
Of course, this script can also be used for simple directional trading of momentum and mean reversion strategies!
Key Features and Input Parameters
1. Option settings:
- Style of option: "European vanilla", "Binary", "Asian geometric".
- Type of option: "Call" (bet on the rise) or "Put" (bet on the fall).
- Strike price: the option contract price.
- Expiration: the expiry date and time of the option contract.
2. Market statistic settings:
- Type of price source: open, high, low, close, hl2, hlc3, ohlc4, hlcc4 (using hl2, hlc3, ohlc4, hlcc4 allows smoothing the price in more volatile series).
- Risk-free return symbol: the risk-free rate for the market where the underlying asset is traded. For the cryptocurrency market, the return on the funding rate arbitrage strategy is accepted (a special function is written for its calculation based on the Premium Price).
- Volatility calculation model: realized (standard deviation over a moving period), implied (e.g., DVOL or VIX), or custom (you can specify a specific number in the field below). For the cryptocurrency market, the calculation of implied volatility is implemented based on the product of the realized volatility ratio of the considered asset and Bitcoin to the Bitcoin implied volatility index.
- User implied volatility: fixed implied volatility (used if "Custom" is selected in the "Volatility Calculation Method").
3. Display settings:
- Choose metric: what to display on the indicator scale – the price of the underlying asset, the option price, volatility, or Greeks (all are available).
- Measure: bps (basis points), percent. This parameter allows choosing the unit of measurement for the displayed metric (for all except the Greeks).
4. Trading settings:
- Hedge model: None (do not trade, default), Simple (just open a position for the full volume when the strike price is crossed), Synthetic option (creating a synthetic option based on the Black-Scholes model).
- Position side: Long, Short.
- Position size: the number of units of the underlying asset needed to create the option.
- Strategy start time: the moment in time after which the strategy will start working to create a synthetic option.
- Delta hedge interval: the interval in minutes for rebalancing the portfolio. For example, a value of 5 corresponds to rebalancing the portfolio every 5 minutes.
Post scriptum
My strategy based on the SegaRKO model. Many thanks to the author! Unfortunately, I don't have enough reputation points to include a link to the author in the description. You can find the original model via the link in the code, as well as through the search indicators on the charts by entering the name: "Black-Scholes Option Pricing Model". I have significantly improved the model: the calculation of volatility, risk-free rate and time value of the option have been reworked. The code performance has also been significantly optimized. And the most significant change is the execution, with which you can now trade using this script.
Ranges and Breakouts [AlgoAlpha]💥 Ranges and Breakouts by AlgoAlpha is a dynamic indicator designed for traders seeking to identify market ranges and capitalize on breakout opportunities. This tool automatically detects ranges based on price action over a specified period, visualizing these ranges with shaded boxes and midlines, making it easy to spot potential breakout scenarios. The indicator includes advanced features such as customizable pivot detection, internal range allowance, and automatic trend color changes for quick market analysis.
Key Features
💹 Dynamic Range Detection : Automatically identifies market ranges using customizable look-back and confirmation periods.
🎯 Breakout Alerts : Get alerted to bullish and bearish breakouts for potential trading opportunities.
📊 Visual Aids : Displays pivot highs/lows within ranges and plots midlines with adjustable styles for easier market trend interpretation.
🔔 Alerts : Signals potential take-profit points based on volatility and moving average crossovers.
🎨 Customizable Appearance : Choose between solid, dashed, or dotted lines for midlines and adjust the colors for bullish and bearish zones.
How to Use
⭐ Add the Indicator : Add the indicator to favorites by pressing the star icon. Adjust the settings like the look-back period, confirmation length, and pivot detection to match your trading strategy.
👀 Monitor the Chart : Watch for new ranges to form, highlighted by shaded boxes on the chart. Midlines and range bounds will appear to help you gauge potential breakout points.
⚡ React to Breakouts : Pay attention to color changes and alert signals for bullish or bearish breakouts. Use these signals to enter or exit trades.
🔔 Set Alerts : Customize alert conditions for new range formations, breakout signals, and take-profit levels to stay on top of market movements without constant monitoring.
How It Works
The indicator detects price ranges by analyzing the highest and lowest prices over a specified period. It confirms a range if these levels remain unchanged for a set number of bars, at which point it visually marks the range with shaded boxes. Pivots are identified within these ranges, and a midline is plotted to help interpret potential breakouts. When price breaks out of these defined ranges, the indicator changes the chart's background color to signal a bullish or bearish trend. Alerts can be set for range formation, breakouts, and take-profit opportunities, helping traders stay proactive in volatile markets.
Relative Range at Time/ Relative volatility / High−Low This script is designed to help you compare the size of the current price candle (the difference between the highest and lowest prices in a given time period) to the average size of the last several candles. It does this by calculating the average range of a certain number of previous candles (you can set how many with the "Length" input) and then dividing the current candle's range by this average. The result is plotted on the chart as a bar: if the current candle's range is larger than the average, the bar is green; if it's smaller, the bar is red. A horizontal line is also drawn at the value of 1, so you can easily see whether the current candle's range is above or below the average. If there’s an issue with the data, the script will show an error message to let you know.
Hullinger Percentile Oscillator [AlgoAlpha]🚀 Introducing the Hullinger Percentile Oscillator by AlgoAlpha! 🚀
This versatile Pine Script™ indicator is designed to help you identify swing trends and potential reversals with precision. Whether you're looking to catch market swings or spot divergences, the Hullinger Percentile Oscillator offers a comprehensive suite of features to enhance your trading strategy.
Key Features
🎯 Customizable Hullinger Settings: Adjust the main length, source, and standard deviation multipliers to fine-tune the indicator to your preferred trading style.
🔄 Dynamic Oscillator Modes: Switch between "Swing" mode for trend identification and "Contrarian" mode for reversal spotting, adapting the indicator to your market view.
📉 Divergence Detection: The indicator includes parameters to control the sensitivity and confirmation of divergence signals, helping to filter out noise and highlight significant market moves.
🌈 Color-Coded Visuals: Easily distinguish between bullish and bearish signals with customizable color settings for a clear visual representation on your chart.
🔔 Alert Integration: Stay ahead of the market with built-in alerts for key conditions, including strong and weak reversals, as well as bullish and bearish swings.
Quick Guide to Using the Hullinger Percentile Oscillator
Maximize your trading edge with the Hullinger Percentile Oscillator by following these steps! 📈✨
🛠 Add the Indicator: Add the indicator to favorites by pressing the star icon ⭐. Customize settings like Main Length, Oscillator Mode, and Appearance to fit your trading needs.
📊 Market Analysis: Use "Swing" mode to track trends and "Contrarian" mode to spot reversals. Watch for divergence signals to catch potential trend changes.
🔔 Alerts: Set up alerts to be notified of significant market movements without constantly monitoring your chart.
How It Works
The Hullinger Percentile Oscillator calculates its signals by applying a modified standard deviation approach to the Hull Moving Average (HMA) of a selected price source. It creates both inner and outer bands based on different multipliers. The oscillator then measures the position of the price relative to these bands, smoothing the result for swing trend detection. Depending on the chosen mode, the oscillator either highlights swing trends or potential reversals. Divergences are detected by comparing recent pivot highs and lows in both price and the oscillator, allowing you to spot bullish or bearish divergence setups. Alerts are triggered based on key crossovers or when specific conditions are met, ensuring that you are always informed of crucial market developments.
Hullinger Bands [AlgoAlpha]🎯 Introducing the Hullinger Bands Indicator ! 🎯
Maximize your trading precision with the Hullinger Bands , an advanced tool that combines the strengths of Hull Moving Averages and Bollinger Bands for a robust trading strategy. This indicator is designed to give traders clear and actionable signals, helping you identify trend changes and optimize entry and exit points with confidence.
✨ Key Features :
📊 Dual-Length Settings : Customize your main and TP signal lengths to fit your trading style.
🎯 Enhanced Band Accuracy : The indicator uses a modified standard deviation calculation for more reliable volatility measures.
🟢🔴 Color-Coded Signals : Easily spot bullish and bearish conditions with customizable color settings.
💡 Dynamic Alerts : Get notified for trend changes and TP signals with built-in alert conditions.
🚀 Quick Guide to Using Hullinger Bands
1. ⭐ Add the Indicator : Add the indicator to favorites by pressing the star icon. Adjust the settings to align with your trading preferences, such as length and multiplier values.
2. 🔍 Analyze Readings : Observe the color-coded bands for real-time insights into market conditions. When price is closer to the upper bands it suggests an overbought market and vice versa if price is closer to the lower bands. Price being above or below the basis can be a trend indicator.
3. 🔔 Set Alerts : Activate alerts for bullish/bearish trends and TP signals, ensuring you never miss a crucial market movement.
🔍 How It Works
The Hullinger Bands indicator calculates a central line (basis) using a simple moving average, while the upper and lower bands are derived from a modified standard deviation of price movements. Unlike the traditional Bollinger Bands, the standard deviation in the Hullinger bands uses the Hull Moving Average instead of the Simple Moving Average to calculate the average variance for standard deviation calculations, this give the modified standard deviation output "memory" and the bands can be observed expanding even after the price has started consolidating, this can identify when the trend has exhausted better as the distance between the price and the bands is more apparent. The color of the bands changes dynamically, based on the proximity of the closing price to the bands, providing instant visual cues for market sentiment. The indicator also plots TP signals when price crosses these bands, allowing traders to make informed decisions. Additionally, alerts are configured to notify you of crucial market shifts, ensuring you stay ahead of the curve.
Custom ATR Trailing StopThis Script creates a custom ATR (Average True Range) trailing stop. It allows traders to set up automated stop-loss levels based on the ATR, which adjusts dynamically to market volatility. The script is designed to support both long and short trades, offering flexibility and precision in trade management.
When loading the indicator to your chart, simply click to set the trade begining time, confirm various settings and you are set.
Check tooltips for more details in the input settigns menu.
User Inputs
Trade Setup: Allows users to set the trade direction (Long or Short), the signal source for entries, and the specific bar time for the trade setup.
ATR Settings: Configurable ATR lookback period, ATR smoothing period, initial ATR multiplier for setting the stop-loss, breakeven ATR multiplier, and a manual breakeven level.
ATR Calculations
Computes the ATR and its moving average.
Determines initial and breakeven stop levels based on the ATR.
Signal Validation
Validates long or short trade signals based on the specified bar time and trade direction.
Triggers alerts when a valid trade signal is detected.
Trailing Stop Logic
For long trades, adjusts the stop-loss level dynamically based on the ATR.
For short trades, performs similar adjustments in the opposite direction.
Updates the trailing stop level to ensure it follows the price, moving closer as the price moves favorably.
Resets the trade state when the stop-loss is hit, triggering an alert.
Plotting
Plots the trailing stop levels on the chart.
Uses green for stop levels indicating profit and red for stop levels indicating a loss.
Internal Bar Strength IBS [Anan]This indicator calculates and displays the Internal Bar Strength (IBS) along with its moving average. The IBS is a measure that represents where the closing price is relative to the high-low range of a given period.
█ Main Formula
The core of this indicator is the Internal Bar Strength (IBS) calculation. The basic IBS formula is:
ibs = (close - low) / (high - low)
I enhanced the original formula by incorporating a user-defined length parameter. This modification allows for greater flexibility in analysis and interpretation. The extended version enables users to adjust the indicator's length according to their specific needs or market conditions. Notably, setting the length parameter to 1 reproduces the behavior of the original formula, maintaining backward compatibility while offering expanded functionality:
ibs = (close - ta.lowest(low, ibs_length)) / (ta.highest(high, ibs_length) - ta.lowest(low, ibs_length))
Where:
- `close` is the closing price of the current bar
- `lowest low` is the lowest low price over the specified IBS length
- `highest high` is the highest high price over the specified IBS length
█ Key Features
- Calculates IBS using a user-defined length
- Applies a moving average to the IBS values
- Offers multiple moving average types
- Includes optional Bollinger Bands or Donchian Channel overlays
- Visualizes bull and bear areas
█ Inputs
- IBS Length: The period used for IBS calculation
- MA Type: The type of moving average applied to IBS (options: SMA, EMA, SMMA, WMA, VWMA, Bollinger Bands, Donchian)
- MA Length: The period used for the moving average calculation
- BB StdDev: Standard deviation multiplier for Bollinger Bands
█ How to Use and Interpret
1. IBS Line Interpretation:
- IBS values range from 0 to 1
- Values close to 1 indicate the close was near the high, suggesting a bullish sentiment
- Values close to 0 indicate the close was near the low, suggesting a bearish sentiment
- Values around 0.5 suggest the close was near the middle of the range
2. Overbought/Oversold Conditions:
- IBS values above 0.8 (teal zone) may indicate overbought conditions
- IBS values below 0.2 (red zone) may indicate oversold conditions
- These zones can be used to identify potential reversal points
3. Trend Identification:
- Consistent IBS values above 0.5 may indicate an uptrend
- Consistent IBS values below 0.5 may indicate a downtrend
4. Using Moving Averages:
- The yellow MA line can help smooth out IBS fluctuations
- Crossovers between the IBS and its MA can signal potential trend changes
5. Bollinger Bands/Donchian Channel:
- When enabled, these can provide additional context for overbought/oversold conditions
- IBS touching or exceeding the upper band may indicate overbought conditions
- IBS touching or falling below the lower band may indicate oversold conditions
Remember that no single indicator should be used in isolation. Always combine IBS analysis with other technical indicators, price action analysis, and broader market context for more reliable trading decisions.
Pivot WebThe Pivot Web is a prototype with its base derived from TradingView's standard pivot point indicator plus inspiration from LuxAlgo's trendline work alongside my own observations/experiences.
The theory is that there's legitimacy, from a technical standpoint, pivot point calculations are an adequate gauge of momentum and sentiment because the same math was used under pressure by floor traders themselves. That calculation is centered on the average of high, low, and closing prices. This indicator creates trendlines connecting the last pivot, support, and resistance levels to the current ones. A dynamic visual cue could make it easier to assess if the price will continue or reverse the current trajectory. This method also shows us an excellent visual for volatility.
Key Takeaways:
This indicator draws new dynamic trendlines.
These new trendlines connect the past and present pivot point levels based on the timeframe you select.
Shorter timeframes = More trendlines
Price adherence to the path of these lines may offer insight for trading.
Lastly, note the first set of data in each new timeframe displays the current original pivot point levels along with the trendlines attached to their ending point. Most of the time this indicator leaves room by briefly highlighting the original static levels with all levels also being optional displays. Also note that a more stable asset may not require the outermost support and resistance levels. Like most time series analysis tools, the Pivot Web requires current data to function properly.
"Nature is pleased with simplicity, and nature is no dummy."
RiskMetrics█ OVERVIEW
This library is a tool for Pine programmers that provides functions for calculating risk-adjusted performance metrics on periodic price returns. The calculations used by this library's functions closely mirror those the Broker Emulator uses to calculate strategy performance metrics (e.g., Sharpe and Sortino ratios) without depending on strategy-specific functionality.
█ CONCEPTS
Returns, risk, and volatility
The return on an investment is the relative gain or loss over a period, often expressed as a percentage. Investment returns can originate from several sources, including capital gains, dividends, and interest income. Many investors seek the highest returns possible in the quest for profit. However, prudent investing and trading entails evaluating such returns against the associated risks (i.e., the uncertainty of returns and the potential for financial losses) for a clearer perspective on overall performance and sustainability.
One way investors and analysts assess the risk of an investment is by analyzing its volatility , i.e., the statistical dispersion of historical returns. Investors often use volatility in risk estimation because it provides a quantifiable way to gauge the expected extent of fluctuation in returns. Elevated volatility implies heightened uncertainty in the market, which suggests higher expected risk. Conversely, low volatility implies relatively stable returns with relatively minimal fluctuations, thus suggesting lower expected risk. Several risk-adjusted performance metrics utilize volatility in their calculations for this reason.
Risk-free rate
The risk-free rate represents the rate of return on a hypothetical investment carrying no risk of financial loss. This theoretical rate provides a benchmark for comparing the returns on a risky investment and evaluating whether its excess returns justify the risks. If an investment's returns are at or below the theoretical risk-free rate or the risk premium is below a desired amount, it may suggest that the returns do not compensate for the extra risk, which might be a call to reassess the investment.
Since the risk-free rate is a theoretical concept, investors often utilize proxies for the rate in practice, such as Treasury bills and other government bonds. Conventionally, analysts consider such instruments "risk-free" for a domestic holder, as they are a form of government obligation with a low perceived likelihood of default.
The average yield on short-term Treasury bills, influenced by economic conditions, monetary policies, and inflation expectations, has historically hovered around 2-3% over the long term. This range also aligns with central banks' inflation targets. As such, one may interpret a value within this range as a minimum proxy for the risk-free rate, as it may correspond to the minimum rate required to maintain purchasing power over time.
The built-in Sharpe and Sortino ratios that strategies calculate and display in the Performance Summary tab use a default risk-free rate of 2%, and the metrics in this library's example code use the same default rate. Users can adjust this value to fit their analysis needs.
Risk-adjusted performance
Risk-adjusted performance metrics gauge the effectiveness of an investment by considering its returns relative to the perceived risk. They aim to provide a more well-rounded picture of performance by factoring in the level of risk taken to achieve returns. Investors can utilize such metrics to help determine whether the returns from an investment justify the risks and make informed decisions.
The two most commonly used risk-adjusted performance metrics are the Sharpe ratio and the Sortino ratio.
1. Sharpe ratio
The Sharpe ratio , developed by Nobel laureate William F. Sharpe, measures the performance of an investment compared to a theoretically risk-free asset, adjusted for the investment risk. The ratio uses the following formula:
Sharpe Ratio = (𝑅𝑎 − 𝑅𝑓) / 𝜎𝑎
Where:
• 𝑅𝑎 = Average return of the investment
• 𝑅𝑓 = Theoretical risk-free rate of return
• 𝜎𝑎 = Standard deviation of the investment's returns (volatility)
A higher Sharpe ratio indicates a more favorable risk-adjusted return, as it signifies that the investment produced higher excess returns per unit of increase in total perceived risk.
2. Sortino ratio
The Sortino ratio is a modified form of the Sharpe ratio that only considers downside volatility , i.e., the volatility of returns below the theoretical risk-free benchmark. Although it shares close similarities with the Sharpe ratio, it can produce very different values, especially when the returns do not have a symmetrical distribution, since it does not penalize upside and downside volatility equally. The ratio uses the following formula:
Sortino Ratio = (𝑅𝑎 − 𝑅𝑓) / 𝜎𝑑
Where:
• 𝑅𝑎 = Average return of the investment
• 𝑅𝑓 = Theoretical risk-free rate of return
• 𝜎𝑑 = Downside deviation (standard deviation of negative excess returns, or downside volatility)
The Sortino ratio offers an alternative perspective on an investment's return-generating efficiency since it does not consider upside volatility in its calculation. A higher Sortino ratio signifies that the investment produced higher excess returns per unit of increase in perceived downside risk.
█ CALCULATIONS
Return period detection
Calculating risk-adjusted performance metrics requires collecting returns across several periods of a given size. Analysts may use different period sizes based on the context and their preferences. However, two widely used standards are monthly or daily periods, depending on the available data and the investment's duration. The built-in ratios displayed in the Strategy Tester utilize returns from either monthly or daily periods in their calculations based on the following logic:
• Use monthly returns if the history of closed trades spans at least two months.
• Use daily returns if the trades span at least two days but less than two months.
• Do not calculate the ratios if the trade data spans fewer than two days.
This library's `detectPeriod()` function applies related logic to available chart data rather than trade data to determine which period is appropriate:
• It returns true if the chart's data spans at least two months, indicating that it's sufficient to use monthly periods.
• It returns false if the chart's data spans at least two days but not two months, suggesting the use of daily periods.
• It returns na if the length of the chart's data covers less than two days, signifying that the data is insufficient for meaningful ratio calculations.
It's important to note that programmers should only call `detectPeriod()` from a script's global scope or within the outermost scope of a function called from the global scope, as it requires the time value from the first bar to accurately measure the amount of time covered by the chart's data.
Collecting periodic returns
This library's `getPeriodicReturns()` function tracks price return data within monthly or daily periods and stores the periodic values in an array . It uses a `detectPeriod()` call as the condition to determine whether each element in the array represents the return over a monthly or daily period.
The `getPeriodicReturns()` function has two overloads. The first overload requires two arguments and outputs an array of monthly or daily returns for use in the `sharpe()` and `sortino()` methods. To calculate these returns:
1. The `percentChange` argument should be a series that represents percentage gains or losses. The values can be bar-to-bar return percentages on the chart timeframe or percentages requested from a higher timeframe.
2. The function compounds all non-na `percentChange` values within each monthly or daily period to calculate the period's total return percentage. When the `percentChange` represents returns from a higher timeframe, ensure the requested data includes gaps to avoid compounding redundant values.
3. After a period ends, the function queues the compounded return into the array , removing the oldest element from the array when its size exceeds the `maxPeriods` argument.
The resulting array represents the sequence of closed returns over up to `maxPeriods` months or days, depending on the available data.
The second overload of the function includes an additional `benchmark` parameter. Unlike the first overload, this version tracks and collects differences between the `percentChange` and the specified `benchmark` values. The resulting array represents the sequence of excess returns over up to `maxPeriods` months or days. Passing this array to the `sharpe()` and `sortino()` methods calculates generalized Information ratios , which represent the risk-adjustment performance of a sequence of returns compared to a risky benchmark instead of a risk-free rate. For consistency, ensure the non-na times of the `benchmark` values align with the times of the `percentChange` values.
Ratio methods
This library's `sharpe()` and `sortino()` methods respectively calculate the Sharpe and Sortino ratios based on an array of returns compared to a specified annual benchmark. Both methods adjust the annual benchmark based on the number of periods per year to suit the frequency of the returns:
• If the method call does not include a `periodsPerYear` argument, it uses `detectPeriod()` to determine whether the returns represent monthly or daily values based on the chart's history. If monthly, the method divides the `annualBenchmark` value by 12. If daily, it divides the value by 365.
• If the method call does specify a `periodsPerYear` argument, the argument's value supersedes the automatic calculation, facilitating custom benchmark adjustments, such as dividing by 252 when analyzing collected daily stock returns.
When the array passed to these methods represents a sequence of excess returns , such as the result from the second overload of `getPeriodicReturns()`, use an `annualBenchmark` value of 0 to avoid comparing those excess returns to a separate rate.
By default, these methods only calculate the ratios on the last available bar to minimize their resource usage. Users can override this behavior with the `forceCalc` parameter. When the value is true , the method calculates the ratio on each call if sufficient data is available, regardless of the bar index.
Look first. Then leap.
█ FUNCTIONS & METHODS
This library contains the following functions:
detectPeriod()
Determines whether the chart data has sufficient coverage to use monthly or daily returns
for risk metric calculations.
Returns: (bool) `true` if the period spans more than two months, `false` if it otherwise spans more
than two days, and `na` if the data is insufficient.
getPeriodicReturns(percentChange, maxPeriods)
(Overload 1 of 2) Tracks periodic return percentages and queues them into an array for ratio
calculations. The span of the chart's historical data determines whether the function uses
daily or monthly periods in its calculations. If the chart spans more than two months,
it uses "1M" periods. Otherwise, if the chart spans more than two days, it uses "1D"
periods. If the chart covers less than two days, it does not store changes.
Parameters:
percentChange (float) : (series float) The change percentage. The function compounds non-na values from each
chart bar within monthly or daily periods to calculate the periodic changes.
maxPeriods (simple int) : (simple int) The maximum number of periodic returns to store in the returned array.
Returns: (array) An array containing the overall percentage changes for each period, limited
to the maximum specified by `maxPeriods`.
getPeriodicReturns(percentChange, benchmark, maxPeriods)
(Overload 2 of 2) Tracks periodic excess return percentages and queues the values into an
array. The span of the chart's historical data determines whether the function uses
daily or monthly periods in its calculations. If the chart spans more than two months,
it uses "1M" periods. Otherwise, if the chart spans more than two days, it uses "1D"
periods. If the chart covers less than two days, it does not store changes.
Parameters:
percentChange (float) : (series float) The change percentage. The function compounds non-na values from each
chart bar within monthly or daily periods to calculate the periodic changes.
benchmark (float) : (series float) The benchmark percentage to compare against `percentChange` values.
The function compounds non-na values from each bar within monthly or
daily periods and subtracts the results from the compounded `percentChange` values to
calculate the excess returns. For consistency, ensure this series has a similar history
length to the `percentChange` with aligned non-na value times.
maxPeriods (simple int) : (simple int) The maximum number of periodic excess returns to store in the returned array.
Returns: (array) An array containing monthly or daily excess returns, limited
to the maximum specified by `maxPeriods`.
method sharpeRatio(returnsArray, annualBenchmark, forceCalc, periodsPerYear)
Calculates the Sharpe ratio for an array of periodic returns.
Callable as a method or a function.
Namespace types: array
Parameters:
returnsArray (array) : (array) An array of periodic return percentages, e.g., returns over monthly or
daily periods.
annualBenchmark (float) : (series float) The annual rate of return to compare against `returnsArray` values. When
`periodsPerYear` is `na`, the function divides this value by 12 to calculate a
monthly benchmark if the chart's data spans at least two months or 365 for a daily
benchmark if the data otherwise spans at least two days. If `periodsPerYear`
has a specified value, the function divides the rate by that value instead.
forceCalc (bool) : (series bool) If `true`, calculates the ratio on every call. Otherwise, ratio calculation
only occurs on the last available bar. Optional. The default is `false`.
periodsPerYear (simple int) : (simple int) If specified, divides the annual rate by this value instead of the value
determined by the time span of the chart's data.
Returns: (float) The Sharpe ratio, which estimates the excess return per unit of total volatility.
method sortinoRatio(returnsArray, annualBenchmark, forceCalc, periodsPerYear)
Calculates the Sortino ratio for an array of periodic returns.
Callable as a method or a function.
Namespace types: array
Parameters:
returnsArray (array) : (array) An array of periodic return percentages, e.g., returns over monthly or
daily periods.
annualBenchmark (float) : (series float) The annual rate of return to compare against `returnsArray` values. When
`periodsPerYear` is `na`, the function divides this value by 12 to calculate a
monthly benchmark if the chart's data spans at least two months or 365 for a daily
benchmark if the data otherwise spans at least two days. If `periodsPerYear`
has a specified value, the function divides the rate by that value instead.
forceCalc (bool) : (series bool) If `true`, calculates the ratio on every call. Otherwise, ratio calculation
only occurs on the last available bar. Optional. The default is `false`.
periodsPerYear (simple int) : (simple int) If specified, divides the annual rate by this value instead of the value
determined by the time span of the chart's data.
Returns: (float) The Sortino ratio, which estimates the excess return per unit of downside
volatility.
[SGM GARCH Volatility]I'm excited to share with you a Pine Script™ that I developed to analyze GARCH (Generalized Autoregressive Conditional Heteroskedasticity) volatility. This script allows you to calculate and plot GARCH volatility on TradingView. Let's see together how it works!
Introduction
Volatility is a key concept in finance that measures the variation in prices of a financial asset. The GARCH model is a statistical method that predicts future volatility based on past volatilities and prediction residuals (errors).
Indicator settings
We define several parameters for our indicator:
length = input.int(20, title="Length")
p = input.int(1, title="Lag order (p)")
q = input.int(1, title="Degree of moving average (q)")
cluster_value = input(0.2,title="cluster value")
length: The period used for the calculations, default 20.
p: The order of the delay for the GARCH model.
q: The degree of the moving average for the GARCH model.
cluster_value: A threshold value used to color the graph.
Calculation of logarithmic returns
We calculate logarithmic returns to capture price changes:
logReturns = math.log(close) - math.log(close )
Initializing arrays
We initialize arrays to store residuals and volatilities:
var float residuals = array.new_float(length, 0)
var float volatilities = array.new_float(length, 0)
We add the new logarithmic returns to the tables and keep their size constant:
array.unshift(residuals, logReturns)
if (array.size(residuals) > length)
array.pop(residuals)
We then calculate the mean and variance of the residuals:
meanResidual = array.avg(residuals)
varianceResidual = array.stdev(residuals, meanResidual)
volatility = math.sqrt(varianceResidual)
We update the volatility table with the new value:
array.unshift(volatilities, volatility)
if (array.size(volatilities) > length)
array.pop(volatilities)
GARCH volatility is calculated from accumulated data:
var float garchVolatility = na
if (array.size(volatilities) >= length and array.size(residuals) >= length)
alpha = 0.1 // Alpha coefficient
beta = 0.85 // Beta coefficient
omega = 0.01 // Omega constant
sumVolatility = 0.0
for i = 0 to p-1
sumVolatility := sumVolatility + beta * math.pow(array.get(volatilities, i), 2)
sumResiduals = 0.0
for j = 0 to q-1
sumResiduals := sumResiduals + alpha * math.pow(array.get(residuals, j), 2)
garchVolatility := math.sqrt(omega + sumVolatility + sumResiduals)
Plot GARCH volatility
We finally plot the GARCH volatility on the chart and add horizontal lines for easier visual analysis:
plt = plot(garchVolatility, title="GARCH Volatility", color=color.rgb(33, 149, 243, 100))
h1 = hline(0.1)
h2 = plot(cluster_value)
h3 = hline(0.3)
colorGarch = garchVolatility > cluster_value ? color.red: color.green
fill(plt, h2, color = colorGarch)
colorGarch: Determines the fill color based on the comparison between garchVolatility and cluster_value.
Using the script in your trading
Incorporating this Pine Script™ into your trading strategy can provide you with a better understanding of market volatility and help you make more informed decisions. Here are some ways to use this script:
Identification of periods of high volatility:
When the GARCH volatility is greater than the cluster value (cluster_value), it indicates a period of high volatility. Traders can use this information to avoid taking large positions or to adjust their risk management strategies.
Anticipation of price movements:
An increase in volatility can often precede significant price movements. By monitoring GARCH volatility spikes, traders can prepare for potential market reversals or accelerations.
Optimization of entry and exit points:
By using GARCH volatility, traders can better identify favorable times to enter or exit a position. For example, entering a position when volatility begins to decrease after a peak can be an effective strategy.
Adjustment of stops and objectives:
Since volatility is an indicator of the magnitude of price fluctuations, traders can adjust their stop-loss and take-profit orders accordingly. Periods of high volatility may require wider stops to avoid being exited from a position prematurely.
That's it for the detailed explanation of this Pine Script™ script. Don’t hesitate to use it, adapt it to your needs and share your feedback! Happy analysis and trading everyone!
Volatility and Volume by Hour EXT(Extended republication, use this instead of the old one)
The goal of this indicator is to show a “characteristic” of the instrument, regarding the price change and trading volume. You can see how the instrument “behaved” throughout the day in the lookback period. I've found this useful for timing in day trading.
The indicator creates a table on the chart to display various statistics for each hour of the day.
Important: ONLY SHOWS THE TABLE IF THE CHART’S TIMEFRAME IS 1H!
Explanation of the columns:
1. Volatility Percentage (Volat): This column shows the volatility of the price as a percentage. For example, a value of "15%" means the price movement was 15% of the total daily price movement within the hour.
2. Hourly Point Change (PointCh): This column shows the change in price points for each hour in the lookback period. For example, a value of "5" means the price has increased by 5 points in the hour, while "-3" means it has decreased by 3 points.
3. Hourly Point Change Percentage (PrCh% (LeverageX)): This column shows the percentage change in price points for each hour, adjusted with leverage multiplier. Displayed green (+) or red (-) accordingly. For example, a value of "10%" with a leverage of 2X means the price has effectively changed by 5% due to the leverage.
4. Trading Volume Percentage (TrVol): This column shows the percentage of the daily total volume that was traded in a specific hour. For example, a value of "10%" would mean that 10% of the day's total trading volume occurred in that hour.
5. Added New! - Relevancy Check: The indicator checks the last 24 candle. If the direction of the price movement was the same in the last 24 hour as the statistical direction in that hour, the background of the relevant hour in the second column goes green.
For example: if today at 9 o'clock the price went lower, so as at 9 o'clock in the loopback period, the instrument "behaves" according to statistics . So the statistics is probably more relevant for today. The more green background row the more relevancy.
Settings:
1. Lookback period: The lookback period is the number of previous bars from which data is taken to perform calculations. In this script, it's used in a loop that iterates over a certain number of past bars to calculate the statistics. TIP: Select a period the contains a trend in one direction, because an upward and a downward trend compensate the price movement in opposite directions.
2. Timezone: This is a string input that represents the user's timezone. The default value is "UTC+2". Adjust it to your timezone in order to view the hours properly.
3. Leverage: The default value is 10(!). This input is used to adjust the hourly point change percentage. For FOREX traders (for example) the statistics can show the leveraged percentage of price change. Set that according the leverage you trade the instrument with.
Use at your own risk, provided “as is” basis!
Hope you find it useful! Cheers!
Volatility_ZigZag_LibraryThis is a Pine Script library for the public indicator "Volatility ZigZag" by brettkind. For further description, please refer to the information available on the original indicator page.
Library "Volatility_ZigZag_Library"
getValues_andStyling_VolatilityZigZag_byBrettkind(hl_src, SOURCE, length, min_dev_input, stdev_fctr, ZigZag, zz_color, zz_width, zz_devline, zz_points, zz_alert_sign, ZZ_Label, ZZ_Label_clr, rev_text, zz_bars_text, pcabs_text, avg_pcabs_text, pcrel_text, avg_pcrel_text, vol_text, avg_vol_text, input_currency)
Parameters:
hl_src (bool)
SOURCE (float)
length (int)
min_dev_input (float)
stdev_fctr (float)
ZigZag (bool)
zz_color (color)
zz_width (int)
zz_devline (bool)
zz_points (bool)
zz_alert_sign (bool)
ZZ_Label (bool)
ZZ_Label_clr (color)
rev_text (bool)
zz_bars_text (bool)
pcabs_text (bool)
avg_pcabs_text (bool)
pcrel_text (bool)
avg_pcrel_text (bool)
vol_text (bool)
avg_vol_text (bool)
input_currency (string)
getStatisticTable_VolatilityZigZag_byBrettkind(x1, Y1_array, draw_tbl)
Parameters:
x1 (int)
Y1_array (array)
draw_tbl (bool)
Buy Sell Strategy With Z-Score [TradeDots]The "Buy Sell Strategy With Z-Score" is a trading strategy that harnesses Z-Score statistical metrics to identify potential pricing reversals, for opportunistic buying and selling opportunities.
HOW DOES IT WORK
The strategy operates by calculating the Z-Score of the closing price for each candlestick. This allows us to evaluate how significantly the current price deviates from its typical volatility level.
The strategy first takes the scope of a rolling window, adjusted to the user's preference. This window is used to compute both the standard deviation and mean value. With these values, the strategic model finalizes the Z-Score. This determination is accomplished by subtracting the mean from the closing price and dividing the resulting value by the standard deviation.
This approach provides an estimation of the price's departure from its traditional trajectory, thereby identifying market conditions conducive to an asset being overpriced or underpriced.
APPLICATION
Firstly, it is better to identify a stable trading pair for this technique, such as two stocks with considerable correlation. This is to ensure conformance with the statistical model's assumption of a normal Gaussian distribution model. The ideal performance is theoretically situated within a sideways market devoid of skewness.
Following pair selection, the user should refine the span of the rolling window. A broader window smoothens the mean, more accurately capturing long-term market trends, while potentially enhancing volatility. This refinement results in fewer, yet precise trading signals.
Finally, the user must settle on an optimal Z-Score threshold, which essentially dictates the timing for buy/sell actions when the Z-Score exceeds with thresholds. A positive threshold signifies the price veering away from its mean, triggering a sell signal. Conversely, a negative threshold denotes the price falling below its mean, illustrating an underpriced condition that prompts a buy signal.
Within a normal distribution, a Z-Score of 1 records about 68% of occurrences centered at the mean, while a Z-Score of 2 captures approximately 95% of occurrences.
The 'cool down period' is essentially the number of bars that await before the next signal generation. This feature is employed to dodge the occurrence of multiple signals in a short period.
DEFAULT SETUP
The following is the default setup on EURUSD 1h timeframe
Rolling Window: 80
Z-Score Threshold: 2.8
Signal Cool Down Period: 5
Commission: 0.03%
Initial Capital: $10,000
Equity per Trade: 30%
RISK DISCLAIMER
Trading entails substantial risk, and most day traders incur losses. All content, tools, scripts, articles, and education provided by TradeDots serve purely informational and educational purposes. Past performances are not definitive predictors of future results.
RSI and ATR Trend Reversal SL/TPQuick History:
I was frustrated with a standard fixed percent TP/SL as they often were not receptive to quick market rallies/reversals. I developed this TP/SL and eventually made it into a full fledge strategy and found it did well enough to publish. This strategy can be used as a standalone or tacked onto another strategy as a TP/SL. It does function as both with a single line. This strategy has been tested with TSLA , AAPL, NVDA, on the 15 minutes timeframe.
HOW IT WORKS:
Inputs:
Length: Simple enough, it determines the length of the RSI and ATR used.
Multiplier: This multiplies the RSI and ATR calculation, more on this later.
Delay to prevent Idealization: TradingView will use the open of the bar the strategy triggers on when calculating the backtest. This can produce unrealistic results depending on the source. If your source is open, set to 0, if anything else, set to 1.
Minimum Difference: This is essentially a traditional SL/TP, it is borderline unnecessary, but if the other parameters are wacky this can be used to ensure the SL/TP. It multiplies the source by the percent, so if it is set to 10, the SL/TP is initialized at src +- 10%.
Source input: Self Explanatory, be sure to update the Delay if you use open.
CALCULATION:
Parameters Initialization:
The strategy uses Heikinashi values for calculations, this is not toggleable in parameters, but can be easily changed by changing hclose to equal src.
FUNCTION INITIALIZATION:
highest_custom and lowest_custom do the same thing as ta.highest and ta.lowest, however the built in ta library does not allow for var int input, so I had to create my own functions to be used here. I actually developed these years ago and have used them in almost every strategy since. Feel especially free to use these in your own scripts.
The rsilev is where the magic happens.
SL/TP min/max are initially calculated to be used later.
Then we begin by establishing variables.
BullGuy is used to determine the length since the last crossup or crossdown, until one happens, it returns na, breaking the function. BearGuy is used in all the calculations, and is the same as BullGuy, unless BullGuy is na, where BearGuy counts up from 1 on each bar from 0.
We create our rsi and have to modify the second one to suit the function. In the case of the upper band, we mirror the lower one. So if the RSI is 80, we want it to be 20 on the upper band.
the upper band and lower band are calculated the exact same way, but mirrored. For the purpose of writing, I'm going to talk about the lower band. Assume everything is mirrored for the upper one. It finds the highest source since the last crossup or crossdown. It then multiplies from 1 / the RSI, this means that a rapid RSI increase will increase the band dramatically, so it is able to capture quick rally/reversals. We add this to the atr to source ratio, as the general volatility is a massive factor to be included. We then multiply this number by our chosen amount, and subtract it from the highest source, creating the band.
We do this same process but mirrored with both bands and compared it to the source. If the source is above the lower band, it suggests an uptrend, so the lower band is outputted, and vice versa for the upper one.
PLOTTING:
We also determine the line color in the same manner as we do the trend direction.
STRATEGY:
We then use the source again, and if it crosses up or down relative to the selected band, we enter a long or short respectively.
This may not be the most superb independent strategy, but it can be very useful as a TP/SL for your chosen entry conditions, especially in volatile markets or tickers.
Thank you for taking the time to read, and please enjoy.
NZTVolumeDESCRIPTION IN ENGLISH
🔶 INTRODUCTION
NZTVolume is an advanced indicator for TradingView , inspired by the mentor Almaz . It is intended to facilitate the analytical work of traders who actively use data on real trading volumes in their analysis. The indicator also has many features that simplify operation and provide great opportunities for analysis , including the key function - identification of effective and ineffective movements, which are described below.
🔶 CONTENT
This tool provides detailed visualization of real volume . Other features such as candlestick color change depending on volume, histogram display percentage change in volume , and display candles that have gained liquidity, but the most unique function is the determination of effective and ineffective movements, alerts for them are built into the indicator, and traders will have a unique opportunity by setting alerts to wait for the first effective movement (its meaning and description below) , all this is implemented through advanced computational algorithms applied in the code.
Key features include Real Volume Histogram, Dynamic Candle Color Change, Average Volume Table, Volume Percent Change, Liquidity taken Candle, Volume Moving Averages, Effective and ineffective movements with their lines, 3 types of customizable Volume Alerts.
🔶 LOGIC
🔹 Dynamic Candle Color Change (Изменять цвет свечей)
Candles change to a contrasting color if their volume exceeds that of the previous candle , differentiated into bullish and bearish , including settings for transparency and colors . Can be configured, enabled of or disabled.
🔹 Real Volume Histogram (Показывать гистограмму объемов)
Automatically retrieves data on volumes and shows it on a chart. Can be configured, enabled of or disabled.
🔹 Liquidity Taken Candle (Показывать свечу собравшую ликвидность)
A candle that has taken/captured liquidity , which is determined in the code by the high and low prices of the candle and the volume it has , is displayed on the histogram . Can be configured, enabled or disabled.
🔹 Percent Change Volume (Показывать гистограмму процентного изменения объема)
Calculates and displays volume percent changes on a histogram. Can be configured, enabled or disabled.
🔹 Effective and Ineffective movement/column (Показывать эффективные и неэффективные движения)
By calculating the average volatility of the last bars, as well as calculating the average volume of the last bars, comparing and contrasting them, we obtain the principle of effective and ineffective movement/column. The code includes alerts that allow you to notify the user when the first effective movement/candle appears, which can significantly improve trading and maintain concentration. Basically it's a specific column on histogram, but is called movement so that's it's easier to understand its logic.
🔹 Line of efficiency and inefficiency (Показывать линии эффективности и неэффективности)
These lines connect all effective and ineffective movements' highs on the histogram, allowing traders to practice, as well as build their trading strategy for the trading day.
🔹 Average Volume Table (Показывать таблицу со средним объемом)
Displays the average volume per bar for selected time intervals with the ability to customize the period . Can be configured, enabled or disabled.
🔹 Volume Moving Averages (Показывать среднюю скользящую объема)
Three lines corresponding to users' set time intervals show the change in volume with color and thickness settings. Can be configured, enabled or disabled.
🔹 Alerts (Во сколько раз объем свечи должен превышать предыдущую для алерта)
Alerts can be triggered by 3 conditions
1. if on the selected timeframe the volume of the current candle exceeds the volume of the previous candle by a user-specified number of times , an alert will be triggered.
2. if a liquidity candle appears on the selected timeframe , an alert is triggered.
3. if an effective column/movement appears on the selected timeframe, an alert is triggered.
It can be configured, enabled or disabled.
🔶 TECHNICAL SPECIFICATION AND UNIQUENESS
At the core of NZTVolume is a series of advanced algorithms that analyze volume data in real-time.
Some of them are:
Calculate average volumes by given time period (in hours).
Candles, that took liquidity - considers high volume and wicks' size.
Percent volume change histogram - calculate percent change of volume for every bar and shows it on graph.
Effective and ineffective movement - calculates by algorithm that considers average volume and average volatility, assuming that big market players will contribute the volume.
🔶 DEMONSTRATION OF HOW THE INDICATOR WORKS ON DIFFERENT ASSETS
NZTLevel + NZTVolume Together
🔶 SETTINGS
🔹 Candles (Свечи)
Enable/disable color changes of candles based on volume . Customize colors of contrasting and standard candles, adjust transparency.
🔹 Histogram Settings (Настройки Гистограммы)
Show volume histogram , show liquidity taken candle, show volume percent change histogram, show effective, ineffective movements, show efficiency/inefficiency line.
🔹 Display settings on the Histogram (Настройки отображения на Гистограмме)
Customizable colors for bullish, bearish, liquidity taken columns as well as for effective and ineffective movement/columns and for lines that connect them.
🔹 Table (Таблица)
Toggle the display of the average volume table, customize the background, and set time ranges (3 parameters, multi-timeframe support). Tables shows "average volume over 24/48/72 hours" in translation
🔹 Lines (Линии)
Option to display/hide average volume lines , select colors and thickness for each of the three lines.
🔹 Alerts (Алерты)
As was said before, there are 3 types of alerts , that can be turned off , there is a parameter can be chosen - How many times volume of the current candle should exceeds the volume of the previous candle to trigger alert
🔶 RECOMMENDATIONS FOR USE
It is recommended to set and save the indicator settings that best match your trading preferences to ensure efficiency and ease of use.
NZTVolume stands out among other indicators for its universal functions, versatility, simplicity of installation and setup, high performance, and extensive customization capabilities, making it an indispensable tool for traders of all levels.
The indicator was developed by Temirlan Tolegenov for NZT Trader Community, April 2024, Prague, Czech Republic
ОПИСАНИЕ НА РУССКОМ ЯЗЫКЕ
🔶 ВСТУПЛЕНИЕ
NZTVolume — это продвинутый индикатор для TradingView , вдохновленный ментором Алмазом . Он предназначен для облегчения аналитической работы трейдеров, которые активно используют данные о реальных объёмах торгов в своем анализе. Индикатор также имеет множество функций, которые упрощают работу и предоставляют большие возможности для анализа , включая ключевую функцию - выявление эффективных и неэффективных движений, которые описаны ниже.
🔶 СОДЕРЖАНИЕ
Индикатор обеспечивает детальную визуализацию реального объема . Другие функции, такие как изменение цвета свечей в зависимости от объема, отображение гистограммы процентное изменение объема и отображение свечи, собравшей ликвидность, но самой уникальной функцией является определение эффективных и неэффективных движений, оповещения по ним встроены в индикатор, и у трейдеров появится уникальная возможность установить оповещения на ожидание первого эффективного движения (его смысл и описание ниже). ) , всё это реализовано посредством продвинутых вычислительных алгоритмов, примененных в коде.
Ключевые функции включают в себя гистограмму реального объема, динамическое изменение цвета свечи, таблицу среднего объема, процентное изменение объема, свечу, взявшую ликвидности, скользящие средние объема, эффективные и неэффективные движения с их линиями, 3 типа настраиваемых параметров. Оповещения об объеме.
🔶 ЛОГИКА
🔹 Динамическое изменение цвета свечей (Изменить цвет свечей)
Свечи меняют цвет на контрастный , если их объем превышает объем предыдущей свечи , дифференцируются на бычьи и медвежьи , включая настройки прозрачности и цвета . Можно настроить, включить или отключить.
🔹 Гистограмма реального объёма (Показывать гистограмму объёмов)
Автоматически извлекает данные по объемам и отображает их на графике. Можно настроить, включить или отключить.
🔹 Свеча, собравшая ликвидность (Показывать свечу собравшую ликвидность)
Свеча, собравшая ликвидность , которая определена в коде максимальной и минимальной ценой свечи и объемом, который она имеет , отображается на гистограмма . Можно настроить, включить или отключить.
🔹 Процентное изменение объема (Показывать гистограмму процентного изменения объема)
Вычисляет и отображает процентные изменения объема на гистограмме. Можно настроить, включить или отключить.
🔹 Эффективные и неэффективные движения(Показать Эффективныеи неэффективные движения)
Рассчитав среднюю волатильность последних баров, а также вычислив средний объем последних баров, сравнивая и противопоставляя их, мы получаем принцип эффективного и неэффективного движения/столбца. В код включены оповещения, которые позволяют оповещать пользователя при появлении первого эффективного движения/свечи, что позволяет существенно улучшить торговлю и сохранить концентрацию. По сути, это отдельный столбец на гистограмме, но он называется движением, потому что так, его логику будет легче понять.
🔹 Линия эффективности и неэффективности (Показывать линии эффективности и неэффективности)
Эти линии соединяют хаи всех эффективных и неэффективных движений на гистограмме, позволяя трейдерам практиковаться, а также строить свою торговую стратегию на торговый день.
🔹 Таблица среднего объема (Показать таблицу со значением определения)
Отображает средний объем на бар для выбранных временных интервалов с возможностью настройки периода . Можно настроить, включить или отключить.
🔹 Скользящие средние объёма (Показать среднюю скользящую объём)
Три линии, соответствующие установленным пользователем временным интервалам , показывают изменение объема с настройками цвета и толщины. Можно настроить, включить или отключить.
🔹 Оповещения (Во сколько раз объем свечи должен превышать предыдущую для оповещения)
Оповещения могут быть вызваны тремя условиями
1. Если на выбранном таймфрейме объем текущей свечи превысит объем предыдущей свечи в заданное пользователем количество раз , сработает оповещение
2. Если на выбранном таймфрейме появляется свеча ликвидности , срабатывает оповещение
3. Если на выбранном таймфрейме появляется эффективный столбец/движение , срабатывает оповещение.
Это можно настроить, включить или отключить.
🔶 ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ И УНИКАЛЬНОСТЬ
В основе NZTVolume лежит серия продвинутых алгоритмов, которые анализируют данные об объемах в режиме реального времени.
Некоторые из них:
Рассчёт средние объёмы за заданный период времени (в часах).
Свечи, снявшие ликвидность - учитывает большой объем и размер шпилей.
Процентное изменение объема на гистограмме — рассчитывает процентное изменение объема для каждого бара и отображает его на графике.
Эффективное и неэффективное движение - рассчитывается по алгоритму, учитывающему средний объем и среднюю волатильность, предполагая, что объем крупных игроков будет сигнализировать о намерении рынка и силе движения.
🔶 НАСТРОЙКИ
🔹 Свечи
Включить/отключить изменение цвета свечей в зависимости от объема . Настройте цвета контрастных и стандартных свечей, настройте прозрачность.
🔹 Настройки гистограммы
Показать гистограмму объема , показать свечу взятой ликвидности, показать гистограмму процентного изменения объема, показать эффективные и неэффективные движения, показать линию эффективности/неэффективности.
🔹 Настройки отображения на гистограмме
Настраиваемые цвета для бычьих, медвежьих, свечей, собравших ликвидность столбцов, а также для эффективных и неэффективных движений/столбцов и линий, которые их соединяют.
🔹 Таблица
Переключайте отображение таблицы среднего объема, настраивайте фон и устанавливайте временные диапазоны (3 параметра, мультитаймфрейм).
🔹 Линии
Возможность отобразить/скрыть линии среднего объема , выбрать цвет и толщину для каждой из трех линий.
🔹 Алерты
Как было сказано ранее, есть 3 типа оповещений , которые можно отключить , можно выбрать параметр — во сколько раз объем текущей свечи должен превышать объем предыдущей свечи, чтобы сработало оповещение.
🔶 РЕКОМЕНДАЦИИ К ИСПОЛЬЗОВАНИЮ
Рекомендуется установить и сохранить настройки индикатора, которые лучше всего соответствуют вашим торговым предпочтениям, чтобы обеспечить эффективность и простоту использования.
NZTVolume выделяется среди других индикаторов своими универсальными функциями, универсальностью, простотой установки и настройки, высокой производительностью и широкими возможностями настройки, что делает его незаменимым инструментом для трейдеров всех уровней.
Индикатор разработан Темирланом Толегеновым для международного сообщества NZT Trader , Апрель 2024, Прага, Чешская Республика.
The indicator is published in accordance and respect to all House Rules of the TradingView platform.
Индикатор опубликован в соответствии и уважением ко всем внутренним правилами платформы TradingView.