Volume Profile with a few polylinesThe base of "Volume Profile with a few polylines" is another script of mine, Volume Profile (Maps) .
The structure of maps is used to gather the data. However, the drawings is done with polylines.
This enables coders to draw an entire volume profile with just a few polylines, while the range is broader.
This results in the benefit to draw more "lines" than with line.new() / box.new() alone.
🔶 CONCEPTS
🔹 Polylines
polyline.new creates a new polyline instance and displays it on the chart, sequentially connecting all of the points in the `points` array with line segments.
The segments in the drawing can be straight or curved depending on the `curved` parameter.
In this script, points are connected, starting from the bottom. The created line moves up until there is a price level where a volume value needs to be displayed,
at which the line goes to the left to the concerning volume value, coming back at the same price level until the line returns to its initial x-axis,
after which the line will continue to rise until all values are displayed.
A polyline can contain maximum 10000 points (10K).
Since the line has to go back and forth, each price/volume line takes 3 points.
In the case that 20K bars all have a different price, we would need 60K points, or just 6 polylines. A maximum of 100 polylines can be displayed.
The 3 highest volume values are displayed with line.new(), each with their own colour.
🔹 Maps
A map object is a collection that consists of key - value pairs
Each key is unique and can only appear once. When adding a new value with a key that the map already contains, that value replaces the old value associated with the key .
You can change the value of a particular key though, for example adding volume (value) at the same price (key), the latter technique is used in this script.
Volume is added to the map, associated with a particular price (default close, can be set at high, low, open,...)
When the map already contains the same price (key), the value (volume) is added to the existing volume at the associated price.
A map can contain maximum 50K values, which is more than enough to hold 20K bars (Basic 5K - Premium plan 20K), so the whole history can be put into a map.
🔹 Rounding function
This publication contains 2 round functions, which can be used to widen the Volume Profile
Round
• "Round" set at zero -> nothing changes to the source number
• "Round" set below zero -> x digit(s) after the decimal point, starting from the right side, and rounded.
• "Round" set above zero -> x digit(s) before the decimal point, starting from the right side, and rounded.
Example: 123456.789
0->123456.789
1->123456.79
2->123456.8
3->123457
-1->123460
-2->123500
Step
Another option is custom steps.
After setting "Round" to "Step", choose the desired steps in price,
Examples
• 2 -> 1234.00, 1236.00, 1238.00, 1240.00
• 5 -> 1230.00, 1235.00, 1240.00, 1245.00
• 100 -> 1200.00, 1300.00, 1400.00, 1500.00
• 0.05 -> 1234.00, 1234.05, 1234.10, 1234.15
•••
🔶 FEATURES
🔹 Volume * currency
Let's take as example BTCUSD, relative to USD, 10 volume at a price of 100 BTCUSD will be very different than 10 volume at a price of 30000 (1K vs. 300K)
If you want volume to be associated with USD, enable Volume * currency . Volume will then be multiplied by the price:
• 10 volume, 1 BTC = 100 -> 1000
• 10 volume, 1 BTC = 30K -> 300K
Polylines has the attributes curved & closed.
When "curved" is enabled the drawing will connect all points from the `points` array using curved line segments.
When "closed" is enabled the drawing will also connect the first point to the last point from the `points` array, resulting in a closed polyline.
They are default disabled, but can be enabled:
🔶 DETAILS
🔹 Put
When the map doesn't contain a price, it will be added, using map.put(id, key, value)
In our code:
map.put(originalMap, price, volume)
or
originalMap.put(price, volume)
A key (price) is now associated with a value (volume) -> key : value
Since all keys are unique, we don't have to know its position to extract the value, we just need to know the key -> map.get(id, key)
We use map.get() when a certain key already exists in the map, and we want to add volume with that value.
if originalMap.contains(price)
originalMap.put(price, originalMap.get(price) + volume)
-> At the last bar, all prices (source) are now associated with volume.
🔶 SETTINGS
Source : Set source of choice; default close , can be set as high , low , open , ...
Volume & currency : Enable to multiply volume with price (see Features )
Amount of bars : Set amount of bars which you want to include in the Volume Profile
🔹 Round -> ' Round/Step '
Round -> see Concepts
Step -> see Concepts
🔹 Display Volume Profile
Offset: shifts the Volume Profile (max. 500 bars to the right of last bar, see Features )
Max width Volume Profile: largest volume will be x bars wide, the rest is displayed as a ratio against largest volume (see Features )
Colours
Curved: make lines curved
Closed: connect last with first point
🔶 LIMITATIONS
• Lines won't go further than first bar (coded).
• The Volume Profile can be placed maximum 500 bar to the right of last price.
Komut dosyalarını "luxalgo" için ara
DIY Custom Strategy Builder [ZP] - v1DISCLAIMER:
This indicator as my first ever Tradingview indicator, has been developed for my personal trading analysis, consolidating various powerful indicators that I frequently use. A number of the embedded indicators within this tool are the creations of esteemed Pine Script developers from the TradingView community. In recognition of their contributions, the names of these developers will be prominently displayed alongside the respective indicator names. My selection of these indicators is rooted in my own experience and reflects those that have proven most effective for me. Please note that the past performance of any trading system or methodology is not necessarily indicative of future results. Always conduct your own research and due diligence before using any indicator or tool.
===========================================================================
Introducing the ultimate all-in-one DIY strategy builder indicator, With over 30+ famous indicators (some with custom configuration/settings) indicators included, you now have the power to mix and match to create your own custom strategy for shorter time or longer time frames depending on your trading style. Say goodbye to cluttered charts and manual/visual confirmation of multiple indicators and hello to endless possibilities with this indicator.
What it does
==================
This indicator basically help users to do 2 things:
1) Strategy Builder
With more than 30 indicators available, you can select any combination you prefer and the indicator will generate buy and sell signals accordingly. Alternative to the time-consuming process of manually confirming signals from multiple indicators! This indicator streamlines the process by automatically printing buy and sell signals based on your chosen combination of indicators. No more staring at the screen for hours on end, simply set up alerts and let the indicator do the work for you.
Available indicators that you can choose to build your strategy, are coded to seamlessly print the BUY and SELL signal upon confirmation of all selected indicators:
EMA Filter
2 EMA Cross
3 EMA Cross
Range Filter (Guikroth)
SuperTrend
Ichimoku Cloud
SuperIchi (LuxAlgo)
B-Xtrender (QuantTherapy)
Bull Bear Power Trend (Dreadblitz)
VWAP
BB Oscillator (Veryfid)
Trend Meter (Lij_MC)
Chandelier Exit (Everget)
CCI
Awesome Oscillator
DMI ( Adx )
Parabolic SAR
Waddah Attar Explosion (Shayankm)
Volatility Oscillator (Veryfid)
Damiani Volatility ( DV ) (RichardoSantos)
Stochastic
RSI
MACD
SSL Channel (ErwinBeckers)
Schaff Trend Cycle ( STC ) (LazyBear)
Chaikin Money Flow
Volume
Wolfpack Id (Darrellfischer1)
QQE Mod (Mihkhel00)
Hull Suite (Insilico)
Vortex Indicator
2) Overlay Indicators
Access the full potential of this indicator using the SWITCH BOARD section! Here, you have the ability to turn on and plot up to 14 of the included indicators on your chart. Simply select from the following options:
EMA
Support/Resistance (HeWhoMustNotBeNamed)
Supply/ Demand Zone ( SMC ) (Pmgjiv)
Parabolic SAR
Ichimoku Cloud
Superichi (LuxAlgo)
SuperTrend
Range Filter (Guikroth)
Average True Range (ATR)
VWAP
Schaff Trend Cycle ( STC ) (LazyBear)
PVSRA (TradersReality)
Liquidity Zone/Vector Candle Zone (TradersReality)
Market Sessions (Aurocks_AIF)
How it does it
==================
To explain how this indictor generate signal or does what it does, its best to put in points.
I have coded the strategy for each of the indicator, for some of the indicator you will see the option to choose strategy variation, these variants are either famous among the traders or its the ones I found more accurate based on my usage. By coding the strategy I will have the BUY and SELL signal generated by each indicator in the backend.
Next, the indicator will identify your selected LEADING INDICATOR and the CONFIRMATION INDICATOR(s).
On each candle close, the indicator will check if the selected LEADING INDICATOR generates signal (long or short).
Once the leading indicator generates the signal, then the indicator will scan each of the selected CONFIRMATION INDICATORS on candle close to check if any of the CONFIRMATION INDICATOR generated signal (long or short).
Until this point, all the process is happening in the backend, the indicator will print LONG or SHORT signal on the chart ONLY if LEADING INDICATOR and all the selected CONFIRMATION INDICATORS generates signal on candle close. example for long signal, the LEADING INDICATOR and all selected CONFIRMATION INDICATORS must print long signal.
The dashboard table will show your selected LEADING and CONFIRMATION INDICATORS and if LEADING or the CONFIRMATION INDICATORS have generated signal. Signal generated by LEADING and CONFIRMATION indicator whether long or short, is indicated by tick icon ✔. and if any of the selected CONFIRMATION or LEADING indicator does not generate signal on candle close, it will be indicated with cross symbol ✖.
how to use this indicator
==============================
Using the indicator is pretty simple, but it depends on your goal, whether you want to use it for overlaying the available indicators or using it to build your strategy or for both.
To use for Building your strategy: Select your LEADING INDICATOR, and then select your CONFIRMATION INDICATOR(s). if on candle close all the indicators generate signal, then this indicator will print SHORT or LONG signal on the chart for your entry. There are plenty of indicators you can use to build your strategy, some indicators are best for longer time frame setups while others are responsive indicators that are best for short time frame.
To use for overlaying the indicators: Open the setting of this indicator and scroll to the SWITCHBOARD section, from there you can select which indicator you want to plot on the chart.
For each of the listed indicators, you have the flexibility to customize the settings and configurations to suit your preferences. simply open indicator setting and scroll down, you will find configuration for each of the indicators used.
I will also release the Strategy Backtester for this indicator soon.
Adaptive Price Channel (log scale)The field of technical analysis is consistently expanding, with numerous indicators used for market forecasting. Amongst them, a novel indicator dubbed the Adaptive Price Channel (log scale), inspired by the renowned Nadaraya-Watson Envelope (LuxAlgo) from LuxAlgo, is gaining traction for its distinctive features and versatility. Unlike its predecessor, the Adaptive Price Channel (log scale) is applicable on a logarithmic scale, thereby allowing it to be utilized on both smaller and larger timeframes.
1. Key Features
The Adaptive Price Channel (log scale) is founded on the trading view Pinescript language, version 5, with its primary aim to maximize the versatility and scalability of trading indicators. It allows traders to adapt it according to their preferred timeframe, thereby making it applicable for a wide range of trading strategies.
Its bandwidth can be adjusted through the input parameters, offering traders the flexibility to manipulate the indicator according to their strategic requirements. Furthermore, it provides an option for repainting smoothing. This option enables users to control the repainting effect in which the historical output of the indicator may change over time. When disabled, the indicator provides the endpoints of the calculations, ensuring consistency in historical values.
Moreover, the Adaptive Price Channel (log scale) allows for color customization, thereby improving visibility and user-friendliness. The colors of the indicator's upward and downward directions can be changed according to the user's preference.
2. Working Mechanism
The Adaptive Price Channel (log scale) uses the logarithm of the source, which is typically the closing price of a trading instrument. It leverages a Gaussian function that exponentially decreases the further the price moves away from the mean, accounting for both positive and negative values. The bandwidth of the Gaussian function can be adjusted to adapt to different market conditions.
Additionally, the Adaptive Price Channel (log scale) features an array of 500 lines for each bar, which helps in defining the boundaries or envelope for price movements. The calculations are executed using the Nadaraya-Watson estimator, which uses kernel regression for non-parametric analysis.
The calculated values for the upper and lower bounds of the envelope are then converted back from the logarithmic scale using the exponential function. This calculation process continues for each bar until the last bar in the data set.
To ensure optimal performance, the Adaptive Price Channel (log scale) uses dynamic repainting. If the repainting mode is enabled, it adjusts the smoothing of the indicator for the entire historical data, making the results more accurate.
3. Visualization and Alerts
The Adaptive Price Channel (log scale) offers an array of visual aids, including labels and plots. The upper and lower bounds of the envelope are plotted, and the indicator triggers labels at points where the closing price crosses these boundaries. These labels serve as alerts for potential trading opportunities.
4. Conclusion
The Adaptive Price Channel (log scale) is an innovative and adaptable trading indicator, drawing inspiration from its predecessor but introducing unique features to increase its versatility. By providing a repainting option, it ensures consistent historical values, thereby enhancing the reliability of the indicator. Furthermore, the capability to operate on a logarithmic scale broadens its usability for different timeframes. The Adaptive Price Channel (log scale) is a powerful tool for any trader, facilitating a better understanding of market dynamics, and enabling more informed decision-making.
Waddah Attar Explosion with TDI First of all, a big shoutout to @shayankm, @LazyBear, @Bromley, @Goldminds and @LuxAlgo, the ones that made this script possible.
This is a version of Waddah Attar Explosion with Traders Dynamic Index.
WAE provides volume and volatility information. Also, WAE calculation was changed to a full-on MACD, to provide the momentum: the idea is to "assess" which MACD bars have significant momentum (i.e. crossover the Explosion Line)
TDI provides momentum, divergences as well as overbought and oversold areas. There is also a RSI on a different timeframe, for convergence.
Almost everything is editable:
- All moving averages are customizable, including the TRAMA, from @LuxAlgo
Waddah Attar Explosion_
- Three different crossing signals: histogram crossing contracting Explosion Line, expanding Explosion Line and ascending Explosion Line while both Bolling Bands are expanding; Explosion Line shows different color when expanding.
- Explosion line signals: Below DeadZone line and Exhaustion (highest value in a given lookback period). You can set a predefined EPL slope to filter out some noise.
- Deadzone signal : Deadzone squeeze ( lowst value in a given lookback period)
TDI:
- Overbought an Oversold signals. The OB and OS shapes have two colors, in order to display extreme signals on current timeframe or extreme signals on current and different time frame.
- Visual display of RSI outside the Bollinger Bands, and crossing of RSI Moving Average crossing of zero line.
I believe this combination is great for so many reasons!
Like the idea of TTM Squeeze? You can tune the Deadzone and Explosion lines to look for a volatility breakout
Like trading divergences or want to filter out extreme areas? The RSI is great for that
You like the using the MACD strategy but don't like the amount of false signals given? this WAE version filters some of them out.
If you are a Bollinger bands fan, you can customize both indicators to trade breakouts and/or mean reversion strategies, and filter out exhaustion of the bands expansion
This is my first publication, so give it a go and provide feedback if possible.
Moon Phases + Daily, Weekly, Monthly, Quarterly & Yearly Breaks█ Moon Phases
From LuxAlgo description.
Trading moon phases has become quite popular among traders, believing that there exists a relationship between moon phases and market movements.
This strategy is based on an estimate of moon phases with the possibility to use different methods to determine long/short positions based on moon phases.
Note that we assume moon phases are perfectly periodic with a cycle of 29.530588853 days (which is not realistically the case), as such there exists a difference between the detected moon phases by the strategy and the ones you would see. This difference becomes less important when using higher timeframes.
█ Daily, Weekly, Monthly, Quarterly & Yearly Breaks
This indicator marks the start of the selected periods with a vertical line that help with identifying cycles.
It allows to enable or disable independently the daily, weekly, monthly, quarterly and yearly session breaks.
This script is based on LuxAlgo and kaushi / icostan scripts.
Moon Phases Strategy
Year/Quarter/Month/Week/Day breaks
Month/week breaks
[potatoshop] Volume Profile lower timeframeThis script is a volume profile that displays the volume of transactions in price blocks over a recent period of time.
For a more detailed representation, OHCLV values on the time frame lower than the time zone on the chart were called and expressed.
Low time frames are adjustable.
You can adjust the number of blocks and the most recent time period that you want to view.
Although it cannot be compared to the volume indicators provided for paid users of Trading-View, it has functioned by displaying transactions that are difficult to find on open source.
Displays the amount traded in each block and the percentage of the total over a given period.
POC represents the middle value of the block with the highest transaction volume as a line.
TPOC represents the block that stayed the longest regardless of the volume of transaction.
The reversal line appears when you determine the trading advantage of the rising and falling closing on a block basis and then have a different value from the neighboring blocks.
(I didn't mean it much, but I just put it in for fun.)
It represents the total volume of transactions traded in each block, and there are also check boxes in the settings window that represent the volume of transactions that closed higher and closed lower.
You can specify the color of each block.
The highest and lowest values for the set period and the total sum of each block are displayed at the bottom of the box.
Because it was made using a lot of arrays, the total transaction volume was marked separately to check the value.
When expressing the price block according to the trading volume percentage, it was a pity that the minimum pixel was 1 bar, so it could not be expressed delicately.
Although set to bar_time in Box properties xloc, 1 bar was actually the minimum unit of the X-axis value.
The logic used to place the transaction volume for each block is as follows.
1. Divide the difference between the high and low values of 1 LTF bar by the transaction volume .
2. Find the percentage of this LTF bar within each block.
3. Multiply the ratio by the transaction volume again.
4. Store the value in each block cell.
Below are the codes of the people I referred to this time.
1. ‘Time & volume point of control (TPOC & VPOC)’ by quantifytools
2. ‘Volume Profile ’ by LuxAlgo
3. ‘Volume Profile and Volume Indicator by DGT’ by dgtrd
The script is for informational and educational purposes only.
이 스크립트는 최근 일정 기간동안의 거래량을 가격 블록단위로 표시해 주는 볼륨 프로화일입니다.
좀 더 자세한 표현을 위해 차트상의 시간대보다 낮은 시간 프레임상의 OHCLV 값들을 호출하여 표현하였습니다.
낮은 시간 프레임은 조절 가능합니다..
보고 싶은 최근 일정 기간과 블럭 갯수를 조절할 수 있습니다.
트뷰 유료 사용자들을 위해 제공하는 지표와는 비교할 수는 없지만, 오픈 소스상에서는 찾기 힘든 거래량을 표시해 기능을 넣었습니다.
각 블럭에서 거래되었던 양 과 주어진 기간 동안의 총량 대비 퍼센트를 표시해 줍니다.
POC는 거래량이 가장 많았던 블럭의 중간값을 라인으로 표현해 줍니다.
TPOC는 거래량에 상관없이 가장 오랜 시간 머물렸던 블럭을 표현해 줍니다.
반전선은 블럭 단위로 상승 마감과 하락 마감의 거래량 우세를 결정한 뒤, 이웃 블럭들하고 다른 값을 가질 때 나타납니다.
(어떤 뜻을 갖고 만든 건 아니고 그냥 재미로 넣어 보았습니다.)
각 블럭에서 거래되었던 총거래량을 표현해 주며, 또한 설정창에서 상승 마감한 거래량과 하락 마감한 거래량을 표현하는 체크 박스가 있습니다.
각 블럭의 색깔을 지정하실 수 있습니다.
설정된 기간 동안의 최고값과 최저값, 각 블럭을 합친 총량을 박스 하단에 표시해 두었습니다.
어레이를 많이 사용하여 만들었기 때문에 값의 확인을 위해 전체 거래량을 따로 표시하였습니다.
가격 블럭을 거래량 퍼센트에 따라 표현할 때, 최소 픽셀이 1bar 이어서 섬세하게 표현 할 수 없어 안타까웠습니다.
박스 속성을 xloc.bar_time 로 설정하였지만 실제로는 1 bar가 X축 값의 최소 단위였습니다.
각 블록 별로 거래량을 배치 할 때 쓰인 로직은 다음과 같습니다.
1. 1 LTF bar의 하이 와 로우 값의 차이를 거래량으로 나누어 줍니다.
2. 각 블록 안에서 이 LTF bar가 차지 하는 비율을 구합니다.
3. 그 비율에 다시 거래량을 곱해 줍니다.
4. 그 값을 각 블록 셀에 저장해 줍니다.
밑에 제가 이번에 참고한 분들의 코드들입니다.
1. ‘Time & volume point of control (TPOC & VPOC)’ by quantifytools
2. ‘Volume Profile ’ by LuxAlgo
3. ‘Volume Profile and Volume Indicator by DGT’ by dgtrd
MAConverging + QQE Threshold This trading script is a trading strategy that is made up of 2 public indicators so credit goes to LuxAlgo and Jose5770. I have the 2 indicators listed below.
1) Moving Average Converging (LuxAlgo)
2) QQE Threshold (Jose5770)
This trading strategy is buying when the two indicators align, and then the take profit is the first red bar on the QQE Threshold histogram. It is not a set risk reward but instead a variable take profit strategy. I have the rules of the strategy listed below in order of how it works.
Long Position :
1. Wait for Moving Average Converging to be green
2. Candlestick is green from the QQE Threshold indicator
3. QQE Threshold histogram is green as well, then it enters the trade once we have these criteria met.
Take profit is the first red bar on the QQE Threshold histogram that appears and the trade will close.
Short Position :
1. Wait for Moving Average Converging to be red
2. Candlestick is red from the QQE Threshold indicator
3. QQE Threshold histogram is red as well, then it enters the trade once we have these criteria met.
Take profit is the first green bar on the QQE Threshold histogram that appears and the trade will close.
I hope everyone enjoys!
SuperTrend AI Oscillator StrategySuperTrend AI Oscillator Strategy
Overview
This strategy is a trend-following approach that combines the SuperTrend indicator with oscillator-based filtering.
By identifying market trends while utilizing oscillator-based momentum analysis, it aims to improve entry precision.
Additionally, it incorporates a trailing stop to strengthen risk management while maximizing profits.
This strategy can be applied to various markets, including Forex, Crypto, and Stocks, as well as different timeframes. However, its effectiveness varies depending on market conditions, so thorough testing is required.
Features
1️⃣ Trend Identification Using SuperTrend
The SuperTrend indicator (a volatility-adjusted trend indicator based on ATR) is used to determine trend direction.
A long entry is considered when SuperTrend turns bullish.
A short entry is considered when SuperTrend turns bearish.
The goal is to capture clear trend reversals and avoid unnecessary trades in ranging markets.
2️⃣ Entry Filtering with an Oscillator
The Super Oscillator is used to filter entry signals.
If the oscillator exceeds 50, it strengthens long entries (indicating strong bullish momentum).
If the oscillator drops below 50, it strengthens short entries (indicating strong bearish momentum).
This filter helps reduce trades in uncertain market conditions and improves entry accuracy.
3️⃣ Risk Management with a Trailing Stop
Instead of a fixed stop loss, a SuperTrend-based trailing stop is implemented.
The stop level adjusts automatically based on market volatility.
This allows profits to run while managing downside risk effectively.
4️⃣ Adjustable Risk-Reward Ratio
The default risk-reward ratio is set at 1:2.
Example: A 1% stop loss corresponds to a 2% take profit target.
The ratio can be customized according to the trader’s risk tolerance.
5️⃣ Clear Trade Signals & Visual Support
Green "BUY" labels indicate long entry signals.
Red "SELL" labels indicate short entry signals.
The Super Oscillator is plotted in a separate subwindow to visually assess trend strength.
A real-time trailing stop is displayed to support exit strategies.
These visual aids make it easier to identify entry and exit points.
Trading Parameters & Considerations
Initial Account Balance: Default is $7,000 (adjustable).
Base Currency: USD
Order Size: 10,000 USD
Pyramiding: 1
Trading Fees: $0.94 per trade
Long Position Margin: 50%
Short Position Margin: 50%
Total Trades (M5 Timeframe): 1,032
Visual Aids for Clarity
This strategy includes clear visual trade signals to enhance decision-making:
Green "BUY" labels for long entries
Red "SELL" labels for short entries
Super Oscillator plotted in a subwindow with a 50 midline
Dynamic trailing stop displayed for real-time trend tracking
These visual aids allow traders to quickly identify trade setups and manage positions with greater confidence.
Summary
The SuperTrend AI Oscillator Strategy is developed based on indicators from Black Cat and LuxAlgo.
By integrating high-precision trend analysis with AI-based oscillator filtering, it provides a strong risk-managed trading approach.
Important Notes
This strategy does not guarantee profits—performance varies based on market conditions.
Past performance does not guarantee future results. Markets are constantly changing.
Always test extensively with backtesting and demo trading before using it in live markets.
Risk management, position sizing, and market conditions should always be considered when trading.
Conclusion
This strategy combines trend analysis with momentum filtering, enhancing risk management in trading.
By following market trends carefully, making precise entries, and using trailing stops, it seeks to reduce risk while maximizing potential profits.
Before using this strategy, be sure to test it thoroughly via backtesting and demo trading, and adjust the settings to match your trading style.
Advanced Order Blocks by AccountantXThe "Advanced Order Blocks by AccountantX" is tool designed to identify and visualize significant order blocks in the market.
This script goes beyond traditional order block detection by integrating advanced features such as volume threshold filtering, ATR-based sizing, and higher timeframe considerations.
How It works:
A. General data :
- Order Block Detection: Identifies bullish and bearish order blocks based on swing highs and lows, with options to filter by volume thresholds to ensure significant levels.
- Volume Threshold: Only displays order blocks where the volume exceeds a user-defined threshold, ensuring the highlighted zones are of particular significance.
- ATR-Based Sizing: Offers the option to use the Average True Range (ATR) for sizing order blocks, allowing for dynamic adjustment based on market volatility.
- Higher Timeframe Integration: Includes the ability to display order blocks from a higher timeframe, providing a broader market perspective.
- Customizable Appearance: Users can customize the colors and transparency of the order blocks, ensuring they fit seamlessly with any chart setup.
B. Code explanation :
- The script allows you to set a minimum volume threshold. Order blocks are only shown if the volume during their formation exceeds this threshold, ensuring that only significant price levels are highlighted.
- When enabled, the ATR (Average True Range) is used to size the order blocks. This means the height of the blocks adjusts dynamically with market volatility, providing a more accurate representation of significant zones.
- The script can display order blocks from a higher timeframe on your current chart. This is useful for aligning shorter-term trading decisions with broader market trends.
C. How to Use:
a) Set the volume threshold to filter out less significant order blocks. Adjust the value according to the typical volume of your trading instrument;
b) Enable the ATR-based sizing and set the period and multiplier to match your trading style. This helps in identifying order blocks relative to market volatility;
c) Choose a higher timeframe if you want to see significant order blocks from a broader market perspective. This can help in making more informed trading decisions.
Acknowledgements:
This script builds upon traditional order block concepts by integrating advanced features and customization options. Special thanks to the TradingView community( @fluxchart, @LuxAlgo_Team) for providing foundational concepts and inspiration.
Important Note
This script is provided as-is for educational purposes.
Predictive Channel SignalsThis script is a comprehensive tool designed to enhance trading strategies by utilizing predictive channels, multiple moving average types, and dynamic signal generation. The script is meticulously crafted for traders who seek to identify potential support and resistance levels, anticipate market reversals, and optimize entry and exit points through advanced technical analysis featuring with the help of codes provided by LuxAlgo.
Core Features:
Dynamic Predictive Channels: The script calculates predictive channels based on price movements and volatility, represented by adjustable factors for sensitivity and slope. These channels adapt to changing market conditions, providing real-time support and resistance levels.
Versatile Moving Averages: Users can select from a variety of moving average types, including SMA, EMA, SMMA (RMA), HullMA, WMA, VWMA, DEMA, and TEMA. This flexibility allows traders to tailor the analysis to their specific strategy and market view.
Signal Generation: The script generates buying and selling signals based on the interaction between moving averages and predictive channels. Signals are categorized into low, mid, and high tiers, indicating the strength and potential risk/reward of the trade opportunity.
Visual Cues and Customization: With an emphasis on usability, the script offers customizable color schemes for easy interpretation of bullish and bearish zones, moving averages, and trading signals. Traders can quickly identify market trends and reversal points at a glance.
Advanced Calculations: Utilizing calculations such as the Average True Range (ATR) for volatility assessment, the script ensures that signals are both sensitive to market dynamics and robust against false positives.
Ideal for Traders Who:
Prefer a technical analysis approach with a focus on moving averages and price channels.
Desire a customizable tool that can adapt to different trading styles and market conditions.
Seek to enhance their trading strategy with predictive insights and actionable signals.
Circle = Entry Point
End of polyline = Stop Loss
1 Circle = Low Strength
2 Circles = Mid Strength
3 Circles = High Strength
Volume Profile HeatmapA variation of a Volume Profile based on code originally by LuxAlgo. () The traditional bar chart is replaced with full-width bars that are brighter for high volume price levels.
Like a traditional VP, its purpose is to visualize how volume corresponds to specific price levels, allowing you to get a quick idea of where the most activity is occurring, and where it hasn't been. This information may provide clues as to where price action may return, areas of support and resistance , and regions where price may move quickly. The basic concepts behind any Volume Profile (or Price by Volume Chart) should apply here as well. (investopedia article)
Inputs are set up such that you can customize the lookback period, number of rows, and width of rows for most major timeframes individually. Timeframes between those available will use the next lower timeframe settings (e.g., 2m chart will use the 1m settings.)
This indicator is experimental and is likely to receive further updates.
Fuzzy SMA Trend Analyzer (experimental)[FibonacciFlux]Fuzzy SMA Trend Analyzer (Normalized): Advanced Market Trend Detection Using Fuzzy Logic Theory
Elevate your technical analysis with institutional-grade fuzzy logic implementation
Research Genesis & Conceptual Framework
This indicator represents the culmination of extensive research into applying fuzzy logic theory to financial markets. While traditional technical indicators often produce binary outcomes, market conditions exist on a continuous spectrum. The Fuzzy SMA Trend Analyzer addresses this limitation by implementing a sophisticated fuzzy logic system that captures the nuanced, multi-dimensional nature of market trends.
Core Fuzzy Logic Principles
At the heart of this indicator lies fuzzy logic theory - a mathematical framework designed to handle imprecision and uncertainty:
// Improved fuzzy_triangle function with guard clauses for NA and invalid parameters.
fuzzy_triangle(val, left, center, right) =>
if na(val) or na(left) or na(center) or na(right) or left > center or center > right // Guard checks
0.0
else if left == center and center == right // Crisp set (single point)
val == center ? 1.0 : 0.0
else if left == center // Left-shoulder shape (ramp down from 1 at center to 0 at right)
val >= right ? 0.0 : val <= center ? 1.0 : (right - val) / (right - center)
else if center == right // Right-shoulder shape (ramp up from 0 at left to 1 at center)
val <= left ? 0.0 : val >= center ? 1.0 : (val - left) / (center - left)
else // Standard triangle
math.max(0.0, math.min((val - left) / (center - left), (right - val) / (right - center)))
This implementation of triangular membership functions enables the indicator to transform crisp numerical values into degrees of membership in linguistic variables like "Large Positive" or "Small Negative," creating a more nuanced representation of market conditions.
Dynamic Percentile Normalization
A critical innovation in this indicator is the implementation of percentile-based normalization for SMA deviation:
// ----- Deviation Scale Estimation using Percentile -----
// Calculate the percentile rank of the *absolute* deviation over the lookback period.
// This gives an estimate of the 'typical maximum' deviation magnitude recently.
diff_abs_percentile = ta.percentile_linear_interpolation(math.abs(raw_diff), normLookback, percRank) + 1e-10
// ----- Normalize the Raw Deviation -----
// Divide the raw deviation by the estimated 'typical max' magnitude.
normalized_diff = raw_diff / diff_abs_percentile
// ----- Clamp the Normalized Deviation -----
normalized_diff_clamped = math.max(-3.0, math.min(3.0, normalized_diff))
This percentile normalization approach creates a self-adapting system that automatically calibrates to different assets and market regimes. Rather than using fixed thresholds, the indicator dynamically adjusts based on recent volatility patterns, significantly enhancing signal quality across diverse market environments.
Multi-Factor Fuzzy Rule System
The indicator implements a comprehensive fuzzy rule system that evaluates multiple technical factors:
SMA Deviation (Normalized): Measures price displacement from the Simple Moving Average
Rate of Change (ROC): Captures price momentum over a specified period
Relative Strength Index (RSI): Assesses overbought/oversold conditions
These factors are processed through a sophisticated fuzzy inference system with linguistic variables:
// ----- 3.1 Fuzzy Sets for Normalized Deviation -----
diffN_LP := fuzzy_triangle(normalized_diff_clamped, 0.7, 1.5, 3.0) // Large Positive (around/above percentile)
diffN_SP := fuzzy_triangle(normalized_diff_clamped, 0.1, 0.5, 0.9) // Small Positive
diffN_NZ := fuzzy_triangle(normalized_diff_clamped, -0.2, 0.0, 0.2) // Near Zero
diffN_SN := fuzzy_triangle(normalized_diff_clamped, -0.9, -0.5, -0.1) // Small Negative
diffN_LN := fuzzy_triangle(normalized_diff_clamped, -3.0, -1.5, -0.7) // Large Negative (around/below percentile)
// ----- 3.2 Fuzzy Sets for ROC -----
roc_HN := fuzzy_triangle(roc_val, -8.0, -5.0, -2.0)
roc_WN := fuzzy_triangle(roc_val, -3.0, -1.0, -0.1)
roc_NZ := fuzzy_triangle(roc_val, -0.3, 0.0, 0.3)
roc_WP := fuzzy_triangle(roc_val, 0.1, 1.0, 3.0)
roc_HP := fuzzy_triangle(roc_val, 2.0, 5.0, 8.0)
// ----- 3.3 Fuzzy Sets for RSI -----
rsi_L := fuzzy_triangle(rsi_val, 0.0, 25.0, 40.0)
rsi_M := fuzzy_triangle(rsi_val, 35.0, 50.0, 65.0)
rsi_H := fuzzy_triangle(rsi_val, 60.0, 75.0, 100.0)
Advanced Fuzzy Inference Rules
The indicator employs a comprehensive set of fuzzy rules that encode expert knowledge about market behavior:
// --- Fuzzy Rules using Normalized Deviation (diffN_*) ---
cond1 = math.min(diffN_LP, roc_HP, math.max(rsi_M, rsi_H)) // Strong Bullish: Large pos dev, strong pos roc, rsi ok
strength_SB := math.max(strength_SB, cond1)
cond2 = math.min(diffN_SP, roc_WP, rsi_M) // Weak Bullish: Small pos dev, weak pos roc, rsi mid
strength_WB := math.max(strength_WB, cond2)
cond3 = math.min(diffN_SP, roc_NZ, rsi_H) // Weakening Bullish: Small pos dev, flat roc, rsi high
strength_N := math.max(strength_N, cond3 * 0.6) // More neutral
strength_WB := math.max(strength_WB, cond3 * 0.2) // Less weak bullish
This rule system evaluates multiple conditions simultaneously, weighting them by their degree of membership to produce a comprehensive trend assessment. The rules are designed to identify various market conditions including strong trends, weakening trends, potential reversals, and neutral consolidations.
Defuzzification Process
The final step transforms the fuzzy result back into a crisp numerical value representing the overall trend strength:
// --- Step 6: Defuzzification ---
denominator = strength_SB + strength_WB + strength_N + strength_WBe + strength_SBe
if denominator > 1e-10 // Use small epsilon instead of != 0.0 for float comparison
fuzzyTrendScore := (strength_SB * STRONG_BULL +
strength_WB * WEAK_BULL +
strength_N * NEUTRAL +
strength_WBe * WEAK_BEAR +
strength_SBe * STRONG_BEAR) / denominator
The resulting FuzzyTrendScore ranges from -1 (strong bearish) to +1 (strong bullish), providing a smooth, continuous evaluation of market conditions that avoids the abrupt signal changes common in traditional indicators.
Advanced Visualization with Rainbow Gradient
The indicator incorporates sophisticated visualization using a rainbow gradient coloring system:
// Normalize score to for gradient function
normalizedScore = na(fuzzyTrendScore) ? 0.5 : math.max(0.0, math.min(1.0, (fuzzyTrendScore + 1) / 2))
// Get the color based on gradient setting and normalized score
final_color = get_gradient(normalizedScore, gradient_type)
This color-coding system provides intuitive visual feedback, with color intensity reflecting trend strength and direction. The gradient can be customized between Red-to-Green or Red-to-Blue configurations based on user preference.
Practical Applications
The Fuzzy SMA Trend Analyzer excels in several key applications:
Trend Identification: Precisely identifies market trend direction and strength with nuanced gradation
Market Regime Detection: Distinguishes between trending markets and consolidation phases
Divergence Analysis: Highlights potential reversals when price action and fuzzy trend score diverge
Filter for Trading Systems: Provides high-quality trend filtering for other trading strategies
Risk Management: Offers early warning of potential trend weakening or reversal
Parameter Customization
The indicator offers extensive customization options:
SMA Length: Adjusts the baseline moving average period
ROC Length: Controls momentum sensitivity
RSI Length: Configures overbought/oversold sensitivity
Normalization Lookback: Determines the adaptive calculation window for percentile normalization
Percentile Rank: Sets the statistical threshold for deviation normalization
Gradient Type: Selects the preferred color scheme for visualization
These parameters enable fine-tuning to specific market conditions, trading styles, and timeframes.
Acknowledgments
The rainbow gradient visualization component draws inspiration from LuxAlgo's "Rainbow Adaptive RSI" (used under CC BY-NC-SA 4.0 license). This implementation of fuzzy logic in technical analysis builds upon Fermi estimation principles to overcome the inherent limitations of crisp binary indicators.
This indicator is shared under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license.
Remember that past performance does not guarantee future results. Always conduct thorough testing before implementing any technical indicator in live trading.
Smart Money Concepts (Advanced)Inspired and initially based on LuxAlgo's Smart Money Concepts Indicator I created a library lib_smc that started to convert every function and return objects. This allowed certain customizations like tracking the current fill level of FVGs or tracking the creation of Order Blocks, by monitoring consecutive bars against the current trend.
This indicator is provided as is, based on, but probably not always be up to date with my lib_smc that I am using for my projects.
WARNING: This indicator shows EXPERIMENTAL Order Blocks that are tracked LIVE. Unlike usual Order Blocks these are not just based on the last confirmed Swing Point (formed 50 bars before) but on consecutive candles opposing an unconfirmed trend. Blocks are confirmed by price movements relative to the unconfirmed block and unconfirmed swing points. This means that some Order Blocks will appear on pullbacks, as well as reversals.
Features
Swing Points (HH / LH / HL / LL), indicating support / resistance zones price might reject off of or want to push through
Market Structure (BOS / ChoCh), indicates confirmation for a continued / changing trend
live Order Blocks (OB), see warning above.
Fair Value Gaps (FVG), optional from higher timeframes
Equal Highs / Lows (EQH/EQL), indicates strong support / resistance zones, especially when the bars forming it have long wicks toward that zone
using my lib_no_delay all moving averages are working from bar 0, so it can be used on charts with limited bars
lib_smcLibrary "lib_smc"
This is an adaptation of LuxAlgo's Smart Money Concepts indicator with numerous changes. Main changes include integration of object based plotting, plenty of performance improvements, live tracking of Order Blocks, integration of volume profiles to refine Order Blocks, and many more.
This is a library for developers, if you want this converted into a working strategy, let me know.
buffer(item, len, force_rotate)
Parameters:
item (float)
len (int)
force_rotate (bool)
buffer(item, len, force_rotate)
Parameters:
item (int)
len (int)
force_rotate (bool)
buffer(item, len, force_rotate)
Parameters:
item (Profile type from robbatt/lib_profile/32)
len (int)
force_rotate (bool)
swings(len)
INTERNAL: detect swing points (HH and LL) in given range
Parameters:
len (simple int) : range to check for new swing points
Returns: values are the price level where and if a new HH or LL was detected, else na
method init(this)
Namespace types: OrderBlockConfig
Parameters:
this (OrderBlockConfig)
method delete(this)
Namespace types: OrderBlock
Parameters:
this (OrderBlock)
method clear_broken(this, broken_buffer)
INTERNAL: delete internal order blocks box coordinates if top/bottom is broken
Namespace types: map
Parameters:
this (map)
broken_buffer (map)
Returns: any_bull_ob_broken, any_bear_ob_broken, broken signals are true if an according order block was broken/mitigated, broken contains the broken block(s)
create_ob(id, mode, start_t, start_i, top, end_t, end_i, bottom, break_price, early_confirmation_price, config, init_plot, force_overlay)
INTERNAL: set internal order block coordinates
Parameters:
id (int)
mode (int) : 1: bullish, -1 bearish block
start_t (int)
start_i (int)
top (float)
end_t (int)
end_i (int)
bottom (float)
break_price (float)
early_confirmation_price (float)
config (OrderBlockConfig)
init_plot (bool)
force_overlay (bool)
Returns: signals are true if an according order block was broken/mitigated
method align_to_profile(block, align_edge, align_break_price)
Namespace types: OrderBlock
Parameters:
block (OrderBlock)
align_edge (bool)
align_break_price (bool)
method create_profile(block, opens, tops, bottoms, closes, values, resolution, vah_pc, val_pc, args, init_calculated, init_plot, force_overlay)
Namespace types: OrderBlock
Parameters:
block (OrderBlock)
opens (array)
tops (array)
bottoms (array)
closes (array)
values (array)
resolution (int)
vah_pc (float)
val_pc (float)
args (ProfileArgs type from robbatt/lib_profile/32)
init_calculated (bool)
init_plot (bool)
force_overlay (bool)
method create_profile(block, resolution, vah_pc, val_pc, args, init_calculated, init_plot, force_overlay)
Namespace types: OrderBlock
Parameters:
block (OrderBlock)
resolution (int)
vah_pc (float)
val_pc (float)
args (ProfileArgs type from robbatt/lib_profile/32)
init_calculated (bool)
init_plot (bool)
force_overlay (bool)
track_obs(swing_len, hh, ll, top, btm, bull_bos_alert, bull_choch_alert, bear_bos_alert, bear_choch_alert, min_block_size, max_block_size, config_bull, config_bear, init_plot, force_overlay, enabled, extend_blocks, clear_broken_buffer_before, align_edge_to_value_area, align_break_price_to_poc, profile_args_bull, profile_args_bear, use_soft_confirm, soft_confirm_offset, use_retracements_with_FVG_out)
Parameters:
swing_len (int)
hh (float)
ll (float)
top (float)
btm (float)
bull_bos_alert (bool)
bull_choch_alert (bool)
bear_bos_alert (bool)
bear_choch_alert (bool)
min_block_size (float)
max_block_size (float)
config_bull (OrderBlockConfig)
config_bear (OrderBlockConfig)
init_plot (bool)
force_overlay (bool)
enabled (bool)
extend_blocks (simple bool)
clear_broken_buffer_before (simple bool)
align_edge_to_value_area (simple bool)
align_break_price_to_poc (simple bool)
profile_args_bull (ProfileArgs type from robbatt/lib_profile/32)
profile_args_bear (ProfileArgs type from robbatt/lib_profile/32)
use_soft_confirm (simple bool)
soft_confirm_offset (float)
use_retracements_with_FVG_out (simple bool)
method draw(this, config, extend_only)
Namespace types: OrderBlock
Parameters:
this (OrderBlock)
config (OrderBlockConfig)
extend_only (bool)
method draw(blocks, config)
INTERNAL: plot order blocks
Namespace types: array
Parameters:
blocks (array)
config (OrderBlockConfig)
method draw(blocks, config)
INTERNAL: plot order blocks
Namespace types: map
Parameters:
blocks (map)
config (OrderBlockConfig)
method cleanup(this, ob_bull, ob_bear)
removes all Profiles that are older than the latest OrderBlock from this profile buffer
Namespace types: array
Parameters:
this (array type from robbatt/lib_profile/32)
ob_bull (OrderBlock)
ob_bear (OrderBlock)
_plot_swing_points(mode, x, y, show_swing_points, linecolor_swings, keep_history, show_latest_swings_levels, trail_x, trail_y, trend)
INTERNAL: plot swing points
Parameters:
mode (int) : 1: bullish, -1 bearish block
x (int) : x-coordingate of swing point to plot (bar_index)
y (float) : y-coordingate of swing point to plot (price)
show_swing_points (bool) : switch to enable/disable plotting of swing point labels
linecolor_swings (color) : color for swing point labels and lates level lines
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
show_latest_swings_levels (bool)
trail_x (int) : x-coordinate for latest swing point (bar_index)
trail_y (float) : y-coordinate for latest swing point (price)
trend (int) : the current trend 1: bullish, -1: bearish, to determine Strong/Weak Low/Highs
_pivot_lvl(mode, trend, hhll_x, hhll, super_hhll, filter_insignificant_internal_breaks)
INTERNAL: detect whether a structural level has been broken and if it was in trend direction (BoS) or against trend direction (ChoCh), also track the latest high and low swing points
Parameters:
mode (simple int) : detect 1: bullish, -1 bearish pivot points
trend (int) : current trend direction
hhll_x (int) : x-coordinate of newly detected hh/ll (bar_index)
hhll (float) : y-coordinate of newly detected hh/ll (price)
super_hhll (float) : level/y-coordinate of superior hhll (if this is an internal structure pivot level)
filter_insignificant_internal_breaks (bool) : if true pivot points / internal structure will be ignored where the wick in trend direction is longer than the opposite (likely to push further in direction of main trend)
Returns: coordinates of internal structure that has been broken (x,y): start of structure, (trail_x, trail_y): tracking hh/ll after structure break, (bos_alert, choch_alert): signal whether a structural level has been broken
_plot_structure(x, y, is_bos, is_choch, line_color, line_style, label_style, label_size, keep_history)
INTERNAL: plot structural breaks (BoS/ChoCh)
Parameters:
x (int) : x-coordinate of newly broken structure (bar_index)
y (float) : y-coordinate of newly broken structure (price)
is_bos (bool) : whether this structural break was in trend direction
is_choch (bool) : whether this structural break was against trend direction
line_color (color) : color for the line connecting the structural level and the breaking candle
line_style (string) : style (line.style_dashed/solid) for the line connecting the structural level and the breaking candle
label_style (string) : style (label.style_label_down/up) for the label above/below the line connecting the structural level and the breaking candle
label_size (string) : size (size.small/tiny) for the label above/below the line connecting the structural level and the breaking candle
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
structure_values(length, super_hh, super_ll, filter_insignificant_internal_breaks)
detect (and plot) structural breaks and the resulting new trend
Parameters:
length (simple int) : lookback period for swing point detection
super_hh (float) : level/y-coordinate of superior hh (for internal structure detection)
super_ll (float) : level/y-coordinate of superior ll (for internal structure detection)
filter_insignificant_internal_breaks (bool) : if true pivot points / internal structure will be ignored where the wick in trend direction is longer than the opposite (likely to push further in direction of main trend)
Returns: trend: direction 1:bullish -1:bearish, (bull_bos_alert, bull_choch_alert, top_x, top_y, trail_up_x, trail_up): whether and which level broke in a bullish direction, trailing high, (bbear_bos_alert, bear_choch_alert, tm_x, btm_y, trail_dn_x, trail_dn): same in bearish direction
structure_plot(trend, bull_bos_alert, bull_choch_alert, top_x, top_y, trail_up_x, trail_up, hh, bear_bos_alert, bear_choch_alert, btm_x, btm_y, trail_dn_x, trail_dn, ll, color_bull, color_bear, show_swing_points, show_latest_swings_levels, show_bos, show_choch, line_style, label_size, keep_history)
detect (and plot) structural breaks and the resulting new trend
Parameters:
trend (int) : crrent trend 1: bullish, -1: bearish
bull_bos_alert (bool) : if there was a bullish bos alert -> plot it
bull_choch_alert (bool) : if there was a bullish choch alert -> plot it
top_x (int) : latest shwing high x
top_y (float) : latest swing high y
trail_up_x (int) : trailing high x
trail_up (float) : trailing high y
hh (float) : if there was a higher high
bear_bos_alert (bool) : if there was a bearish bos alert -> plot it
bear_choch_alert (bool) : if there was a bearish chock alert -> plot it
btm_x (int) : latest swing low x
btm_y (float) : latest swing low y
trail_dn_x (int) : trailing low x
trail_dn (float) : trailing low y
ll (float) : if there was a lower low
color_bull (color) : color for bullish BoS/ChoCh levels
color_bear (color) : color for bearish BoS/ChoCh levels
show_swing_points (bool) : whether to plot swing point labels
show_latest_swings_levels (bool) : whether to track and plot latest swing point levels with lines
show_bos (bool) : whether to plot BoS levels
show_choch (bool) : whether to plot ChoCh levels
line_style (string) : whether to plot BoS levels
label_size (string) : label size of plotted BoS/ChoCh levels
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
structure(length, color_bull, color_bear, super_hh, super_ll, filter_insignificant_internal_breaks, show_swing_points, show_latest_swings_levels, show_bos, show_choch, line_style, label_size, keep_history, enabled)
detect (and plot) structural breaks and the resulting new trend
Parameters:
length (simple int) : lookback period for swing point detection
color_bull (color) : color for bullish BoS/ChoCh levels
color_bear (color) : color for bearish BoS/ChoCh levels
super_hh (float) : level/y-coordinate of superior hh (for internal structure detection)
super_ll (float) : level/y-coordinate of superior ll (for internal structure detection)
filter_insignificant_internal_breaks (bool) : if true pivot points / internal structure will be ignored where the wick in trend direction is longer than the opposite (likely to push further in direction of main trend)
show_swing_points (bool) : whether to plot swing point labels
show_latest_swings_levels (bool) : whether to track and plot latest swing point levels with lines
show_bos (bool) : whether to plot BoS levels
show_choch (bool) : whether to plot ChoCh levels
line_style (string) : whether to plot BoS levels
label_size (string) : label size of plotted BoS/ChoCh levels
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
enabled (bool)
_check_equal_level(mode, len, eq_threshold, enabled)
INTERNAL: detect equal levels (double top/bottom)
Parameters:
mode (int) : detect 1: bullish/high, -1 bearish/low pivot points
len (int) : lookback period for equal level (swing point) detection
eq_threshold (float) : maximum price offset for a level to be considered equal
enabled (bool)
Returns: eq_alert whether an equal level was detected and coordinates of the first and the second level/swing point
_plot_equal_level(show_eq, x1, y1, x2, y2, label_txt, label_style, label_size, line_color, line_style, keep_history)
INTERNAL: plot equal levels (double top/bottom)
Parameters:
show_eq (bool) : whether to plot the level or not
x1 (int) : x-coordinate of the first level / swing point
y1 (float) : y-coordinate of the first level / swing point
x2 (int) : x-coordinate of the second level / swing point
y2 (float) : y-coordinate of the second level / swing point
label_txt (string) : text for the label above/below the line connecting the equal levels
label_style (string) : style (label.style_label_down/up) for the label above/below the line connecting the equal levels
label_size (string) : size (size.tiny) for the label above/below the line connecting the equal levels
line_color (color) : color for the line connecting the equal levels (and it's label)
line_style (string) : style (line.style_dotted) for the line connecting the equal levels
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
equal_levels_values(len, threshold, enabled)
detect (and plot) equal levels (double top/bottom), returns coordinates
Parameters:
len (int) : lookback period for equal level (swing point) detection
threshold (float) : maximum price offset for a level to be considered equal
enabled (bool) : whether detection is enabled
Returns: (eqh_alert, eqh_x1, eqh_y1, eqh_x2, eqh_y2) whether an equal high was detected and coordinates of the first and the second level/swing point, (eql_alert, eql_x1, eql_y1, eql_x2, eql_y2) same for equal lows
equal_levels_plot(eqh_x1, eqh_y1, eqh_x2, eqh_y2, eql_x1, eql_y1, eql_x2, eql_y2, color_eqh, color_eql, show, keep_history)
detect (and plot) equal levels (double top/bottom), returns coordinates
Parameters:
eqh_x1 (int) : coordinates of first point of equal high
eqh_y1 (float) : coordinates of first point of equal high
eqh_x2 (int) : coordinates of second point of equal high
eqh_y2 (float) : coordinates of second point of equal high
eql_x1 (int) : coordinates of first point of equal low
eql_y1 (float) : coordinates of first point of equal low
eql_x2 (int) : coordinates of second point of equal low
eql_y2 (float) : coordinates of second point of equal low
color_eqh (color) : color for the line connecting the equal highs (and it's label)
color_eql (color) : color for the line connecting the equal lows (and it's label)
show (bool) : whether plotting is enabled
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
Returns: (eqh_alert, eqh_x1, eqh_y1, eqh_x2, eqh_y2) whether an equal high was detected and coordinates of the first and the second level/swing point, (eql_alert, eql_x1, eql_y1, eql_x2, eql_y2) same for equal lows
equal_levels(len, threshold, color_eqh, color_eql, enabled, show, keep_history)
detect (and plot) equal levels (double top/bottom)
Parameters:
len (int) : lookback period for equal level (swing point) detection
threshold (float) : maximum price offset for a level to be considered equal
color_eqh (color) : color for the line connecting the equal highs (and it's label)
color_eql (color) : color for the line connecting the equal lows (and it's label)
enabled (bool) : whether detection is enabled
show (bool) : whether plotting is enabled
keep_history (bool) : weater to remove older swing point labels and only keep the most recent
Returns: (eqh_alert) whether an equal high was detected, (eql_alert) same for equal lows
_detect_fvg(mode, enabled, o, h, l, c, filter_insignificant_fvgs, change_tf)
INTERNAL: detect FVG (fair value gap)
Parameters:
mode (int) : detect 1: bullish, -1 bearish gaps
enabled (bool) : whether detection is enabled
o (float) : reference source open
h (float) : reference source high
l (float) : reference source low
c (float) : reference source close
filter_insignificant_fvgs (bool) : whether to calculate and filter small/insignificant gaps
change_tf (bool) : signal when the previous reference timeframe closed, triggers new calculation
Returns: whether a new FVG was detected and its top/mid/bottom levels
_clear_broken_fvg(mode, upper_boxes, lower_boxes)
INTERNAL: clear mitigated FVGs (fair value gaps)
Parameters:
mode (int) : detect 1: bullish, -1 bearish gaps
upper_boxes (array) : array that stores the upper parts of the FVG boxes
lower_boxes (array) : array that stores the lower parts of the FVG boxes
_plot_fvg(mode, show, top, mid, btm, border_color, extend_box)
INTERNAL: plot (and clear broken) FVG (fair value gap)
Parameters:
mode (int) : plot 1: bullish, -1 bearish gap
show (bool) : whether plotting is enabled
top (float) : top level of fvg
mid (float) : center level of fvg
btm (float) : bottom level of fvg
border_color (color) : color for the FVG box
extend_box (int) : how many bars into the future the FVG box should be extended after detection
fvgs_values(o, h, l, c, filter_insignificant_fvgs, change_tf, enabled)
detect (and plot / clear broken) FVGs (fair value gaps), and return alerts and level values
Parameters:
o (float) : reference source open
h (float) : reference source high
l (float) : reference source low
c (float) : reference source close
filter_insignificant_fvgs (bool) : whether to calculate and filter small/insignificant gaps
change_tf (bool) : signal when the previous reference timeframe closed, triggers new calculation
enabled (bool) : whether detection is enabled
Returns: (bullish_fvg_alert, bull_top, bull_mid, bull_btm): whether a new bullish FVG was detected and its top/mid/bottom levels, (bearish_fvg_alert, bear_top, bear_mid, bear_btm): same for bearish FVGs
fvgs_plot(bullish_fvg_alert, bull_top, bull_mid, bull_btm, bearish_fvg_alert, bear_top, bear_mid, bear_btm, color_bull, color_bear, extend_box, show)
Parameters:
bullish_fvg_alert (bool)
bull_top (float)
bull_mid (float)
bull_btm (float)
bearish_fvg_alert (bool)
bear_top (float)
bear_mid (float)
bear_btm (float)
color_bull (color) : color for bullish FVG boxes
color_bear (color) : color for bearish FVG boxes
extend_box (int) : how many bars into the future the FVG box should be extended after detection
show (bool) : whether plotting is enabled
Returns: (bullish_fvg_alert, bull_top, bull_mid, bull_btm): whether a new bullish FVG was detected and its top/mid/bottom levels, (bearish_fvg_alert, bear_top, bear_mid, bear_btm): same for bearish FVGs
fvgs(o, h, l, c, filter_insignificant_fvgs, change_tf, color_bull, color_bear, extend_box, enabled, show)
detect (and plot / clear broken) FVGs (fair value gaps)
Parameters:
o (float) : reference source open
h (float) : reference source high
l (float) : reference source low
c (float) : reference source close
filter_insignificant_fvgs (bool) : whether to calculate and filter small/insignificant gaps
change_tf (bool) : signal when the previous reference timeframe closed, triggers new calculation
color_bull (color) : color for bullish FVG boxes
color_bear (color) : color for bearish FVG boxes
extend_box (int) : how many bars into the future the FVG box should be extended after detection
enabled (bool) : whether detection is enabled
show (bool) : whether plotting is enabled
Returns: (bullish_fvg_alert): whether a new bullish FVG was detected, (bearish_fvg_alert): same for bearish FVGs
OrderBlock
Fields:
id (series int)
dir (series int)
left_top (chart.point)
right_bottom (chart.point)
break_price (series float)
early_confirmation_price (series float)
ltf_high (array)
ltf_low (array)
ltf_volume (array)
plot (Box type from robbatt/lib_plot_objects/49)
profile (Profile type from robbatt/lib_profile/32)
trailing (series bool)
extending (series bool)
awaiting_confirmation (series bool)
touched_break_price_before_confirmation (series bool)
soft_confirmed (series bool)
has_fvg_out (series bool)
hidden (series bool)
broken (series bool)
OrderBlockConfig
Fields:
show (series bool)
show_last (series int)
show_id (series bool)
show_profile (series bool)
args (BoxArgs type from robbatt/lib_plot_objects/49)
txt (series string)
txt_args (BoxTextArgs type from robbatt/lib_plot_objects/49)
delete_when_broken (series bool)
broken_args (BoxArgs type from robbatt/lib_plot_objects/49)
broken_txt (series string)
broken_txt_args (BoxTextArgs type from robbatt/lib_plot_objects/49)
broken_profile_args (ProfileArgs type from robbatt/lib_profile/32)
use_profile (series bool)
profile_args (ProfileArgs type from robbatt/lib_profile/32)
Anchored Auto Fibonacci Retracement with Alerts [ImaWrknMan]SYNOPSIS
Automatically generates a Fibonacci Retracement anchored to the candle of your choosing. As price moves further away from the anchor point, the fib levels automatically adjust to represent the entirety of the move.
BULLISH VS. BEARISH
It automatically detects if the Fibonacci Retracement should be drawn from the low or high of the anchored candle by considering the candles that follow (if they produce new highs, it will use the anchored candle low; if they produce new lows, it will use the anchored candle high).
MITIGATION
If the Fibonacci levels are fully retraced (i.e., price pulls back beyond the originating price), the levels will remain on the chart but it will no longer adjust as new candles form - it will become static.
OPTIONS
The following options are offered:
Extend Retracement Levels
The Fibonacci Retracement levels will extend beyond the last candle into the future. These extensions are visually represented using dashed lines.
Retracement Levels
Twelve levels are supported. The default levels mirror those used by the standard Fibonacci Retracement tool. Select only the levels you want to see on the chart. Line color can also be customized to your liking. You can optionally define an alert condition and alert message for each level (see "Alerts" below).
ALERTS
To receive an alert when price retraces into a level, check the "Alert" box to the right of that level. You can optionally define the text to display in the alert by entering it in the text box to the right of the alert checkbox. Levels with alerts will be marked on the chart with a "bell" symbol. Once you've selected the alerts you want to receive and (optionally) the text for each alert, create an Alert for the indicator.
NOTE: You do NOT need to create a separate Alert for each level.
Limitations
Alerts can only be defined for levels that fall between 0 and 1.
Once an alert is created, its settings are fixed. Any changes to the settings after the Alert is created will have no effect on the existing Alert. In this case, the Alert should be recreated.
Alert notifications will only be generated for visible levels.
Other Alerts
Alert on expansion - Use this alert option if you want to be notified when price moves further from the anchored price, causing the retracement levels to adjust. This is useful if you have Limit orders at current levels and you want to cancel or move them when the levels change.
"Alert on mitigation" - Use this alert option if you want to be notified when the Fibonacci Retracement has been fully retraced.
The code for this indicator was inspired by the Fibonacci Toolkit by LuxAlgo
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."
RSI TrendsThis TradingView script combines RSI trend analysis with FVG (Fair Value Gap) detection to identify potential buy and sell opportunities in financial markets. The script is customizable and provides extensive visual feedback directly on the chart, enhancing both strategic entry and exit points for traders. Raw code of FVG was taken from LuxAlgo
Features
FVG Detection: Identifies Fair Value Gaps (FVG), and provides options to display these gaps based on user settings.
RSI Trend Bars: Utilizes the Relative Strength Index (RSI) to paint bars indicating overbought and oversold conditions. This helps traders understand current market sentiment and potential reversal points.
Customizable Settings: Users can customize the timeframe, FVG types, and RSI thresholds. This flexibility allows the script to be adapted to various trading styles and timeframes.
Historical Analysis: Option to display or hide historical FVGs, helping users analyze past market behavior without cluttering the chart.
Alert System: Integrated alerts for detected buy and sell signals based on RSI conditions and the presence or absence of FVGs. This feature notifies traders of potential trading opportunities.
Trading Signals
Buy, Buy+, and Buy++ Signals: These signals are triggered based on overbought conditions without corresponding bearish FVG presence, with increasing stringency for higher tiers of buy signals.
Sell, Sell+, and Sell++ Signals: These signals are based on oversold conditions devoid of bullish FVG presence, with each subsequent plus sign indicating a higher level of confirmation required to trigger the signal.
Use Case
Ideal for traders who rely on technical analysis and are looking for an automated way to spot potential buy and sell points using both price action gaps and momentum indicators.
Customization
All input parameters are adjustable directly from the indicator's settings panel, making it easy to tailor the tool to your trading needs and preferences.
Hull AMA SignalsThis script is a comprehensive trading indicator named "Hull AMA Signals", which combines AMA and HSO by LuxAlgo and ther video based strategy techniques to provide buy (long) and sell (short) signals. It overlays directly on the price chart, offering a dynamic and visually intuitive trading aid. The core components of this indicator are Adaptive Moving Averages (AMA), Hull Moving Average (HMA), and a unique Hull squeeze oscillator (HSO), each configured with customizable parameters for flexibility and adaptability to various market conditions.
Features and Components
Adaptive Moving Averages (AMA): This indicator employs two sets of AMAs, each with distinct lengths, multipliers, lags, and overshoot parameters. The AMAs are designed to adapt their sensitivity based on the market's volatility, making them more responsive during significant price movements and less prone to false signals during periods of consolidation.
Hull Moving Average (HMA): The HMA is calculated using a sophisticated algorithm that aims to reduce the lag commonly associated with traditional moving averages. It provides a smoother and more responsive moving average line, which helps in identifying the prevailing market trend more accurately.
Hull Squeeze Oscillator (HSO): A novel component of this indicator, the HSO, is designed to identify potential market breakouts. It does so by comparing the Hull Moving Average's direction and momentum against a dynamically calculated mean, generating bullish or bearish signals based on the crossover and divergence from this mean.
Buy (Long) and Sell (Short) Signals: The script intelligently combines signals from the AMA crossovers and the Hull squeeze oscillator to pinpoint potential buy and sell opportunities. Bullish signals are generated when there's a positive crossover in the AMAs accompanied by a bullish dot from the HSO, whereas bearish signals are indicated by a negative crossover in the AMAs along with a bearish dot from the HSO.
Customization and Style Options: Users have the ability to adjust various parameters such as the length of the moving averages, multipliers, and source data, enabling customization for different trading strategies and asset classes. Additionally, color-coded visual elements like gradients and shapes enhance the readability and instant recognition of trading signals.
Use Cases
Trend Identification: By analyzing the direction and position of the AMAs and HMA, traders can easily discern the prevailing market trend, helping them to align their trades with the market momentum.
Signal Confirmation: The combination of AMA crossovers and HSO signals provides a robust framework for confirming trade entries and exits, potentially increasing the reliability of the trading signals.
Volatility Adaptation: The adaptive nature of the AMAs and the dynamic calculation of the HSO mean allow this indicator to adjust to changing market volatility, making it suitable for a wide range of market environments.
This indicator is suitable for traders looking for a comprehensive and dynamic technical analysis tool that combines trend analysis with signal generation, offering both visual appeal and practical trading utility.
[AIO] Multi Collection Moving Averages 140 MA TypesAll In One Multi Collection Moving Averages.
Since signing up 2 years ago, I have been collecting various Сollections.
I decided to get it into a decent shape and make it one of the biggest collections on TV, and maybe the entire internet.
And now I'm sharing my collection with you.
140 Different Types of Moving Averages are waiting for you.
Specifically :
"
AARMA | Adaptive Autonomous Recursive Moving Average
ADMA | Adjusted Moving Average
ADXMA | Average Directional Moving Average
ADXVMA | Average Directional Volatility Moving Average
AHMA | Ahrens Moving Average
ALF | Ehler Adaptive Laguerre Filter
ALMA | Arnaud Legoux Moving Average
ALSMA | Adaptive Least Squares
ALXMA | Alexander Moving Average
AMA | Adaptive Moving Average
ARI | Unknown
ARSI | Adaptive RSI Moving Average
AUF | Auto Filter
AUTL | Auto-Line
BAMA | Bryant Adaptive Moving Average
BFMA | Blackman Filter Moving Average
CMA | Corrected Moving Average
CORMA | Correlation Moving Average
COVEMA | Coefficient of Variation Weighted Exponential Moving Average
COVNA | Coefficient of Variation Weighted Moving Average
CTI | Coral Trend Indicator
DEC | Ehlers Simple Decycler
DEMA | Double EMA Moving Average
DEVS | Ehlers - Deviation Scaled Moving Average
DONEMA | Donchian Extremum Moving Average
DONMA | Donchian Moving Average
DSEMA | Double Smoothed Exponential Moving Average
DSWF | Damped Sine Wave Weighted Filter
DWMA | Double Weighted Moving Average
E2PBF | Ehlers 2-Pole Butterworth Filter
E2SSF | Ehlers 2-Pole Super Smoother Filter
E3PBF | Ehlers 3-Pole Butterworth Filter
E3SSF | Ehlers 3-Pole Super Smoother Filter
EDMA | Exponentially Deviating Moving Average (MZ EDMA)
EDSMA | Ehlers Dynamic Smoothed Moving Average
EEO | Ehlers Modified Elliptic Filter Optimum
EFRAMA | Ehlers Modified Fractal Adaptive Moving Average
EHMA | Exponential Hull Moving Average
EIT | Ehlers Instantaneous Trendline
ELF | Ehler Laguerre filter
EMA | Exponential Moving Average
EMARSI | EMARSI
EPF | Edge Preserving Filter
EPMA | End Point Moving Average
EREA | Ehlers Reverse Exponential Moving Average
ESSF | Ehlers Super Smoother Filter 2-pole
ETMA | Exponential Triangular Moving Average
EVMA | Elastic Volume Weighted Moving Average
FAMA | Following Adaptive Moving Average
FEMA | Fast Exponential Moving Average
FIBWMA | Fibonacci Weighted Moving Average
FLSMA | Fisher Least Squares Moving Average
FRAMA | Ehlers - Fractal Adaptive Moving Average
FX | Fibonacci X Level
GAUS | Ehlers - Gaussian Filter
GHL | Gann High Low
GMA | Gaussian Moving Average
GMMA | Geometric Mean Moving Average
HCF | Hybrid Convolution Filter
HEMA | Holt Exponential Moving Average
HKAMA | Hilbert based Kaufman Adaptive Moving Average
HMA | Harmonic Moving Average
HSMA | Hirashima Sugita Moving Average
HULL | Hull Moving Average
HULLT | Hull Triple Moving Average
HWMA | Henderson Weighted Moving Average
IE2 | Early T3 by Tim Tilson
IIRF | Infinite Impulse Response Filter
ILRS | Integral of Linear Regression Slope
JMA | Jurik Moving Average
KA | Unknown
KAMA | Kaufman Adaptive Moving Average & Apirine Adaptive MA
KIJUN | KIJUN
KIJUN2 | Kijun v2
LAG | Ehlers - Laguerre Filter
LCLSMA | 1LC-LSMA (1 line code lsma with 3 functions)
LEMA | Leader Exponential Moving Average
LLMA | Low-Lag Moving Average
LMA | Leo Moving Average
LP | Unknown
LRL | Linear Regression Line
LSMA | Least Squares Moving Average / Linear Regression Curve
LTB | Unknown
LWMA | Linear Weighted Moving Average
MAMA | MAMA - MESA Adaptive Moving Average
MAVW | Mavilim Weighted Moving Average
MCGD | McGinley Dynamic Moving Average
MF | Modular Filter
MID | Median Moving Average / Percentile Nearest Rank
MNMA | McNicholl Moving Average
MTMA | Unknown
MVSMA | Minimum Variance SMA
NLMA | Non-lag Moving Average
NWMA | Dürschner 3rd Generation Moving Average (New WMA)
PKF | Parametric Kalman Filter
PWMA | Parabolic Weighted Moving Average
QEMA | Quadruple Exponential Moving Average
QMA | Quick Moving Average
REMA | Regularized Exponential Moving Average
REPMA | Repulsion Moving Average
RGEMA | Range Exponential Moving Average
RMA | Welles Wilders Smoothing Moving Average
RMF | Recursive Median Filter
RMTA | Recursive Moving Trend Average
RSMA | Relative Strength Moving Average - based on RSI
RSRMA | Right Sided Ricker MA
RWMA | Regressively Weighted Moving Average
SAMA | Slope Adaptive Moving Average
SFMA | Smoother Filter Moving Average
SMA | Simple Moving Average
SSB | Senkou Span B
SSF | Ehlers - Super Smoother Filter P2
SSMA | Super Smooth Moving Average
STMA | Unknown
SWMA | Self-Weighted Moving Average
SW_MA | Sine-Weighted Moving Average
TEMA | Triple Exponential Moving Average
THMA | Triple Exponential Hull Moving Average
TL | Unknown
TMA | Triangular Moving Average
TPBF | Three-pole Ehlers Butterworth
TRAMA | Trend Regularity Adaptive Moving Average
TSF | True Strength Force
TT3 | Tilson (3rd Degree) Moving Average
VAMA | Volatility Adjusted Moving Average
VAMAF | Volume Adjusted Moving Average Function
VAR | Vector Autoregression Moving Average
VBMA | Variable Moving Average
VHMA | Vertical Horizontal Moving Average
VIDYA | Variable Index Dynamic Average
VMA | Volume Moving Average
VSO | Unknown
VWMA | Volume Weighted Moving Average
WCD | Unknown
WMA | Weighted Moving Average
XEMA | Optimized Exponential Moving Average
ZEMA | Zero Lag Moving Average
ZLDEMA | Zero-Lag Double Exponential Moving Average
ZLEMA | Ehlers - Zero Lag Exponential Moving Average
ZLTEMA | Zero-Lag Triple Exponential Moving Average
ZSMA | Zero-Lag Simple Moving Average
"
Don't forget that you can use any Moving Average not only for the chart but also for any of your indicators without affecting the code as in my example.
But remember that some MAs are not designed to work with anything other than a chart.
All MA and Code lists are sorted strictly alphabetically by short name (A-Z).
Each MA has its own number (ID) by which you can display the Moving Average you need.
Next to the ID selection there are tooltips with short names and their numbers. Use them.
The panel below will help you to read the Name of the selected MA.
Because of the size of the collection I think this is the optimal and most convenient use. Correct me if this is not the case.
Unknown - Some MAs I collected so long ago that I lost the full real name and couldn't find the authors. If you recognize them, please let me know.
I have deliberately simplified all MAs to input just Source and Length.
Because the collection is so large, it would be quite inconvenient and difficult to customize all MA functions (multipliers, offset, etc.).
If you need or like any MA you will still have to take it from my collection for your code.
I tried to leave the basic MA settings inside function in first strings.
I have tried to list most of the authors, but since the bulk of the collection was created a long time ago and was not intended for public publication I could not find all of them.
Some of the features were created from scratch or may have been slightly modified, so please be careful.
If you would like to improve this collection, please write to me in PM.
Also Credits, Likes, Awards, Loves and Thanks to :
@alexgrover
@allanster
@andre_007
@auroagwei
@blackcat1402
@bsharpe
@cheatcountry
@CrackingCryptocurrency
@Duyck
@ErwinBeckers
@everget
@glaz
@gotbeatz26107
@HPotter
@io72signals
@JacobAmos
@JoshuaMcGowan
@KivancOzbilgic
@LazyBear
@loxx
@LuxAlgo
@MightyZinger
@nemozny
@NGBaltic
@peacefulLizard50262
@RicardoSantos
@StalexBot
@ThiagoSchmitz
@TradingView
— 𝐀𝐧𝐝 𝐎𝐭𝐡𝐞𝐫𝐬 !
So just a Big Thank You to everyone who has ever and anywhere shared their codes.
ZigZag++ FibonacciAuto Fibonacci tools are powerful ways designed to simplify your technical analysis by automatically drawing Fibonacci retracement and extension levels on your chart. This indicator is built to enhance your trading experience with clearer market moves and informative insights.
You can easily spot your waves and patterns when the percentages are moving with you.
Key Features:
Automated Fibonacci Levels: Plots Fibonacci retracement and extension levels based on recent price movements.
Multi-Timeframe Support: This indicator is your versatile companion, offering multi-timeframe functionality. You can seamlessly track Fibonacci levels across different resolutions, providing a comprehensive view of the market.
Two Types of Fibs: Retracement and Timeframe extension Fibonacci levels. Use retracements to identify potential reversal points and extensions to anticipate price targets, giving you a well-rounded perspective on market movements.
Benefits:
Save Time: No more manual Fibonacci drawing; It does this for you in real-time.
Enhanced Analysis: Gain a deeper understanding of potential support, resistance, and price targets.
User-Friendly: Suitable for traders of all levels, this indicator simplifies complex technical analysis.
For the math lovers
I started creating the ZigZag++ based on the MT4 calculation as I found it better performing than the tradingview inbuilt one. I have revised the calculation couple of times and now the final calculation is simple yet more accurate for my analysis.
First, I observe the market direction for the last Depth setting by comparing the rate at which high values reduce and low values increase. When the number of ticks set by Deviation is crossed and the last cross is more than the Backstep candles, then we have our ZigZag points.
These are the points we use in our Fibonacci calculation.
Checkout ZigLib below to use the same logic in your scripts.
Sample usage
This is a 4 Hour configuration with the default settings.
When the trend reversed, some key points I watch are 0.618 and 0.5. The market retraced back and formed the new point for the next ZigZag line on that level. This market behaviour happens quite often on these Fibonacci points. I would be looking for reversal or a break in this zone to know the next step.
Resources
ZigZag++ Lib by me; for retrieving the line points.
Fibonacci Toolkit by Lux Algo; For drawing the Timeframe Fibs. Very Amazing script.
Relational Quadratic Kernel Channel [Vin]The Relational Quadratic Kernel Channel (RQK-Channel-V) is designed to provide more valuable potential price extremes or continuation points in the price trend.
Example:
Usage:
Lookback Window: Adjust the "Lookback Window" parameter to control the number of previous bars considered when calculating the Rational Quadratic Estimate. Longer windows capture longer-term trends, while shorter windows respond more quickly to price changes.
Relative Weight: The "Relative Weight" parameter allows you to control the importance of each data point in the calculation. Higher values emphasize recent data, while lower values give more weight to historical data.
Source: Choose the data source (e.g., close price) that you want to use for the kernel estimate.
ATR Length: Set the length of the Average True Range (ATR) used for channel width calculation. A longer ATR length results in wider channels, while a shorter length leads to narrower channels.
Channel Multipliers: Adjust the "Channel Multiplier" parameters to control the width of the channels. Higher multipliers result in wider channels, while lower multipliers produce narrower channels. The indicator provides three sets of channels, each with its own multiplier for flexibility.
Details:
Rational Quadratic Kernel Function:
The Rational Quadratic Kernel Function is a type of smoothing function used to estimate a continuous curve or line from discrete data points. It is often used in time series analysis to reduce noise and emphasize trends or patterns in the data.
The formula for the Rational Quadratic Kernel Function is generally defined as:
K(x) = (1 + (x^2) / (2 * α * β))^(-α)
Where:
x represents the distance or difference between data points.
α and β are parameters that control the shape of the kernel. These parameters can be adjusted to control the smoothness or flexibility of the kernel function.
In the context of this indicator, the Rational Quadratic Kernel Function is applied to a specified source (e.g., close prices) over a defined lookback window. It calculates a smoothed estimate of the source data, which is then used to determine the central value of the channels. The kernel function allows the indicator to adapt to different market conditions and reduce noise in the data.
The specific parameters (length and relativeWeight) in your indicator allows to fine-tune how the Rational Quadratic Kernel Function is applied, providing flexibility in capturing both short-term and long-term trends in the data.
To know more about unsupervised ML implementations, I highly recommend to follow the users, @jdehorty and @LuxAlgo
Optimizing the parameters:
Lookback Window (length): The lookback window determines how many previous bars are considered when calculating the kernel estimate.
For shorter-term trading strategies, you may want to use a shorter lookback window (e.g., 5-10).
For longer-term trading or investing, consider a longer lookback window (e.g., 20-50).
Relative Weight (relativeWeight): This parameter controls the importance of each data point in the calculation.
A higher relative weight (e.g., 2 or 3) emphasizes recent data, which can be suitable for trend-following strategies.
A lower relative weight (e.g., 1) gives more equal importance to historical and recent data, which may be useful for strategies that aim to capture both short-term and long-term trends.
ATR Length (atrLength): The length of the Average True Range (ATR) affects the width of the channels.
Longer ATR lengths result in wider channels, which may be suitable for capturing broader price movements.
Shorter ATR lengths result in narrower channels, which can be helpful for identifying smaller price swings.
Channel Multipliers (channelMultiplier1, channelMultiplier2, channelMultiplier3): These parameters determine the width of the channels relative to the ATR.
Adjust these multipliers based on your risk tolerance and desired channel width.
Higher multipliers result in wider channels, which may lead to fewer signals but potentially larger price movements.
Lower multipliers create narrower channels, which can result in more frequent signals but potentially smaller price movements.
Nadaraya-Watson Envelope: Modified by YosietRange Filter indicator based on the LuxAlgo Nadaraya-Watson Envelope () indicator adding the SMA 30 high and SMA 7 low to predict the changes of the trends lines price.
WARNING: This indicator, as the same as the original, repaints the chart and could affect the exact values of the prices.
SMA Low 7 was identified using tensorflowJS years ago as accurate and abstract rsi indicator
SMA High 30 was identified using tensorflowJS years ago as accurate and strong trend line
This two SMAs were added to the original indicator Nadaraya-Watson to predict the exact points where the price will change direction or will re-test the trend to continue on.
The signals will act as the Williams Fractals, replacing the original signals of the indicator.
For those ICT/SMC traders, the bands and SMAs can toggle off in the settings of this indicator.
SETTINGS
Can set the source of the UPPER band indivuadilly
Can set the source of the LOWER band indivuadilly
Can toggle the visibility of the bands, this will not affect the calculations
Can toggle the visibility of SMAs
ALERTS AND SIGNALS
When the SMA LOW 7 cross under or over the bands, will trigger a signal orange
When the SMA 30 High cross over the upper band, will trigger a short signal purpple
HOW TO USE IT
If the both signals appears (sma 7 low and sma 30 high) crossing the upper band at the same point, this means that the price will drop strongly.
If the sma 7 low cross signal (orange triangle) appears under the price and lower band, means that the price will go up.
The separation of the signals from the chart will suggest the force of the movement. While more distance be, strongest reaction of the price.
DISCLAIMER : This indicator or script does not imply or constitute financial advice, investment advice, trading advice or any other type of advice or recommendation by and for TradingView. Use it at your own risk and your own decision.
AMDX Time ZoneThis script is base on the theory of @traderdaye, on the TimeZone AMDX
Accumulation
Manipulation
Distribution
X reversal / continuation
OR
AMDX
It show you the box on intraday Timeframe:
Q1: 18.00 - 19.30 | Q2: 19.30 - 21.00 | Q3: 21.00 - 22.30 | Q4: 22.30 - 00.00 (90min Cycles of the Asian Session)
Q1: 00.00 - 01.30 | Q2: 01.30 - 03.00 | Q3: 03.00 - 04.30 | Q4: 04.30 - 06.00 (90min Cycles of the London Session)
Q1: 06.00 - 07.30 | Q2: 07.30 - 09.00 | Q3: 09.00 - 10.30 | Q4: 10.30 - 12.00 (90min Cycles of the NY Session)
Q1: 12.00 - 13.30 | Q2: 13.30 - 15.00 | Q3: 15.00 - 16.30 | Q4: 16.30 - 18.00 (90min Cycles of the PM Session)
You can extend this theory to the day => to the week => to the month
Thanks LuxAlgo for the base,
Hope you enjoy it