Chart Pattern Scanner
The Chart Pattern Scanner is a comprehensive multi-symbol scanning tool designed to detect 25+ popular chart patterns across up to 40 tickers simultaneously. Whether you’re tracking wedges, flags, head & shoulders, or double tops/bottoms, this tool highlights pattern signals visually and in a customizable table — right on your chart.
🔎 What It Does
Scans up to 40 symbols at once using Pine Script’s multi-symbol request system
Detects bullish, bearish, and neutral chart patterns such as:
Double Bottom / Double Top
Triple Bottom / Triple Top
Broadening Formations (Asc, Desc, Symmetrical)
Bull/Bear Flags & Pennants
Head and Shoulders (Regular, Ascending, Descending)
Elliott Waves
Alt Flags
Ascending / Descending Wedges
Outputs the scan in a scrollable table that updates in real-time
Draws detected patterns visually on your current chart if applicable
⚙️ Settings Overview
📁 Pattern Filters
Toggle which chart patterns you want to scan for. You can enable/disable specific formations to streamline your results:
Example: Only enable “Double Bottom” and “Bull Flag” for bullish setups
🎨 Drawing Customization
Customize the look of patterns and drawings:
Bullish Color, Bearish Color, Neutral Color
Change Label Text Color, Dotted Line Style, etc.
📐 Pattern Logic Configuration
Set your tolerances for pattern recognition:
AB Minimum Ratio, BC/BE Max Ratios: Control flag/pennant symmetry
Lower & Upper Tolerance: Allow flexibility in structure recognition
🧾 Symbol Entry
Use the “Symbols” input field to list up to 40 tickers (comma-separated).
Example:
Copy
Edit
AAPL,MSFT,TSLA,NVDA,AMD
🧱 Table Settings
Choose table position: Top left, center, bottom right, etc.
Customize table text color and size
➕ Want to Scan More Than 40 Symbols?
Simply add the indicator again from your script list.
Each new instance allows another 40 symbols — for example:
1st script = 40 tickers
2nd script = another 40
3rd script = 40 more, and so on...
This gives you unlimited scanning potential with minimal setup effort.
🖼️ Visual Drawings on Active Chart
The script also overlays drawings directly on your chart if any pattern is detected on your current symbol and timeframe:
Trendlines, necklines, wedge boundaries, and wave counts
Automatically labeled with clean formatting
Styles adjust dynamically depending on selected color preferences
To enable or disable drawing visibility, use the "Display Drawings?" toggle in the settings.
🛎️ Alerts
Alerts can be set to notify when new patterns are detected across any of your selected symbols.
⚠️ Disclaimer
This indicator is provided by Charts Algo for educational and informational purposes only. It does not constitute financial advice or trading recommendations. Always conduct your own analysis before making any trading decisions. Use at your own risk.
Cerca negli script per "the script"
Ensemble Alerts█ OVERVIEW
This indicator creates highly customizable alert conditions and messages by combining several technical conditions into groups , which users can specify directly from the "Settings/Inputs" tab. It offers a flexible framework for building and testing complex alert conditions without requiring code modifications for each adjustment.
█ CONCEPTS
Ensemble analysis
Ensemble analysis is a form of data analysis that combines several "weaker" models to produce a potentially more robust model. In a trading context, one of the most prevalent forms of ensemble analysis is the aggregation (grouping) of several indicators to derive market insights and reinforce trading decisions. With this analysis, traders typically inspect multiple indicators, signaling trade actions when specific conditions or groups of conditions align.
Simplifying ensemble creation
Combining indicators into one or more ensembles can be challenging, especially for users without programming knowledge. It usually involves writing custom scripts to aggregate the indicators and trigger trading alerts based on the confluence of specific conditions. Making such scripts customizable via inputs poses an additional challenge, as it often involves complicated input menus and conditional logic.
This indicator addresses these challenges by providing a simple, flexible input menu where users can easily define alert criteria by listing groups of conditions from various technical indicators in simple text boxes . With this script, you can create complex alert conditions intuitively from the "Settings/Inputs" tab without ever writing or modifying a single line of code. This framework makes advanced alert setups more accessible to non-coders. Additionally, it can help Pine programmers save time and effort when testing various condition combinations.
█ FEATURES
Configurable alert direction
The "Direction" dropdown at the top of the "Settings/Inputs" tab specifies the allowed direction for the alert conditions. There are four possible options:
• Up only : The indicator only evaluates upward conditions.
• Down only : The indicator only evaluates downward conditions.
• Up and down (default): The indicator evaluates upward and downward conditions, creating alert triggers for both.
• Alternating : The indicator prevents alert triggers for consecutive conditions in the same direction. An upward condition must be the first occurrence after a downward condition to trigger an alert, and vice versa for downward conditions.
Flexible condition groups
This script features six text inputs where users can define distinct condition groups (ensembles) for their alerts. An alert trigger occurs if all the conditions in at least one group occur.
Each input accepts a comma-separated list of numbers with optional spaces (e.g., "1, 4, 8"). Each listed number, from 1 to 35, corresponds to a specific individual condition. Below are the conditions that the numbers represent:
1 — RSI above/below threshold
2 — RSI below/above threshold
3 — Stoch above/below threshold
4 — Stoch below/above threshold
5 — Stoch K over/under D
6 — Stoch K under/over D
7 — AO above/below threshold
8 — AO below/above threshold
9 — AO rising/falling
10 — AO falling/rising
11 — Supertrend up/down
12 — Supertrend down/up
13 — Close above/below MA
14 — Close below/above MA
15 — Close above/below open
16 — Close below/above open
17 — Close increase/decrease
18 — Close decrease/increase
19 — Close near Donchian top/bottom (Close > (Mid + HH) / 2)
20 — Close near Donchian bottom/top (Close < (Mid + LL) / 2)
21 — New Donchian high/low
22 — New Donchian low/high
23 — Rising volume
24 — Falling volume
25 — Volume above average (Volume > SMA(Volume, 20))
26 — Volume below average (Volume < SMA(Volume, 20))
27 — High body to range ratio (Abs(Close - Open) / (High - Low) > 0.5)
28 — Low body to range ratio (Abs(Close - Open) / (High - Low) < 0.5)
29 — High relative volatility (ATR(7) > ATR(40))
30 — Low relative volatility (ATR(7) < ATR(40))
31 — External condition 1
32 — External condition 2
33 — External condition 3
34 — External condition 4
35 — External condition 5
These constituent conditions fall into three distinct categories:
• Directional pairs : The numbers 1-22 correspond to pairs of opposing upward and downward conditions. For example, if one of the inputs includes "1" in the comma-separated list, that group uses the "RSI above/below threshold" condition pair. In this case, the RSI must be above a high threshold for the group to trigger an upward alert, and the RSI must be below a defined low threshold to trigger a downward alert.
• Non-directional filters : The numbers 23-30 correspond to conditions that do not represent directional information. These conditions act as filters for both upward and downward alerts. Traders often use non-directional conditions to refine trending or mean reversion signals. For instance, if one of the input lists includes "30", that group uses the "Low relative volatility" condition. The group can trigger an upward or downward alert only if the 7-period Average True Range (ATR) is below the 40-period ATR.
• External conditions : The numbers 31-35 correspond to external conditions based on the plots from other indicators on the chart. To set these conditions, use the source inputs in the "External conditions" section near the bottom of the "Settings/Inputs" tab. The external value can represent an upward, downward, or non-directional condition based on the following logic:
▫ Any value above 0 represents an upward condition.
▫ Any value below 0 represents a downward condition.
▫ If the checkbox next to the source input is selected, the condition becomes non-directional . Any group that uses the condition can trigger upward or downward alerts only if the source value is not 0.
To learn more about using plotted values from other indicators, see this article in our Help Center and the Source input section of our Pine Script™ User Manual.
Group markers
Each comma-separated list represents a distinct group , where all the listed conditions must occur to trigger an alert. This script assigns preset markers (names) to each condition group to make the active ensembles easily identifiable in the generated alert messages and labels. The markers assigned to each group use the format "M", where "M" is short for "Marker" and "x" is the group number. The titles of the inputs at the top of the "Settings/Inputs" tab show these markers for convenience.
For upward conditions, the labels and alert messages show group markers with upward triangles (e.g., "M1▲"). For downward conditions, they show markers with downward triangles (e.g., "M1▼").
NOTE: By default, this script populates the "M1" field with a pre-configured list for a mean reversion group ("2,18,24,28"). The other fields are empty. If any "M*" input does not contain a value, the indicator ignores it in the alert calculations.
Custom alert messages
By default, the indicator's alert message text contains the activated markers and their direction as a comma-separated list. Users can override this message for upward or downward alerts with the two text fields at the bottom of the "Settings/Inputs" tab. When the fields are not empty , the alerts use that text instead of the default marker list.
NOTE: This script generates alert triggers, not the alerts themselves. To set up an alert based on this script's conditions, open the "Create Alert" dialog box, then select the "Ensemble Alerts" and "Any alert() function call" options in the "Condition" tabs. See the Alerts FAQ in our Pine Script™ User Manual for more information.
Condition visualization
This script offers organized visualizations of its conditions, allowing users to inspect the behaviors of each condition alongside the specified groups. The key visual features include:
1) Conditional plots
• The indicator plots the history of each individual condition, excluding the external conditions, as circles at different levels. Opposite conditions appear at positive and negative levels with the same absolute value. The plots for each condition show values only on the bars where they occur.
• Each condition's plot is color-coded based on its type. Aqua and orange plots represent opposing directional conditions, and purple plots represent non-directional conditions. The titles of the plots also contain the condition numbers to which they apply.
• The plots in the separate pane can be turned on or off with the "Show plots in pane" checkbox near the top of the "Settings/Inputs" tab. This input only toggles the color-coded circles, which reduces the graphical load. If you deactivate these visuals, you can still inspect each condition from the script's status line and the Data Window.
• As a bonus, the indicator includes "Up alert" and "Down alert" plots in the Data Window, representing the combined upward and downward ensemble alert conditions. These plots are also usable in additional indicator-on-indicator calculations.
2) Dynamic labels
• The indicator draws a label on the main chart pane displaying the activated group markers (e.g., "M1▲") each time an alert condition occurs.
• The labels for upward alerts appear below chart bars. The labels for downward alerts appear above the bars.
NOTE: This indicator can display up to 500 labels because that is the maximum allowed for a single Pine script.
3) Background highlighting
• The indicator can highlight the main chart's background on bars where upward or downward condition groups activate. Use the "Highlight background" inputs in the "Settings/Inputs" tab to enable these highlights and customize their colors.
• Unlike the dynamic labels, these background highlights are available for all chart bars, irrespective of the number of condition occurrences.
█ NOTES
• This script uses Pine Script™ v6, the latest version of TradingView's programming language. See the Release notes and Migration guide to learn what's new in v6 and how to convert your scripts to this version.
• This script imports our new Alerts library, which features functions that provide high-level simplicity for working with complex compound conditions and alerts. We used the library's `compoundAlertMessage()` function in this indicator. It evaluates items from "bool" arrays in groups specified by an array of strings containing comma-separated index lists , returning a tuple of "string" values containing the marker of each activated group.
• The script imports the latest version of the ta library to calculate several technical indicators not included in the built-in `ta.*` namespace, including Double Exponential Moving Average (DEMA), Triple Exponential Moving Average (TEMA), Fractal Adaptive Moving Average (FRAMA), Tilson T3, Awesome Oscillator (AO), Full Stochastic (%K and %D), SuperTrend, and Donchian Channels.
• The script uses the `force_overlay` parameter in the label.new() and bgcolor() calls to display the drawings and background colors in the main chart pane.
• The plots and hlines use the available `display.*` constants to determine whether the visuals appear in the separate pane.
Look first. Then leap.
Magic Touch Line DetectorSummary of the Magic Touch Line Detector Script:
Purpose:
The Magic Touch Line Detector script is designed to identify significant price points in the market by analyzing candlestick wicks and bodies. It plots lines based on the detected wicks, classifying them as either ascending or descending. The script tracks how frequently price touches these lines and highlights the "most touched" lines for both ascending and descending categories. This script is particularly useful for traders looking to identify key price levels and trends over time.
How It Works:
Wick and Body Detection:
The script starts by analyzing the highs and lows of candlestick wicks relative to their bodies over a user-defined lookback period. A significant wick is identified based on a specified wick-to-body ratio and a deviation threshold measured against the Average True Range (ATR).
Line Creation:
Once a significant upper or lower wick is detected, the script calculates unconventional highs and lows (i.e., points that differ from the absolute highs and lows of the lookback period). Lines are then drawn from these unconventional price points using the slope between the detected wick and the current bar, ensuring a smooth extension.
Line Refinement and Touch Tracking:
As new bars are added, the script tracks how often the price touches the previously drawn lines. The number of touches each line receives is counted and updated in real-time, and the script ensures that only the most touched line is highlighted.
Highlighting and Labeling:
For each category (ascending and descending), the most touched line is identified and given special highlighting with thicker lines and different colors. Labels are also generated to show the number of touches that the most touched line has received. Old labels are cleared to avoid clutter.
Explanation of the Settings:
Lookback Period for Highs and Lows:
This sets the number of bars the script will use to detect the highest highs and lowest lows. A larger lookback period gives the script a broader context to work with, potentially identifying more significant price points.
Minimum Wick-to-Body Ratio:
This ratio determines what qualifies as a "significant" wick. It compares the length of the wick to the body of the candle. A higher ratio means that only wicks that are much longer than the candle body will be considered significant.
Price Deviation Threshold (in ATR multiples):
This setting controls how much price deviation from the ATR is required for a wick to be deemed significant. It acts as a filter to reduce noise by ignoring smaller wicks that are within normal price movements.
Line Touch Tolerance Factor (ATR multiple):
When checking if a price touches a line, the script uses this setting to define how close the price must be to the line to count as a "touch." This tolerance is a multiplier of the ATR, allowing for some flexibility in what is considered a touch.
Price Difference Threshold:
This defines the minimum price difference required to plot a line. If the price difference between the high and low of a detected wick is too small, the script can avoid plotting a line for insignificant moves.
Slope Adjustment Multiplier:
This multiplier adjusts the slope of the lines that are drawn from detected price points. It affects the length and angle of the lines, allowing users to control how far and at what angle the lines should extend across the chart.
Customization Options:
Show Ascending/Descending Lines:
These toggles allow users to decide whether ascending (bullish) or descending (bearish) lines should be shown on the chart.
Line Color, Style, and Width (for Ascending and Descending Lines):
These settings give users control over how the lines appear visually. You can customize the color, style (solid, dashed, dotted), and width of both ascending and descending lines.
Most Touched Line Color:
Users can define a different color for the "most touched" line, which is automatically identified by the script. This setting helps highlight the line that has been interacted with the most by the price.
How to Use the Script:
Setup the Lookback Period and Deviation Filters:
Start by setting the lookback period and the filters for wick-to-body ratio and deviation threshold. These settings help control the script's sensitivity to market movements.
Refine the Tolerance and Slope:
Adjust the line touch tolerance and slope adjustment multiplier to control how closely the script tracks price touches and how the lines are extended on the chart.
Customize Visuals:
Once the lines are being drawn, customize the colors, styles, and widths to ensure the lines are easy to read on your chart. You can also decide if you want to display both ascending and descending lines or focus on just one.
By setting up the script based on these inputs and parameters, you can get a real-time view of significant price levels and how often the price interacts with them, helping you make more informed trading decisions.
US30 Challenge ComplementPurpose of the Script
This script is designed to analyze bullish and bearish engulfing patterns on the US30 index. It combines moving averages (MA and EMA) on both daily and hourly charts to detect crossovers, evaluates engulfing candlestick patterns, and adds additional conditions based on the size of candlestick wicks. The script provides visual feedback by coloring bars and plotting flags when certain conditions are met.
Explanation of the Key Features
User Input Parameters:
The script allows users to customize the period and color of both a simple moving average (SMA) and an exponential moving average (EMA). This flexibility enables users to adapt the moving average settings to their preferred strategy.
Moving Averages (MA and EMA):
Two key moving averages are calculated:
A simple moving average (SMA) with a period of 18 for both daily and hourly timeframes.
An exponential moving average (EMA) with a period of 8 for both daily and hourly timeframes.
These moving averages are used to detect whether the EMA is above or below the SMA in both the daily and hourly charts, providing trend direction insights.
Engulfing Patterns:
The script detects bullish and bearish engulfing patterns across multiple candlesticks.
Bullish Engulfing: Occurs when a green candlestick (closing higher than it opens) completely engulfs the body of the previous red candlestick.
Bearish Engulfing: Occurs when a red candlestick (closing lower than it opens) completely engulfs the body of the previous green candlestick.
The script detects these patterns not only for a single previous candle but also up to three previous candles, making it more versatile in recognizing different engulfing scenarios.
A percentage threshold is introduced to ensure that the engulfing candles meet a minimum size requirement, which can be customized by the user.
Cross-Detection on Multiple Timeframes:
The script checks whether the EMA is above or below the SMA on both daily and hourly charts.
This crossover is critical for confirming bullish or bearish conditions. If the EMA is below the SMA on the hourly chart, combined with a bullish engulfing pattern, it suggests a potential bullish reversal. Conversely, if the EMA is above the SMA with a bearish engulfing pattern, it signals a potential bearish reversal.
Candlestick Size and Wick Filters:
The script includes functions to filter candlesticks based on their wick sizes.
Bullish Wick Filter: Ensures that the upper wick of a bullish candle is not too large compared to the body.
Bearish Wick Filter: Ensures that the lower wick of a bearish candle is not too large compared to the body.
These filters help confirm strong candlesticks, reducing noise from candles with long wicks that might indicate indecision.
Visual Cues (Bar Coloring and Flags):
The script colors bars green if bullish engulfing conditions are met and red if bearish engulfing conditions are met. This provides an immediate visual indication of potential reversal points.
It also plots flags above bullish candlesticks and below bearish candlesticks if they have favorable wick characteristics. This adds an extra layer of confirmation for identifying stronger candles.
How to Use the Script
Adjust Parameters:
Before using the script, traders can customize the moving average periods, colors, and the percentage threshold for the engulfing candlesticks. This allows users to fine-tune the script to different timeframes and market conditions.
Engulfing Pattern Detection:
Traders can rely on the script to automatically detect and highlight bullish and bearish engulfing patterns, making it easier to spot potential reversal points. The script considers both single and multi-candlestick engulfing patterns, adding robustness to its detection logic.
Cross-Verification with Moving Averages:
The script adds a layer of confirmation by checking the relationship between the EMA and SMA. Traders can look for alignment between the moving averages and the engulfing patterns to increase the likelihood of successful trades.
Filter Candles Based on Wick Size:
Traders can use the additional wick filters to focus on stronger, more decisive candles. Flags are plotted on these candles, making them easier to identify.
Differences from Other Scripts
Multi-Candle Engulfing Detection: The script detects engulfing patterns over multiple previous candles (up to three), which is not commonly found in most scripts.
Customizable Engulfing Size: The user can set a minimum size threshold for engulfing candles, providing greater control over the pattern detection.
Wick Filters: The inclusion of filters to check for wick size makes this script more precise in identifying strong engulfing candles, reducing false signals from indecisive candles with large wicks.
EMA and SMA Crossover Integration: By integrating moving average crossovers, the script provides additional trend confirmation, increasing the reliability of the engulfing signals.
***************************************************(Español)
Propósito del Script
Este script está diseñado para analizar patrones de envolvente alcista y bajista en el índice US30. Combina medias móviles (MA y EMA) en gráficos diarios y horarios para detectar cruces, evalúa patrones de velas envolventes y añade condiciones adicionales basadas en el tamaño de las mechas. El script ofrece retroalimentación visual coloreando barras y trazando banderas cuando se cumplen ciertas condiciones.
Explicación de las Características Clave
Parámetros de Entrada del Usuario:
El script permite personalizar el período y el color tanto de una media móvil simple (SMA) como de una media móvil exponencial (EMA), lo que permite a los usuarios ajustar las configuraciones según su estrategia.
Medias Móviles (MA y EMA):
Dos medias móviles clave se calculan:
Una media móvil simple (SMA) con un período de 18 tanto para los marcos de tiempo diarios como horarios.
Una media móvil exponencial (EMA) con un período de 8 tanto para los marcos de tiempo diarios como horarios.
Patrones Envolventes:
El script detecta patrones de envolvente alcista y bajista en múltiples velas.
Se introduce un umbral porcentual que garantiza que las velas envolventes tengan un tamaño mínimo, personalizable por el usuario.
Detección de Cruces en Múltiples Marcos Temporales:
El script verifica si la EMA está por encima o por debajo de la SMA en gráficos diarios y horarios, lo que ayuda a confirmar las condiciones de tendencia.
Filtros de Tamaño de Mecha:
El script incluye funciones para filtrar velas según el tamaño de sus mechas, lo que ayuda a identificar velas más fuertes y decisivas.
Indicadores Visuales:
El script colorea las barras en verde si se cumplen las condiciones de envolvente alcista y en rojo si se cumplen las de envolvente bajista. También traza banderas para indicar velas con mechas favorables.
Cómo usar el Script
Ajustar Parámetros.
Detección de Patrones Envolventes.
Verificación con Medias Móviles.
Filtrar Velas Según el Tamaño de Mecha.
Diferencias con Otros Scripts
Detección Multi-Velas de Envolventes.
Tamaño Personalizable de Envolventes.
Filtros de Mechas.
Integración de Cruces de EMA y SMA.
Realtime Divergence for Any Indicator - By John BartleThe main purpose of this script is to show historical and real-time divergences for any oscillating indicator. The secondary purpose is to give the user a lot of precise control over identifying divergences and determining what they are. This is an improved version of my other script which is similarly called "Realtime Divergence for Any Indicator"
There are four types of divergences that are offered:
Bull divergence
Hidden bull divergence
Bear divergence
Hidden Bear divergence
There are three types of potential(real-time) divergences which include:
1) Without right side bars for rightside pivots. Plus without waiting for the rightside pivot bar to complete
2) Without right side bars for rightside pivots. Plus with waiting for the rightside pivot bar to complete
3) With right side bars for rightside pivots. Plus without waiting for the rightside pivot right-most bar to complete
A definite divergence occurs when all specified bars are accounted for and fully formed.
Potential divergences use dashed lines and definite(historical) divergences use solid lines.
In addition to several other categories of settings to filter out unwanted divergences or manipulate the search process, this script also offers Alerts. Remember that alerts must not only be set within this scripts settings but also your "Alerts" panel on your right. It's strange but BOTH must be set for alerts to work...
Other interesting Things To Know:
1)I actually don't trade and so I have no need of a paid account. Unpaid accounts don't have the playback feature so I haven't really tested this script out very well. Sorry. Just let me know if something seems off and IF I have time I'll try to fix it.
2)Keep in mind that Pinescript limits the number of lines that can be shown at one time. This means that if your settings allow for a large number of divergence lines they will be removed from the leftward side of your chart but appear in the rightward side.
3) The time and the values for the price or oscillator are not the same things as each other nor are they physical things with physical space. This means that slopes of lines using the time as X and value as Y can not have definite angles. Consequently, under the setting "DIVERGENCES: SLOPE ANGLE EXCLUSION" YOU have to decide what slope equals what angle by using the setting called "Normalization Factor".
4) Remember that some individual settings apply to both the oscillator and price chart. This means that even if the setting's conditions are fulfilled in one they may not be fulfilled in the other.
5) Under the category "DIVERGENCES: INTERSECTION ALLOWANCE", if you set the "Measurement Type" to Relative Percentage then FYI any single given length will equate to an increasingly smaller percentage the further away from zero it is. Because of this, I think "Reletive Percentage" is probably only useful for price charts or oscillators with big values. Maybe >200 is OK ?
Errors:
1) If you get the error mentioning that the script must complete execution within X amount of time, this is because this is a big script and sometimes takes longer than your service plan's allotted time limit. You can just disable some of the settings to reduce the scripts amount of work and time. The biggest time savers will be to disable some lines and labels
2) If you get an error saying the script accessed a negative index(e.g. ) then try temporarily increasing the "Add More Array Elements" setting to 100-200. Sometimes it fixes the problem.
3) You may sometimes temporarily get an error that reads: "Pine cannot determine the referencing length of a series. Try using max_bars_back in the study or strategy function".
If this happens there are several things that you can do:
3A) Create a copy of my script. Then edit the section of code that looks like this ")//, max_bars_back = INSERT_YOUR_QUANTITY_HERE)" and transform it to look like this new code ", max_bars_back = INSERT_YOUR_QUANTITY_HERE)" then repeatedly try replacing "INSERT_YOUR_QUANTITY_HERE" with an increasingly larger number greater than 244 but less than 5000.
This method will increase your system resources and could cause other problems. Try changing the code back after a few hours and see if all is well again. It is a Pinescript limitation issue and happens when certain functions or variables don't get used at least once within the first 244 bars.
3B) Adjust your settings to hopefully find a divergence within the first 244 bars. If one is found then the problematic variables or functions should get used and the Pinescript 244 bar limitation should be temporarily resolved.
3C) Wait for X number of new bars to occur. If a divergence is eventually found within the first 244 bars that should solve the issue.
Tips:
1) If the amount that a setting changes value is undesirable for each time you click it then you can change that amount in the code. To do that, you'll need your own copy of my script. To make your own copy just click on "create a working copy" in the brown colored strip area above the code. Then within approximately the first 108 lines find the title of the setting you want to change. Then look to it's right to find the parameter called "step =". Change what the step equals to whatever you want. FYI, you can hover your mouse over the blue colored code and a popup will tell you what parameters(i.e. settings) that function(e.g. "input.int()") has available.
Delta Volume Channels [LucF]█ OVERVIEW
This indicator displays on-chart visuals aimed at making the most of delta volume information. It can color bars and display two channels: one for delta volume, another calculated from the price levels of bars where delta volume divergences occur. Markers and alerts can also be configured using key conditions, and filtered in many different ways. The indicator caters to traders who prefer chart visuals over raw values. It will work on historical bars and in real time, using intrabar analysis to calculate delta volume in both conditions.
█ CONCEPTS
Delta Volume
The volume delta concept divides a bar's volume in "up" and "down" volumes. The delta is calculated by subtracting down volume from up volume. Many calculation techniques exist to isolate up and down volume within a bar. The simplest techniques use the polarity of interbar price changes to assign their volume to up or down slots, e.g., On Balance Volume or the Klinger Oscillator . Others such as Chaikin Money Flow use assumptions based on a bar's OHLC values. The most precise calculation method uses tick data and assigns the volume of each tick to the up or down slot depending on whether the transaction occurs at the bid or ask price. While this technique is ideal, it requires huge amounts of data on historical bars, which usually limits the historical depth of charts and the number of symbols for which tick data is available.
This indicator uses intrabar analysis to achieve a compromise between the simplest and most precise methods of calculating volume delta. In the context where historical tick data is not yet available on TradingView, intrabar analysis is the most precise technique to calculate volume delta on historical bars on our charts. TradingView's Volume Profile built-in indicators use it, as do the CVD - Cumulative Volume Delta Candles and CVD - Cumulative Volume Delta (Chart) indicators published from the TradingView account . My Volume Delta Columns Pro indicator also uses intrabar analysis. Other volume delta indicators such as my Realtime 5D Profile use realtime chart updates to achieve more precise volume delta calculations. Indicators of that type cannot be used on historical bars however; they only work in real time.
This is the logic I use to assign intrabar volume to up or down slots:
• If the intrabar's open and close values are different, their relative position is used.
• If the intrabar's open and close values are the same, the difference between the intrabar's close and the previous intrabar's close is used.
• As a last resort, when there is no movement during an intrabar and it closes at the same price as the previous intrabar, the last known polarity is used.
Once all intrabars making up a chart bar have been analyzed and the up or down property of each intrabar's volume determined, the up volumes are added and the down volumes subtracted. The resulting value is volume delta for that chart bar, which can be used as an estimate of the buying/selling pressure on an instrument.
Delta Volume Percent (DV%)
This value is the proportion that delta volume represents of the total intrabar volume in the chart bar. Note that on some symbols/timeframes, the total intrabar volume may differ from the chart's volume for a bar, but that will not affect our calculations since we use the total intrabar volume.
Delta Volume Channel
The DV channel is the space between two moving averages: the reference line and a DV%-weighted version of that reference. The reference line is a moving average of a type, source and length which you select. The DV%-weighted line uses the same settings, but it averages the DV%-weighted price source.
The weight applied to the source of the reference line is calculated from two values, which are multiplied: DV% and the relative size of the bar's volume in relation to previous bars. The effect of this is that DV% values on bars with higher total volume will carry greater weight than those with lesser volume.
The DV channel can be in one of four states, each having its corresponding color:
• Bull (teal): The DV%-weighted line is above the reference line.
• Strong bull (lime): The bull condition is fulfilled and the bar's close is above the reference line and both the reference and the DV%-weighted lines are rising.
• Bear (maroon): The DV%-weighted line is below the reference line.
• Strong bear (pink): The bear condition is fulfilled and the bar's close is below the reference line and both the reference and the DV%-weighted lines are falling.
Divergences
In the context of this indicator, a divergence is any bar where the slope of the reference line does not match that of the DV%-weighted line. No directional bias is assigned to divergences when they occur.
Divergence Channel
The divergence channel is the space between two levels (by default, the bar's low and high ) saved when divergences occur. When price has breached a channel and a new divergence occurs, a new channel is created. Until that new channel is breached, bars where additional divergences occur will expand the channel's levels if the bar's price points are outside the channel.
Prices breaches of the divergence channel will change its state. Divergence channels can be in one of five different states:
• Bull (teal): Price has breached the channel to the upside.
• Strong bull (lime): The bull condition is fulfilled and the DV channel is in the strong bull state.
• Bear (maroon): Price has breached the channel to the downside.
• Strong bear (pink): The bear condition is fulfilled and the DV channel is in the strong bear state.
• Neutral (gray): The channel has not been breached.
█ HOW TO USE THE INDICATOR
Load the indicator on an active chart (see here if you don't know how).
The default configuration displays:
• The DV channel, without the reference or DV%-weighted lines.
• The Divergence channel, without its level lines.
• Bar colors using the state of the DV channel.
The default settings use an Arnaud-Legoux moving average on the close and a length of 20 bars. The DV%-weighted version of it uses a combination of DV% and relative volume to calculate the ultimate weight applied to the reference. The DV%-weighted line is capped to 5 standard deviations of the reference. The lower timeframe used to access intrabars automatically adjusts to the chart's timeframe and achieves optimal balance between the number of intrabars inspected in each chart bar, and the number of chart bars covered by the script's calculations.
The Divergence channel's levels are determined using the high and low of the bars where divergences occur. Breaches of the channel require a bar's low to move above the top of the channel, and the bar's high to move below the channel's bottom.
No markers appear on the chart; if you want to create alerts from this script, you will need first to define the conditions that will trigger the markers, then create the alert, which will trigger on those same conditions.
To learn more about how to use this indicator, you must understand the concepts it uses and the information it displays, which requires reading this description. There are no videos to explain it.
█ FEATURES
The script's inputs are divided in four sections: "DV channel", "Divergence channel", "Other Visuals" and "Marker/Alert Conditions". The first setting is the selection method used to determine the intrabar precision, i.e., how many lower timeframe bars (intrabars) are examined in each chart bar. The more intrabars you analyze, the more precise the calculation of DV% results will be, but the less chart coverage can be covered by the script's calculations.
DV Channel
Here, you control the visibility and colors of the reference line, its weighted version, and the DV channel between them.
You also specify what type of moving average you want to use as a reference line, its source and length. This acts as the DV channel's baseline. The DV%-weighted line is also a moving average of the same type and length as the reference line, except that it will be calculated from the DV%-weighted source used in the reference line. By default, the DV%-weighted line is capped to five standard deviations of the reference line. You can change that value here. This section is also where you can disable the relative volume component of the weight.
Divergence Channel
This is where you control the appearance of the divergence channel and the key price values used in determining the channel's levels and breaching conditions. These choices have an impact on the behavior of the channel. More generous level prices like the default low and high selection will produce more conservative channels, as will the default choice for breach prices.
In this section, you can also enable a mode where an attempt is made to estimate the channel's bias before price breaches the channel. When it is enabled, successive increases/decreases of the channel's top and bottom levels are counted as new divergences occur. When one count is greater than the other, a bull/bear bias is inferred from it.
Other Visuals
You specify here:
• The method used to color chart bars, if you choose to do so.
• The display of a mark appearing above or below bars when a divergence occurs.
• If you want raw values to appear in tooltips when you hover above chart bars. The default setting does not display them, which makes the script faster.
• If you want to display an information box which by default appears in the lower left of the chart.
It shows which lower timeframe is used for intrabars, and the average number of intrabars per chart bar.
Marker/Alert Conditions
Here, you specify the conditions that will trigger up or down markers. The trigger conditions can include a combination of state transitions of the DV and the divergence channels. The triggering conditions can be filtered using a variety of conditions.
Configuring the marker conditions is necessary before creating an alert from this script, as the alert will use the marker conditions to trigger.
Markers only appear on bar closes, so they will not repaint. Keep in mind, when looking at markers on historical bars, that they are positioned on the bar when it closes — NOT when it opens.
Raw values
The raw values calculated by this script can be inspected using a tooltip and the Data Window. The tooltip is visible when you hover over the top of chart bars. It will display on the last 500 bars of the chart, and shows the values of DV, DV%, the combined weight, and the intermediary values used to calculate them.
█ INTERPRETATION
The aim of the DV channel is to provide a visual representation of the buying/selling pressure calculated using delta volume. The simplest characteristic of the channel is its bull/bear state. One can then distinguish between its bull and strong bull states, as transitions from strong bull to bull states will generally happen when buyers are losing steam. While one should not infer a reversal from such transitions, they can be a good place to tighten stops. Only time will tell if a reversal will occur. One or more divergences will often occur before reversals.
The nature of the divergence channel's design makes it particularly adept at identifying consolidation areas if its settings are kept on the conservative side. A gray divergence channel should usually be considered a no-trade zone. More adventurous traders can use the DV channel to orient their trade entries if they accept the risk of trading in a neutral divergence channel, which by definition will not have been breached by price.
If your charts are already busy with other stuff you want to hold on to, you could consider using only the chart bar coloring component of this indicator:
At its simplest, one way to use this indicator would be to look for overlaps of the strong bull/bear colors in both the DV channel and a divergence channel, as these identify points where price is breaching the divergence channel when buy/sell pressure is consistent with the direction of the breach. I have highlighted all those points in the chart below. Not all of them would have produced profitable trades, but nothing is perfect in the markets. Also, keep in mind that the circles identify the visual you would be looking for — not the trade's entry level.
█ LIMITATIONS
• The script will not work on symbols where no volume is available. An error will appear when that is the case.
• Because a maximum of 100K intrabars can be analyzed by a script, a compromise is necessary between the number of intrabars analyzed per chart bar
and chart coverage. The more intrabars you analyze per chart bar, the less coverage you will obtain.
The setting of the "Intrabar precision" field in the "DV channel" section of the script's inputs
is where you control how the lower timeframe is calculated from the chart's timeframe.
█ NOTES
Volume Quality
If you use volume, it's important to understand its nature and quality, as it varies with sectors and instruments. My Volume X-ray indicator is one way you can appraise the quality of an instrument's intraday volume.
For Pine Script™ Coders
• This script uses the new overload of the fill() function which now makes it possible to do vertical gradients in Pine. I use it for both channels displayed by this script.
• I use the new arguments for plot() 's `display` parameter to control where the script plots some of its values,
namely those I only want to appear in the script's status line and in the Data Window.
• I wrote my script using the revised recommendations in the Style Guide from the Pine v5 User Manual.
█ THANKS
To PineCoders . I have used their lower_tf library in this script, to manage the calculation of the LTF and intrabar stats, and their Time library to convert a timeframe in seconds to a printable form for its display in the Information box.
To TradingView's Pine Script™ team. Their innovations and improvements, big and small, constantly expand the boundaries of the language. What this script does would not have been possible just a few months back.
And finally, thanks to all the users of my scripts who take the time to comment on my publications and suggest improvements. I do not reply to all but I do read your comments and do my best to implement your suggestions with the limited time that I have.
Scanner/Screener of Over 40 Coins Per Script I am very scatter-brained by nature and sporadic in my thought processes but if these benefit the community and ya'll ask for more perhaps I will get better and even out a tad....probably not....but you never know. Firstly, allow me to apologize to all the vet/more sophisticated coders out there whose eyes and brains might just be overly taxed due to my poor coding structure. Im just getting started for the first time in ANY sort of coding...so cut me a little slack. Also, if anyone sees any mistakes or the functionality is not as I proclaimed, PLEASE do let me know. In these past 12mo of me learning my 1st coding language (Pinescript) I would say that I have been intently focused on creating all types/sorts of scanners/screeners. Ive always hoped to be a benefit to the community as I was always SO grateful to those who have come before me that have led me to the little bit of progress I have made with Pinescript. This script is not necessarily something that should be traded with as it is just a thrown together example showing a scanner/screener whose results produce plot outputs (ie, Rate of Change / oscillators as well / etc) and how they can be used in the alert system so that only 1 alert has to be set per iteration of the script but more importantly how to use/scan/screen with over 40 coins per script. My intent is not to trick anyone here. So to be PERFECTLY CLEAR, more than 40 coins CAN in fact be screened/scanned from one script (here I am doing all of KUCOIN's Margin Coins...72 total I look at)...BUT...(heres the catch) it must be added to the chart however many times EQUAL to the amount of "sets" you have in your script. (Heres the limitation by TV) There cannot be more than 40 coins in each "set". The less coins you have per set, the quicker the script will startup and run, thus, the quicker alerts will be received if automating the process. Though, if you only have the free plan and can only have MAX 3 indicators per chart then the MAX you can screen at a time is 120 coins if you use 40 coins per set. So, this is the first one I would like to introduce. For this one your screener/scanner must be using some sort of plots as output that is being screened for. (original inspiration of ALL my variations mainly come from @QuantNomad, @daveatt, and @LonesomeTheBlue (and a few others I may be forgetting at the moment). Thanks for the inspiration through countless publications that ya'll have created for us in the community.
Some of my variations are more complex/elegant than others but there are MANY very different ones that I would like to share with the community. If you leave a comment and wonder why I have not responded but did so to every comment around yours...see if you are one of the individuals in this next few sentences...and if you are then perhaps someone else would like to waste their time responding to your comment...but basically, if you don't want to spend the time helping yourself by reading the title, description section, AND the comments section (at least scanning them) then I am MOST DEFINITELY not going to help you down your path of destruction that is most likely soon to be your blown-up trading account. I was called a "masochist" after asking for guidance on if its worth the headache to publish anything on TV bc there will NO DOUBT be comments that'll make me wish I didn't (ie. someone CLEARLY not reading the description (or seemingly even the title sometimes) bc they make a comment that has been explicitly addressed, or someone asking to rebuild the code compatible for another charting software or whatnot, or how about those asking if it repaints (this one is almost always addressed in the comments section but I can understand this question more than others as Im only 1 yr into learning any sort of coding for the first time in the beginning I saw people ask on EVERY script about if it repainted and it was worrisome at the lest (esp bc I didn't even understand what it was not so long ago, or my favorite...what TF it works best on...these people CLEARLY need not be trading yet if your still asking questions as such...Ill end it there). Point being, Ive got some truly VERY useful scripts that I want to share and as long as these people don't make me regret doing so in the beginning, then whats mine...will soon be yours. Though, I will take a little time between the releases.
YOU GUYS (TV and its community) ARE AWESOME (most of you anyways ;)
MUCH LOVE,
ChasinAlts
(1) INPUTS
Here is where the "sets" come in. I am looking at all of KUCOIN's Margin Coins (72 of them at least) so am splitting them up into 3 sets/iterations and a copy of the script must be added equal to amount of "sets" you have here. This is the ONLY workaround I have found to be able to scan/screen with more than 40 coins per script (due to TV's limitation of 40 Security Calls per script) ***So for everyone saying it's impossible scan more than 40 Coins per scipt...it' MOST DEFINITELY possible....BUT ONLY by adding this script multiple times on the chart and selecting 1 of each of the "sets" in the script settings via the chart window. To save the much needed room you must push each iteration of the script into 1 window and merging the scales of each into 1 scale(ie. "Scale A") within the settings of the script name on the chart(3 horizontal dots)
(2) FUNCTION
(2.1) COLORIDs
This is just to set up all my Colors of plots which are being matched with their respective labels. I have a diff color for each of the 72 coins Im plotting so Im telling the function, "depending on which set of coins I select...give me this color out of the colors I input later into the function"
(2.2) TICKERID CONSTRUCTION
I construct the tickerID this way so that the labels on my plots have only the Coin's name vs the label having the (Exchange Name):(Coin Name)(Base Pair Name). If you are using more than 1 Base pair (ie. XRP/BTC and XRP/USDT and XRP/ETH) OR more than 1 Exchange OR want your plots to show MORE THAN just the Trading Coin's name, then the tickerID MUST BE constructed differently
(2.3) SECURITY CALL & PLOT OUTPUT VARIABLES
If using a Higher Time Frame in Security Call then it MUST BE adjusted to permit or dissallow repainting if you so wish (BEYOND THE SCOPE OF THIS PUBLICATION so Do Your Own Researh). If your MAIN LOGIC is more complex than simply using a TV built-in function), THEN it MUST BE built into its own function outside of this function and called on within the "expression" slot of this Security Call OR can also be built into this function and called on in the "expression" slot of this Security call (BEYOND THE SCOPE OF THIS PUB SO DYOR). FURTHERMORE...when you are using a series(ie high/low/close/open/hl2/etc) / bar_index / time / etc that will be specific to the Coin/tickerID, then they MUST BE explicitly used within the "expression" slot of the Security Function when calling on your Main Logic or else it will pull the series/time/bar_index/etc from the Coin that the Chart is presently on (BEYOND THE SCOPE OF THIS PUB SO DYOR)
(2.4) PLOT LABEL
This is the Plot's Label that will be next to the end of the plot on the LAST bar_index. ***Notice in the "text" slot of the label I have "_coin" (without the quotes obviously)...this is where have JUST the Coin's name comes into effect on the label vs the (Exchange Name):(Coin Name)(Base Pair Name) which looks MUCH cleaner
(2.5) ALERT LOGIC / ALERT LABEL
Your alert logic need not be as complex as this... I just wanted to create a decent enough timing for this system and wanted to simply print the labels displaying which coin produced the alert at the same time the alerts would go off. Alert is set up to Trigger Bullish when the ROC is below the Threshold and _chg > _chg X=length of bars inputted in "Rising/Falling Length" setting and vise versa for Bearish Alerts. If _chg plot only goes past threshold for a VERY few amount of bars NOT providing enough time for initial Alert to trigger, then alert/label triggers on crossing of threshold back towards 0(zero). ONLY 1 alert needs to be set per script to be able to scan ALL 72 of the coins as I have them in this script. Timing of Alert is inline with the name label printed past the thresholds.
(3) VARIABLES FROM MAIN FUNCTION
This is the tuple of the Main Function that outputs the variables from 3 lines up to be able to plot the lines and color them according to the colors on the labels. *** As of now, we CANNOT plot from within the function so MUST BE done this way to produce the variables and colors needed. The plots are the ONLY thing in this script that cannot be executed from within the function
(4) LINE PLOTS
ALL output variables from our Main Function are used here for the line plots
Monte Carlo Range Forecast [DW]This is an experimental study designed to forecast the range of price movement from a specified starting point using a Monte Carlo simulation.
Monte Carlo experiments are a broad class of computational algorithms that utilize random sampling to derive real world numerical results.
These types of algorithms have a number of applications in numerous fields of study including physics, engineering, behavioral sciences, climate forecasting, computer graphics, gaming AI, mathematics, and finance.
Although the applications vary, there is a typical process behind the majority of Monte Carlo methods:
-> First, a distribution of possible inputs is defined.
-> Next, values are generated randomly from the distribution.
-> The values are then fed through some form of deterministic algorithm.
-> And lastly, the results are aggregated over some number of iterations.
In this study, the Monte Carlo process used generates a distribution of aggregate pseudorandom linear price returns summed over a user defined period, then plots standard deviations of the outcomes from the mean outcome generate forecast regions.
The pseudorandom process used in this script relies on a modified Wichmann-Hill pseudorandom number generator (PRNG) algorithm.
Wichmann-Hill is a hybrid generator that uses three linear congruential generators (LCGs) with different prime moduli.
Each LCG within the generator produces an independent, uniformly distributed number between 0 and 1.
The three generated values are then summed and modulo 1 is taken to deliver the final uniformly distributed output.
Because of its long cycle length, Wichmann-Hill is a fantastic generator to use on TV since it's extremely unlikely that you'll ever see a cycle repeat.
The resulting pseudorandom output from this generator has a minimum repetition cycle length of 6,953,607,871,644.
Fun fact: Wichmann-Hill is a widely used PRNG in various software applications. For example, Excel 2003 and later uses this algorithm in its RAND function, and it was the default generator in Python up to v2.2.
The generation algorithm in this script takes the Wichmann-Hill algorithm, and uses a multi-stage transformation process to generate the results.
First, a parent seed is selected. This can either be a fixed value, or a dynamic value.
The dynamic parent value is produced by taking advantage of Pine's timenow variable behavior. It produces a variable parent seed by using a frozen ratio of timenow/time.
Because timenow always reflects the current real time when frozen and the time variable reflects the chart's beginning time when frozen, the ratio of these values produces a new number every time the cache updates.
After a parent seed is selected, its value is then fed through a uniformly distributed seed array generator, which generates multiple arrays of pseudorandom "children" seeds.
The seeds produced in this step are then fed through the main generators to produce arrays of pseudorandom simulated outcomes, and a pseudorandom series to compare with the real series.
The main generators within this script are designed to (at least somewhat) model the stochastic nature of financial time series data.
The first step in this process is to transform the uniform outputs of the Wichmann-Hill into outputs that are normally distributed.
In this script, the transformation is done using an estimate of the normal distribution quantile function.
Quantile functions, otherwise known as percent-point or inverse cumulative distribution functions, specify the value of a random variable such that the probability of the variable being within the value's boundary equals the input probability.
The quantile equation for a normal probability distribution is μ + σ(√2)erf^-1(2(p - 0.5)) where μ is the mean of the distribution, σ is the standard deviation, erf^-1 is the inverse Gauss error function, and p is the probability.
Because erf^-1() does not have a simple, closed form interpretation, it must be approximated.
To keep things lightweight in this approximation, I used a truncated Maclaurin Series expansion for this function with precomputed coefficients and rolled out operations to avoid nested looping.
This method provides a decent approximation of the error function without completely breaking floating point limits or sucking up runtime memory.
Note that there are plenty of more robust techniques to approximate this function, but their memory needs very. I chose this method specifically because of runtime favorability.
To generate a pseudorandom approximately normally distributed variable, the uniformly distributed variable from the Wichmann-Hill algorithm is used as the input probability for the quantile estimator.
Now from here, we get a pretty decent output that could be used itself in the simulation process. Many Monte Carlo simulations and random price generators utilize a normal variable.
However, if you compare the outputs of this normal variable with the actual returns of the real time series, you'll find that the variability in shocks (random changes) doesn't quite behave like it does in real data.
This is because most real financial time series data is more complex. Its distribution may be approximately normal at times, but the variability of its distribution changes over time due to various underlying factors.
In light of this, I believe that returns behave more like a convoluted product distribution rather than just a raw normal.
So the next step to get our procedurally generated returns to more closely emulate the behavior of real returns is to introduce more complexity into our model.
Through experimentation, I've found that a return series more closely emulating real returns can be generated in a three step process:
-> First, generate multiple independent, normally distributed variables simultaneously.
-> Next, apply pseudorandom weighting to each variable ranging from -1 to 1, or some limits within those bounds. This modulates each series to provide more variability in the shocks by producing product distributions.
-> Lastly, add the results together to generate the final pseudorandom output with a convoluted distribution. This adds variable amounts of constructive and destructive interference to produce a more "natural" looking output.
In this script, I use three independent normally distributed variables multiplied by uniform product distributed variables.
The first variable is generated by multiplying a normal variable by one uniformly distributed variable. This produces a bit more tailedness (kurtosis) than a normal distribution, but nothing too extreme.
The second variable is generated by multiplying a normal variable by two uniformly distributed variables. This produces moderately greater tails in the distribution.
The third variable is generated by multiplying a normal variable by three uniformly distributed variables. This produces a distribution with heavier tails.
For additional control of the output distributions, the uniform product distributions are given optional limits.
These limits control the boundaries for the absolute value of the uniform product variables, which affects the tails. In other words, they limit the weighting applied to the normally distributed variables in this transformation.
All three sets are then multiplied by user defined amplitude factors to adjust presence, then added together to produce our final pseudorandom return series with a convoluted product distribution.
Once we have the final, more "natural" looking pseudorandom series, the values are recursively summed over the forecast period to generate a simulated result.
This process of generation, weighting, addition, and summation is repeated over the user defined number of simulations with different seeds generated from the parent to produce our array of initial simulated outcomes.
After the initial simulation array is generated, the max, min, mean and standard deviation of this array are calculated, and the values are stored in holding arrays on each iteration to be called upon later.
Reference difference series and price values are also stored in holding arrays to be used in our comparison plots.
In this script, I use a linear model with simple returns rather than compounding log returns to generate the output.
The reason for this is that in generating outputs this way, we're able to run our simulations recursively from the beginning of the chart, then apply scaling and anchoring post-process.
This allows a greater conservation of runtime memory than the alternative, making it more suitable for doing longer forecasts with heavier amounts of simulations in TV's runtime environment.
From our starting time, the previous bar's price, volatility, and optional drift (expected return) are factored into our holding arrays to generate the final forecast parameters.
After these parameters are computed, the range forecast is produced.
The basis value for the ranges is the mean outcome of the simulations that were run.
Then, quarter standard deviations of the simulated outcomes are added to and subtracted from the basis up to 3σ to generate the forecast ranges.
All of these values are plotted and colorized based on their theoretical probability density. The most likely areas are the warmest colors, and least likely areas are the coolest colors.
An information panel is also displayed at the starting time which shows the starting time and price, forecast type, parent seed value, simulations run, forecast bars, total drift, mean, standard deviation, max outcome, min outcome, and bars remaining.
The interesting thing about simulated outcomes is that although the probability distribution of each simulation is not normal, the distribution of different outcomes converges to a normal one with enough steps.
In light of this, the probability density of outcomes is highest near the initial value + total drift, and decreases the further away from this point you go.
This makes logical sense since the central path is the easiest one to travel.
Given the ever changing state of markets, I find this tool to be best suited for shorter term forecasts.
However, if the movements of price are expected to remain relatively stable, longer term forecasts may be equally as valid.
There are many possible ways for users to apply this tool to their analysis setups. For example, the forecast ranges may be used as a guide to help users set risk targets.
Or, the generated levels could be used in conjunction with other indicators for meaningful confluence signals.
More advanced users could even extrapolate the functions used within this script for various purposes, such as generating pseudorandom data to test systems on, perform integration and approximations, etc.
These are just a few examples of potential uses of this script. How you choose to use it to benefit your trading, analysis, and coding is entirely up to you.
If nothing else, I think this is a pretty neat script simply for the novelty of it.
----------
How To Use:
When you first add the script to your chart, you will be prompted to confirm the starting date and time, number of bars to forecast, number of simulations to run, and whether to include drift assumption.
You will also be prompted to confirm the forecast type. There are two types to choose from:
-> End Result - This uses the values from the end of the simulation throughout the forecast interval.
-> Developing - This uses the values that develop from bar to bar, providing a real-time outlook.
You can always update these settings after confirmation as well.
Once these inputs are confirmed, the script will boot up and automatically generate the forecast in a separate pane.
Note that if there is no bar of data at the time you wish to start the forecast, the script will automatically detect use the next available bar after the specified start time.
From here, you can now control the rest of the settings.
The "Seeding Settings" section controls the initial seed value used to generate the children that produce the simulations.
In this section, you can control whether the seed is a fixed value, or a dynamic one.
Since selecting the dynamic parent option will change the seed value every time you change the settings or refresh your chart, there is a "Regenerate" input built into the script.
This input is a dummy input that isn't connected to any of the calculations. The purpose of this input is to force an update of the dynamic parent without affecting the generator or forecast settings.
Note that because we're running a limited number of simulations, different parent seeds will typically yield slightly different forecast ranges.
When using a small number of simulations, you will likely see a higher amount of variance between differently seeded results because smaller numbers of sampled simulations yield a heavier bias.
The more simulations you run, the smaller this variance will become since the outcomes become more convergent toward the same distribution, so the differences between differently seeded forecasts will become more marginal.
When using a dynamic parent, pay attention to the dispersion of ranges.
When you find a set of ranges that is dispersed how you like with your configuration, set your fixed parent value to the parent seed that shows in the info panel.
This will allow you to replicate that dispersion behavior again in the future.
An important thing to note when settings alerts on the plotted levels, or using them as components for signals in other scripts, is to decide on a fixed value for your parent seed to avoid minor repainting due to seed changes.
When the parent seed is fixed, no repainting occurs.
The "Amplitude Settings" section controls the amplitude coefficients for the three differently tailed generators.
These amplitude factors will change the difference series output for each simulation by controlling how aggressively each series moves.
When "Adjust Amplitude Coefficients" is disabled, all three coefficients are set to 1.
Note that if you expect volatility to significantly diverge from its historical values over the forecast interval, try experimenting with these factors to match your anticipation.
The "Weighting Settings" section controls the weighting boundaries for the three generators.
These weighting limits affect how tailed the distributions in each generator are, which in turn affects the final series outputs.
The maximum absolute value range for the weights is . When "Limit Generator Weights" is disabled, this is the range that is automatically used.
The last set of inputs is the "Display Settings", where you can control the visual outputs.
From here, you can select to display either "Forecast" or "Difference Comparison" via the "Output Display Type" dropdown tab.
"Forecast" is the type displayed by default. This plots the end result or developing forecast ranges.
There is an option with this display type to show the developing extremes of the simulations. This option is enabled by default.
There's also an option with this display type to show one of the simulated price series from the set alongside actual prices.
This allows you to visually compare simulated prices alongside the real prices.
"Difference Comparison" allows you to visually compare a synthetic difference series from the set alongside the actual difference series.
This display method is primarily useful for visually tuning the amplitude and weighting settings of the generators.
There are also info panel settings on the bottom, which allow you to control size, colors, and date format for the panel.
It's all pretty simple to use once you get the hang of it. So play around with the settings and see what kinds of forecasts you can generate!
----------
ADDITIONAL NOTES & DISCLAIMERS
Although I've done a number of things within this script to keep runtime demands as low as possible, the fact remains that this script is fairly computationally heavy.
Because of this, you may get random timeouts when using this script.
This could be due to either random drops in available runtime on the server, using too many simulations, or running the simulations over too many bars.
If it's just a random drop in runtime on the server, hide and unhide the script, re-add it to the chart, or simply refresh the page.
If the timeout persists after trying this, then you'll need to adjust your settings to a less demanding configuration.
Please note that no specific claims are being made in regards to this script's predictive accuracy.
It must be understood that this model is based on randomized price generation with assumed constant drift and dispersion from historical data before the starting point.
Models like these not consider the real world factors that may influence price movement (economic changes, seasonality, macro-trends, instrument hype, etc.), nor the changes in sample distribution that may occur.
In light of this, it's perfectly possible for price data to exceed even the most extreme simulated outcomes.
The future is uncertain, and becomes increasingly uncertain with each passing point in time.
Predictive models of any type can vary significantly in performance at any point in time, and nobody can guarantee any specific type of future performance.
When using forecasts in making decisions, DO NOT treat them as any form of guarantee that values will fall within the predicted range.
When basing your trading decisions on any trading methodology or utility, predictive or not, you do so at your own risk.
No guarantee is being issued regarding the accuracy of this forecast model.
Forecasting is very far from an exact science, and the results from any forecast are designed to be interpreted as potential outcomes rather than anything concrete.
With that being said, when applied prudently and treated as "general case scenarios", forecast models like these may very well be potentially beneficial tools to have in the arsenal.
Relative Volume at Time█ OVERVIEW
This indicator calculates relative volume, which is the ratio of present volume over an average of past volume.
It offers two calculation modes, both using a time reference as an anchor.
█ CONCEPTS
Calculation modes
The simplest way to calculate relative volume is by using the ratio of a bar's volume over a simple moving average of the last n volume values.
This indicator uses one of two, more subtle ways to calculate both values of the relative volume ratio: current volume:past volume .
The two calculations modes are:
1 — Cumulate from Beginning of TF to Current Bar where:
current volume = the cumulative volume since the beginning of the timeframe unit, and
past volume = the mean of volume during that same relative period of time in the past n timeframe units.
2 — Point-to-Point Bars at Same Offset from Beginning of TF where:
current volume = the volume on a single chart bar, and
past volume = the mean of volume values from that same relative bar in time from the past n timeframe units.
Timeframe units
Timeframe units can be defined in three different ways:
1 — Using Auto-steps, where the timeframe unit automatically adjusts to the timeframe used on the chart:
— A 1 min timeframe unit will be used on 1sec charts,
— 1H will be used for charts at 1min and less,
— 1D will be used for other intraday chart timeframes,
— 1W will be used for 1D charts,
— 1M will be used for charts at less than 1M,
— 1Y will be used for charts at greater or equal than 1M.
2 — As a fixed timeframe that you define.
3 — By time of day (for intraday chart timeframes only), which you also define. If you use non-intraday chart timeframes in this mode, the indicator will switch to Auto-steps.
Relative Relativity
A relative volume value of 1.0 indicates that current volume is equal to the mean of past volume , but how can we determine what constitutes a high relative volume value?
The traditional way is to settle for an arbitrary threshold, with 2.0 often used to indicate that relative volume is worthy of attention.
We wanted to provide traders with a contextual method of calculating threshold values, so in addition to the conventional fixed threshold value,
this indicator includes two methods of calculating a threshold channel on past relative volume values:
1 — Using the standard deviation of relative volume over a fixed lookback.
2 — Using the highs/lows of relative volume over a variable lookback.
Channels calculated on relative volume provide meta-relativity, if you will, as they are relative values of relative volume.
█ FEATURES
Controls in the "Display" section of inputs determine what is visible in the indicator's pane. The next "Settings" section is where you configure the parameters used in the calculations. The "Column Coloring Conditions" section controls the color of the columns, which you will see in three of the five display modes available. Whether columns are plotted or not, the coloring conditions also determine when markers appear, if you have chosen to show the markers in the "Display" section. The presence of markers is what triggers the alerts configured on this indicator. Finally, the "Colors" section of inputs allows you to control the color of the indicator's visual components.
Display
Five display modes are available:
• Current Volume Columns : shows columns of current volume , with past volume displayed as an outlined column.
• Relative Volume Columns : shows relative volume as a column.
• Relative Volume Columns With Average : shows relative volume as a column, with the average of relative volume.
• Directional Relative Volume Average : shows a line calculated using the average of +/- values of relative volume.
The positive value of relative volume is used on up bars; its negative value on down bars.
• Relative Volume Average : shows the average of relative volume.
A Hull moving average is used to calculate the average used in the three last display modes.
You can also control the display of:
• The value or relative volume, when in the first three display modes. Only the last 500 values will be shown.
• Timeframe transitions, shown in the background.
• A reminder of the active timeframe unit, which appears to the right of the indicator's last bar.
• The threshold used, which can be a fixed value or a channel, as determined in the next "Settings" section of inputs.
• Up/Down markers, which appear on transitions of the color of the volume columns (determined by coloring conditions), which in turn control when alerts are triggered.
• Conditions of high volatility.
Settings
Use this section of inputs to change:
• Calculation mode : this is where you select one of this indicator's two calculation modes for current volume and past volume , as explained in the "Concepts" section.
• Past Volume Lookback in TF units : the quantity of timeframe units used in the calculation of past volume .
• Define Timeframes Units Using : the mode used to determine what one timeframe unit is. Note that when using a fixed timeframe, it must be higher than the chart's timeframe.
Also, note that time of day timeframe units only work on intraday chart timeframes.
• Threshold Mode : Five different modes can be selected:
— Fixed Value : You can define the value using the "Fixed Threshold" field below. The default value is 2.0.
— Standard Deviation Channel From Fixed Lookback : This is a channel calculated using the simple moving average of relative volume
(so not the Hull moving average used elsewhere in the indicator), plus/minus the standard deviation multiplied by a user-defined factor.
The lookback used is the value of the "Channel Lookback" field. Its default is 100.
— High/Low Channel From Beginning of TF : in this mode, the High/Low values reset at the beginning of each timeframe unit.
— High/Low Channel From Beginning of Past Volume Lookback : in this mode, the High/Low values start from the farthest point back where we are calculating past volume ,
which is determined by the combination of timeframe units and the "Past Volume Lookback in TF units" value.
— High/Low Channel From Fixed Lookback : In this mode the lookback is fixed. You can define the value using the "Channel Lookback" field. The default value is 100.
• Period of RelVol Moving Average : the period of the Hull moving average used in the "Directional Relative Volume Average" and the "Relative Volume Average".
• High Volatility is defined using fast and slow ATR periods, so this represents the volatility of price.
Volatility is considered to be high when the fast ATR value is greater than its slow value. Volatility can be used as a filter in the column coloring conditions.
Column Coloring Conditions
• Eight different conditions can be turned on or off to determine the color of the volume columns. All "ON" conditions must be met to determine a high/low state of relative volume,
or, in the case of directional relative volume, a bull/bear state.
• A volatility state can also be used to filter the conditions.
• When the coloring conditions and the filter do not allow for a high/low state to be determined, the neutral color is used.
• Transitions of the color of the volume columns determined by coloring conditions are used to plot the up/down markers, which in turn control when alerts are triggered.
Colors
• You can define your own colors for all of the oscillator's plots.
• The default colors will perform well on light or dark chart backgrounds.
Alerts
• An alert can be defined for the script. The alert will trigger whenever an up/down marker appears in the indicator's display.
The particular combination of coloring conditions and the display settings for up/down markers when you create the alert will determine which conditions trigger the alert.
After alerts are created, subsequent changes to the conditions controlling the display of markers will not affect existing alerts.
• By configuring the script's inputs in different ways before you create your alerts, you can create multiple, functionally distinct alerts from this script.
When creating multiple alerts, it is useful to include in the alert's message a reminder of the particular conditions you used for each alert.
• As is usually the case, alerts triggering "Once Per Bar Close" will prevent repainting.
Error messages
Error messages will appear at the end of the chart upon the following conditions:
• When the combination of the timeframe units used and the "Past Volume Lookback in TF units" value create a lookback that is greater than 5000 bars.
The lookback will then be recalculated to a value such that a runtime error does not occur.
• If the chart's timeframe is higher than the timeframe units. This error cannot occur when using Auto-steps to calculate timeframe units.
• If relative volume cannot be calculated, for example, when no volume data is available for the chart's symbol.
• When the threshold of relative volume is configured to be visible but the indicator's scale does not allow it to be visible (in "Current Volume Columns" display mode).
█ NOTES
For traders
The chart shown here uses the following display modes: "Current Volume Columns", "Relative Volume Columns With Average", "Directional Relative Volume Average" and "Relative Volume Average". The last one also shows the threshold channel in standard deviation mode, and the TF Unit reminder to the right, in red.
Volume, like price, is a value with a market-dependent scale. The only valid reference for volume being its past values, any improvement in the way past volume is calculated thus represents a potential opportunity to traders. Relative volume calculated as it is here can help traders extract useful information from markets in many circumstances, markets with cyclical volume such as Forex being one, obvious case. The relative nature of the values calculated by this indicator also make it a natural fit for cross-market and cross-sector analysis, or to identify behavioral changes in the different futures contracts of the same market. Relative volume can also be put to more exotic uses, such as in evaluating changes in the popularity of exchanges.
Relative volume alone has no directional bias. While higher relative volume values always indicate higher trading activity, that activity does not necessarily translate into significant price movement. In a tightly fought battle between buyers and sellers, you could theoretically have very large volume for many bars, with no change whatsoever in bid/ask prices. This of course, is unlikely to happen in reality, and so traders are justified in considering high relative volume values as indicating periods where more attention is required, because imbalances in the strength of buying/selling power during high-volume trading periods can amplify price variations, providing traders with the generally useful gift of volatility.
Be sure to give the "Directional Relative Volume Average" a try. Contrary to the always-positive ratio widely used in this indicator, the "Directional Relative Volume Average" produces a value able to determine a bullish/bearish bias for relative volume.
Note that realtime bars must be complete for the relative volume value to be confirmed. Values calculated on historical or elapsed realtime bars will not recalculate unless historical volume data changes.
Finally, as with all indicators using volume information, keep in mind that some exchanges/brokers supply different feeds for intraday and daily data, and the volume data on both feeds can sometimes vary quite a bit.
For coders
Our script was written using the PineCoders Coding Conventions for Pine .
The description was formatted using the techniques explained in the How We Write and Format Script Descriptions PineCoders publication.
Bits and pieces of code were lifted from the MTF Selection Framework and the MTF Oscillator Framework , also by PineCoders.
█ THANKS
Thanks to dgtrd for suggesting to add the channel using standard deviation.
Thanks to adolgov for helpful suggestions on calculations and visuals.
Look first. Then leap.
Weekly/Daily/Hourly/Minutes Colored Background IntervalsThis is my "Weekly/Daily/Hourly/Minutes Colored Background Intervals" assistant. I wouldn't describe it as an indicator, it just exhibits coloration of referenced periods of time with bgcolor() in Pine. With the arrival of 2021, I pondered the necessity of needing a visualization pre-2021 to visually recognize periodicity of market movements by the week, day, hour, or an adjustable period of minutes. While this script is simply generic, I hope you may find useful in your endeavors as a member on TradingView.
Explaining the script's usage, the "Minutes" input can be adjusted from anywhere between 5-55 minutes for only intraday. This can be modified to accommodate 90 minutes (1.5hrs) or any other minutes period desirable by tweaking certain numbers up to 1440. Minutes and Hourly backgrounds are disabled by default for most daily traders. Changing the input() code to `true` will provide them on by default when the script loads, if you choose that route. Each time periods background color is enable/disable capable. All of the colors are easily adjustable to any combination you can ponder for your visual acuity with the color swatch provided by input(type=input.color). The coloring can be "swapped" by input() depending on how you wish to start and end the day visually. I thought this would come in handy. The weekly background can have different starting points, whether it be Sunday, Monday, or any other day such as Friday for example.
The entire script's contents isn't intended for complete re-use as is for publicly published scripts. It's more along the lines of code that could be used to personally modify indicators you have, depending on the time frames you may actually be trading on. The code is basically modular, so you can use bits and pieces of it in your personally modified Pine Editor scripts that you wish to customize for yourself. I will say that the isXxx() functions are completely reusable in any script without any need for author permission inquiries from me, as easy as copy and paste. Those may come in handy for many folks. If you find them useful in certain circumstances, use isXxx() functions as you please. Day of the week detection by functions will have applications beyond my current intended use for them.
Of notable mention, this is a miniature lesson by example of how the new input(type=input.color) may be used. I'm also using `var` inside functions to aid in computational efficiency of the script runtime. The colors are permanently stored at the very beginning of the scripts operation inside the function and just reused from that point onward. Its a rare use case, but well suited for this scripts intention. Once again I have demonstrated the "Power of Pine" for developers of any experience level to learn from via code elegance.
When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members , I may implement more ideas when they present themselves as worthy additions. Have a profitable future everyone!
Money Flow Profile [LuxAlgo]The Money Flow Profile is a charting tool that measures the traded volume or the money flow at all price levels on the market over a specified time period and highlights the relationship between the price of a given asset and the willingness of traders to either buy or sell it, allowing traders to reveal dominant and/or significant price levels and to analyze the trading activity of a particular user-selected range.
This tool combines a volume/money flow profile, a sentiment profile, and price levels, where the right side of the profile highlights the distribution of the traded activity/money flow at different price levels, the left side of the profile highlights the market sentiment at those price levels, and in the middle the price levels.
🔶 USAGE
A volume/money flow profile is an advanced charting tool that displays the traded volume/money flow at different price levels over a specific period. It helps traders visualize where the majority of trading activity/money flow has occurred.
A sentiment profile is a difference between buy and sell volume/money flow aiming to highlight the sentiment/dominance at specific price levels.
Each row of the profile presents figures on volume and money flow specific to price levels.
High volume/money flow nodes indicate areas of high activity and are likely to act as support or resistance in the future. They attract price and try to hold it there. Conversely, low-volume nodes are areas with low trading activity, that are less subject to get revisited by the price. The market often bounces right over these levels, not staying for long. The "Profile Heatmap" option of the script helps to better emphasize the trading activity within each areas.
By measuring the traded activity at each price level the script presents an ability to highlight the consolidation zones, in other words, highlights accumulation and distribution zones. When the price moves toward one end of the consolidation and volume pick up, it can foreshadow a potential breakout.
Level of Significance, Point of Control, Highest Sentiment Zone, and Profile Price levels are some of the other profile-related options available with the script.
🔶 SETTINGS
The script takes into account user-defined parameters and plots the profiles, where detailed usage for each user-defined input parameter in indicator settings is provided with the related input's tooltip.
🔹 Profile Generic Settings
Lookback Length / Fixed Range: Sets the lookback length.
Profile Source: Sets the profile source, Volume, or Money Flow.
🔹 Profile Presentation Settings
Volume/Money Flow Profile: Toggles the visibility of the Volume/Money Flow Profile.
High Traded Nodes: Threshold and Color option for high traded nodes.
Average Traded Nodes: Color option for average traded nodes.
Low Traded Nodes: Threshold and Color option for low traded nodes.
🔹 Sentiment Profile Settings
Sentiment Profile: Toggles the visibility of the Sentiment Profile.
Sentiment Polarity Method: Sets the method used to calculate the up/down volume/money flow.
Bullish Nodes: Color option for Bullish Nodes.
Bearish Nodes: Color option for Bearish Nodes.
🔹 Profile Heatmap Settings
Profile Heatmap: Toggles the visibility of the profile heatmap.
Heatmap Source: Sets the source of the profile heatmap, Volume/Money Flow Profile, or Sentiment Profile.
Heatmap Transparency: Control the transparency of the profile heatmap.
🔹 Other Presentation Settings
Level of Significance: Toggles the visibility of the level of significance line/zone.
Consolidation Zones: Toggles the visibility of the consolidation zones.
Consolidation Threshold, Color: Sets the threshold value and zone color.
Highest Sentiment Zone: Toggles the visibility of the highest bullish or bearish sentiment zone.
Profile Price Levels, Color, Size: Toggles the visibility of the profile price levels, and sets the color and the size of the level labels.
Profile Range Background Fill: Toggles the visibility of the profiles range.
🔹 Other Settings
Number of Rows: Specify how many rows each profile histogram will have.
Profile Width %: Alters the width of the rows in the histogram, relative to the profile length
Profile Text Size: Alters the size of the text. Setting to Auto will keep the text within the box limits.
Profile Horizontal Offset: Enables to move profile in the horizontal axis.
🔶 RELATED SCRIPTS
Liquidity-Sentiment-Profile
Swing-Volume-Profiles
For more and other conceptual scripts you are kindly invited to visit LuxAlgo-Scripts .
Cryptosmart Trading Tool (by heswaikcrypt)Introducing the Cryptosmart Trading Tool (CSTP) - An optimized into Market Sentiment and direction tool
The Cryptosmart Trading Tool (CSTP) is an advanced indicator developed to provide valuable insights into market sentiment and direction. This tool combines existing TA tools and intelligently develops smart algorithms to empower traders with a deeper understanding of market dynamics. Some classic elements are included in the scripting, such as the exponential moving average (EMA), volume, and Relative Strength Index (RSI), to provide a comprehensive analysis of market conditions. By combining these indicators, the script aims to capture different aspects of market sentiment and enhance the accuracy of the analysis.
The Cryptosmart Trading Tool (CSTP) incorporates a unique algorithm that combines trend following analysis, momentum analysis, and volume analysis to provide insights into market sentiment and price action.
Trend Following Analysis:
The algorithm utilizes two exponential moving averages (EMAs): EMA1 and EMA2.
When EMA1 crosses above EMA2, it indicates an uptrend (isUptrend).
When EMA1 crosses below EMA2, it indicates a downtrend.
You adjust the input value to suit your trading strategy, however, 7, 8, 21, 34, and 200 have been tested to produce a fine tuned output.
The bar color indicates blue for bullish sentiment (is uptrend) and white for bearish sentiment (is downtrend).
Momentum Analysis:
The relative strength index (RSI) is calculated based on the closing prices and the specified RSI length.
RSI values above 70 indicate overbought conditions (isOverbought).
RSI values below 30 indicate oversold conditions (isOversold).
Using the isOversoldExtreme and isOverboughtExtreme, the CSTP algorithm detect extreme over bought and oversold conditions and alert with label color green and red.
Volume Analysis:
The algorithm calculates the average volume over a specified length (averageVolume).
The volume ratio is obtained by dividing the current volume by the average volume.
High volume activity is identified when the volume ratio is greater than 1 (isHighVolume).
Major Flip and Arrow Plots:
Major bullish or bearish flips are identified when EMA1 crosses above EMA2 with RSI values above 50 and high volume activity (isBullishFlip) or when EMA1 crosses below EMA2 with RSI values below 50 and high volume activity (isBearishFlip).
Arrow plots are used to display trend direction, upward arrows for major bullish flips and downward arrows for major bearish flips.
The algorithm calculates the bullBearRatio and RSIValueAtFlip to capture the volume ratio and RSI values at major flips.
The bullishRatio and bearishRatio variables store the volume ratio values for the corresponding trend conditions.
Labels are also displayed on the chart to provide information about EMA values and RSI values. This can be independently disabled by the user
The uniqueness of the CSTP algorithm lies in its combination of trend following analysis, momentum analysis, and volume analysis. By considering these factors, the algorithm provides insights into market sentiment and price action. The use of EMAs, RSIs, and volume ratios allows traders to identify potential trends, overbought/oversold conditions, and high volume activity. The visual representation of bar colors and arrows enhances the ease of understanding the sentiment and major flips. CSTP is uniquely presented by using dots, arrows, candlestick colors, and shape labels to indicate the market scenario. This is explained below.
By leveraging multiple indicators and analysis techniques, CSTP aims to provide traders with a holistic understanding of market dynamics and enhance their decision-making process.
It's important to note that while the individual components used in CSTP are not new or unique on their own, the specific algorithm, parameters, and calculations used within the script are what make it distinctive and valuable. By carefully integrating these components, CSTP generates results that are greater than the sum of its parts, providing traders with a comprehensive analysis of market conditions.
Through extensive research, analysis, and testing, we have created a useful tool, fine-tuned to optimize the accuracy and reliability of the script's output, which can assist traders in making more informed trading decisions.
How to Use:
1. Apply the CSTP Script:
- Apply the CSTP script to your TradingView chart to start analyzing market conditions. (Access instructions can be found in the author's details section.)
- Ensure you have the latest version of TradingView to access all the features and functionalities.
2. Customize Parameters:
- Customize the input variables to match your trading preferences and adapt the tool to different markets.
- Experiment with different settings, such as RSI Length and EMA Lengths, to find the optimal configuration for your trading strategy.
3. Interpret the Color-Coded Bars and Wave Labels:
- Green bars indicate bullish sentiment, suggesting potential buying opportunities.
- Red bars indicate bearish sentiment, indicating potential selling opportunities.
- Blue and white bars represent sentiment backed by smart money liquidity, adding an extra layer of analysis.
- The wave labels provide insights into market structure and potential wave patterns.
4. Combine with Candlestick philosophy strategy and parameters used:
- Wait for candlestick closure before making trading decisions based on CSTP's analysis.
- Consider the EMA (yellow) line as an additional tool to confirm entry or exit points.
- Combining CSTP's analysis with candlestick patterns can enhance your decision-making process and improve trade timing.
- Volume Analysis: Compares the current volume to the Simple Moving Average (SMA) of volume using the RSI Length parameter to determine high-volume periods.
- Color-Coded Bars: The color of the bars represents different market sentiments based on all the parameters used including Relative strength index, bullish and bearish
divergence and volume conditions.
- Open Close Cross (OCC) Alerts: Generates dot alert with color code (red=Bearish, green=Bullish) when there is a crossover or crossunder between the close and open
prices
Important Notes:
- Candlestick color matter a lot as then show the sentiment of the market at a given time. and it is an added advantage for a trader to understand candlestick Psychology.
Candlestick conditions
I will use this BINANCE:MTLUSDT chart to explain how it works
Long green Arrow: Bullish call, with green isBullish arrow
Long red Arrow: Bearish call, with isBearish arrow
Blue with red wick and tape: this indicate a bearish sentiment but with some bullish volume, this position is dice which requires a proper understanding of entry and exit. when if this said candle stick closes below the EMA line, wait for the the next candle after it t determining your move. If the next one closes above it, then the direction is still bullish, else the direction has flipped bearish. (special scenario: in the range or consolidative market phase, you may need to wait 3-7 day candle close before you decide. use the coloration as guide to help with your decision making).
Blue with green wick and tape: this indicated strong bullish sentiment backed by liquidity to push. it is important to not the candle close, if the candle closes above the EMA (7 and/or 21) that validates the move, else, you may need to wait for the next candle close to determine the move and momentum of the market. Example is the $COOMPUST chart
White with green wick and tape: this works just like the "Blue candlestick with red wick and tape". follow same procedure
White with red wick and tape: White candle with red wick, indicates bearish sentiment backed by available market liquidity at the time.
If you see the market moving upward and the candlestick keep closing with white color, it is an indication of inorganic move (Check BITFINEX:SUIUST ) the best thing to do is to wait at resistance. a similar scenario can be seen here
Market test:
below are picture of the indicator tested on different assets
CRYPTOCAP:BNB
AUD
Tesla
it is best to book an entry after an arrow indicate (especially for a bullish market) and the candle closes above the EMA (Yellow line).
Risk management.
- ALWAYS PROTECT YOUR PROFIT WHEN YOU SEE ON. THE MARKET IS DYNAMIC
- Trading involves risks, and no tool can guarantee absolute accuracy in predicting market direction. Conduct thorough research and exercise caution when making trading decisions.
- Apply proper risk management strategies and adjust position sizes according to your risk tolerance.
- Stay updated with market news and events that may impact your trading decisions.
Conclusion:
The Cryptosmart Trading Tool (CSTP) provides traders with a powerful advantage by offering valuable insights into market sentiment and direction. To gain access or trial, refer to the author's details section. This indicator combines various analysis techniques to provide a comprehensive view of the market. Remember to apply your own analysis and expertise in conjunction with CSTP for optimal results.
This indicator combines my 8years of trading experience. Enjoy
Disclaimer:
Trading involves risks, and the CSTP script is designed to assist traders by providing valuable insights. It should be used as a supplement to your own analysis and expertise. Exercise caution and make informed trading decisions based on your own research.
Fractal Basic Chart Patterns [MyTradingCoder]This script is something that I made a long time ago in my early days of learning Pine. It is not in development anymore but has some unique and impressive utility that will help the community. This script will fractally identify chart patterns(iH&S,H&S,W,M) on any chart and timeframe. Most scripts have limitations that make the user have to adjust various parameters to get the desired result to show up on the chart. Lower input values may show smaller patterns, whereas vise versa, higher input values may show larger patterns, but you never seem to get the best of both worlds with these types of scripts. Some users may appreciate the vast majority of input parameters that most scripts provide, but others like myself may find it restrictive and annoying, as you wont get large patterns AND small patterns simultaneously.
All details needed to understand how to use the script are listed below. I will be creating new and well written scripts in the near future moving forward to help the community as best as I can, and just wanted to make it clear that this particular script is just something that I had on the backburner from a very long time ago, before I was a "Pinescript Maven" :) Enjoy!
Available Patterns:
- W Pattern
- M Pattern
- Head and Shoulders Pattern
- Inverse Head and Shoulder Pattern
Customizable inputs:
- Option to specify minimum bars required to consider a pattern.(Can be helpful if you don't want to see lower timeframe patterns, as some may not look like patterns, but if you drop the timeframe and go to the same time, there will be a pattern there on a lower scale)
- Boolean Inputs to Enable/Disable Certain Patterns
Available Alert Options:
- W Pattern Alert
- M Pattern Alert
- H&S Pattern Alert
- iH&S Pattern Alert
User Manual:
- Patterns will be drawn/detected/finalized on the bar close when the neckline is broken
- Green/Red lines represent the historical structure used to identify each pattern
- Blue dashed lines represent the projected price action based on the pattern completing
- Alerts/Indicator will not repaint(Can use 'once per bar' or 'once per bar close' and behavior will be identical. Code is optimized.)
- May have trouble on assets with daily/weekend time gaps with the projected price action dashed line due to time being used as the xloc. If this becomes a problem, leave a comment below and I will consider bringing this back into development and convert to bar_index as xloc to fix the issue.
- Patterns can be all shapes and sizes, hence the beauty of this indicator
- Leave a comment below for any questions or requests and give the indicator a like if you find it useful
Bogdan Ciocoiu - Sniper EntryWhat is Sniper Entry
Sniper Entry is a set indicator that encapsulates a collection of pre-configured scripts using specific variables that enable users to extract signals by interpreting market behaviour quickly, suitable for 1-3min scalping. This instrument is a tool that acts as a confluence for traders to make decisions concerning current market conditions. This indicator does not apply solely to an asset.
What Sniper Entry is not
Sniper Entry is not interpreting fundamental analysis and will also not be providing out of box market signals. Instead, it will provide a collection of integrated and significantly improved open-source subscripts designed to help traders speculate on market trends. Traders must apply their strategies and configure Sniper Entry accordingly to maximise the script's output.
Originality and usefulness
The collection of subscripts encapsulated in this tool makes it unique in the Trading View ecosystem. This indicator enables traders to consider entry positions or exit positions by comparing similar algorithms at once.
Its usefulness also emerges from the unique configurations embedded in the indicator's settings, which are different from those of the original scripts.
This indicator's originality is also reflected in how its modules are integrated, including the integration of the settings.
Open-source reuse
I used the following open-source resources, which I simplified significantly and pre-configured for short term scalping. The source codes for the below are already in the public domain, including the following links listed below.
www.tradingview.com (open source)
(open source and generic algorithm)
www.tradingview.com (open source)
(open source)
(open source)
www.tradingview.com (generic MA algorithm and open source)
(generic VWAP algorithm and open source)
String Manipulation Framework [PineCoders FAQ]█ OVERVIEW
This script provides string manipulation functions to help Pine coders.
█ FUNCTIONS PROVIDED
f_strLeft(_str, _n)
Function returning the leftmost `_n` characters in `_str`.
f_strRight(_str, _n)
Function returning the rightmost `_n` characters in `_str`.
f_strMid(_str, _from, _to)
Function returning the substring of `_str` from character position `_from` to `_to` inclusively.
f_strLeftOf(_str, _of)
Function returning the sub-string of `_str` to the left of the `_of` separating character.
f_strRightOf(_str, _of)
Function returning the sub-string of `_str` to the right of the `_of` separating character.
f_strCharPos(_str, _chr)
Function returning the position of the first occurrence of `_chr` in `_str`, where the first character position is 0. Returns -1 if the character is not found.
f_strReplace(_src, _pos, _str)
Function that replaces a character at position `_pos` in the `_src` string with the `_str` character or string.
f_tickFormat()
Function returning a format string usable with `tostring()` to round a value to the symbol's tick precision.
f_tostringPad(_val, _fmt)
Function returning a string representation of a numeric `_val` using a special `_fmt` string allowing all strings to be of the same width, to help align columns of values.
`f_tostringPad()`
Using the functions should be straightforward, but `f_tostringPad()` requires more explanations. Its purpose is to help coders produce columns of fixed-width string representations of numbers which can be used to produce columns of numbers that vertically align neatly in labels, something that comes in handy when, for example, you need to center columns, yet still produce numbers of various lengths that nonetheless align.
While the formatting string used with this function resembles the one used in tostring() , it has a few additional characteristics:
• The question mark (" ? ") is used to indicate that padding is needed.
• If negative numbers must be handled by the function, the first character of the formatting string must be a minus sign ("-"),
otherwise the unary minus sign of negative numbers will be stripped out.
• You will produce more predictable results by using "0" rather than "#" in the formatting string.
You can experiment with `f_tostringPad()` formatting strings by changing the one used in the script's inputs and see the results on the chart.
These are some valid examples of formatting strings that can be used with `f_tostringPad()`:
"???0": forces strings to be four units wide, in all-positive "int" format.
"-???0": forces strings to be four units wide, plus room for a unary minus sign in the first position, in "int" format.
"???0.0": forces strings to be four units wide to the left of the point, all-positive, with a decimal point and then a mantissa rounded to a single digit.
"-???0.0?": same as above, but adds a unary minus sign for negative values, and adds a space after the single-digit mantissa.
"?????????0.0": forces the left part of the float to occupy the space of 10 digits, with a decimal point and then a mantissa rounded to a single digit.
█ CHART
The information displayed by this indicator uses the values in the script's Inputs, so you can use them to play around.
The chart shows the following information:
• Column 0 : The numeric input values in a centered column, converted to strings using tostring() without a formatting argument.
• Column 1 : Shows the values formatted using `f_tostringPad()` with the formatting string from the inputs.
• Column 2 : Shows the values formatted using `f_tostringPad()` but with only the part of the formatting string left of the decimal point, if it contains one.
• Column 3 : Shows the values formatted using `f_tostringPad()` but with the part of the formatting string left of the decimal point,
to which is added the right part of the `f_tostringPad()` formatting string, to obtain the precision in ticks of the symbol the chart is on.
• Column 4 : Shows the result of using the other string manipulation functions in the script on the source string supplied in the inputs.
It also demonstrates how to split up a label in two distinct parts so that you can vertically align columns when the leftmost part contains strings with varying lengths.
You will see in our code how we construct this column in two steps.
█ LIMITATIONS
The Pine runtime is optimized for number crunching. Too many string manipulations will take a toll on the performance of your scripts, as can readily be seen with the running time of this script. To minimize the impact of using string manipulation functions in your scripts, consider limiting their calculation to the first or last bar of the dataset when possible. This can be achieved by using the var keyword when declaring variables containing the result of your string manipulations, or by enclosing blocks of code in if blocks using barstate.isfirst or barstate.islast .
█ NOTES
To understand the challenges we face when trying to align strings vertically, it is useful to know that:
• As is the case in many other places in the TadingView UI and other docs, the Pine runtime uses the MS Trebuchet font to display label text.
• Trebuchet uses proportionally-spaced letters (a "W" takes more horizontal space than an "I"), but fixed-space digits (a "1" takes the same horizontal space as a "3").
Digits all use a figure space width, and it is this property that allows us to align numbers vertically.
The fact that letters are proportionally spaced is the reason why we can't vertically align columns using a "legend" + ":" `+ value structure when the "legend" part varies in width.
• The unary minus sign is the width of a punctuation space . We use this property to pad the beginning of numbers
when you use a "-" as the first character of the `f_tostringPad()` formatting string.
Our script was written using the PineCoders Coding Conventions for Pine .
The description was formatted using the techniques explained in the How We Write and Format Script Descriptions PineCoders publication.
█ THANKS
Thanks to LonesomeTheBlue for the `f_strReplace()` function.
Look first. Then leap.
Dynamic Equalizer [DW]This is an experimental study inspired by techniques primarily utilized in the visual and audio processing worlds.
This study is designed to serve as a pre or post processing filter designer that allows you to shape the frequency spectrum of your data on a more "in-depth" level.
First the data is fed through my Band-Shelf Equalizer function.
The EQ in this script works by dividing the input signal into 6 bands and 2 shelves using a series of roofing filters.
The bands are then gain adjusted recursively (in %) to match source as closely as possible at unity gain.
The recursive adjustment size can be changed using the "Gain Adjustment Increment" input, which will affect how tightly the resulting filter approximates source at unity.
The frequency range of each band is adjustable via the period inputs. In default settings, these are the ranges:
-> Low Shelf : 256+ Samples Per Cycle. This shelf is the largest trend component of the signal. Unlike the other bands and shelf, this shelf is not zero mean unless source data is.
-> Band 1 : 128 - 256 Samples Per Cycle. This band is a moderate trend and low cyclic component of the signal.
-> Band 2 : 64 - 128 Samples Per Cycle. This band is a mild trend and moderate cyclic component of the signal.
-> Band 3 : 32 - 64 Samples Per Cycle. This band is a high cyclic component of the signal.
-> Band 4 : 16 - 32 Samples Per Cycle. This band is a high cyclic component of the signal.
-> Band 5 : 8 - 16 Samples Per Cycle. This band is a moderate cyclic and mild to moderate noise component of the signal.
-> Band 6 : 4 - 8 Samples Per Cycle. This band is a high noise component of the signal.
-> High Shelf : 4- Samples Per Cycle. This shelf is primarily noise.
Each band and shelf can be manually gain adjusted via their respective inputs.
After EQ processing, each band and shelf is then optionally fed through my Peak Envelope Compressor function for dynamics control.
The compressor in this script works by reducing band power by a specified percentage when it exceeds a user defined percentage of the peak envelope.
The peak envelope measures maximum power of the band over its period range multiplied by a user defined integer.
There is an option included to apply Butterworth smoothing to the envelope as well, which will alter the shape of the compressor.
If you want an envelope that quickly responds to power peaks, use little to no smoothing. If you desire something more static, use a large smoothing period.
Attack and release are included in the algorithm to shape the sensitivity of the compressor.
Attack controls how many bars it takes from being triggered for attenuation to reach its target amount.
Release controls how many bars it takes from being un-triggered for attenuation to reach back to 0.
In addition, the compressor is equipped with parallel processing.
The "Parallel Mix" inputs control the amount of compressed vs non-compressed signal presence in the final output.
And of course, the compressor has a post-processing gain input (in %) to fine-tune the presence of the band.
For easy visual tuning, you can view each independent band's magnitude or power by selecting them in the display inputs.
This display setup can also be beneficial analytically if you wish to analyze specific frequency components of the source signal.
The default preset for this script is meant to show how versatile EQ filtering and compression can be for technical analysis.
The EQ preset detrends the data, moderately smooths the data, and emphasizes dominant cyclical ranges.
The compression preset provides fast, moderately heavy shaping to dial in dynamics and reduce transient effects.
The resulting curve is a great filter for responsively analyzing cyclical momentum.
The script is also fully equipped with outputs that can be used externally by other scripts.
You can integrate these external outputs with your own script by using a source input. Simply select the desired output from the dropdown tab on your script.
Multiband filtering and compression are concepts that are not conventionally used in the world of finance.
However, the versatile capabilities of these concepts make this a wonderful tool to have in the arsenal.
By surgically adjusting separate frequency components of a signal, you're able to design a wide variety of filters with unique responses for a vast array of applications.
Play around with the settings and see what kinds of filters you can design!
---------------------------------------------------------
This is a premium script, and access is granted on an invite-only basis.
To gain access, get a copy of the script overview, or for additional inquiries, send me a direct message.
I look forward to hearing from you!
---------------------------------------------------------
General Disclaimer:
Trading stocks, futures, Forex, options, ETFs, cryptocurrencies or any other financial instrument has large potential rewards, but also large potential risk.
You must be aware of the risks and be willing to accept them in order to invest in stocks, futures, Forex, options, ETFs or cryptocurrencies.
Don’t trade with money you can’t afford to lose.
This is neither a solicitation nor an offer to Buy/Sell stocks, futures, Forex, options, ETFs, cryptocurrencies or any other financial instrument.
No representation is being made that any account will or is likely to achieve profits or losses of any kind.
The past performance of any trading system or methodology is not necessarily indicative of future results.
---------------------------------------------------------
NOTE: Unlike standard tools of this nature in other applications, I scaled the signals in % rather than dB, mainly since it's proven so far to be more user-friendly to keep things linear on here.
In addition, no transitions to frequency domain are done in this script. This EQ is an experimental variant that processes in the time domain and relies on a network of roofing filters.
When changing cutoff periods, make sure they are organized in descending order with low shelf as the highest period, and high shelf as the lowest period.
Using non-descending lengths may result in an undesired output.
Lastly, when changing cutoff periods, parts of the spectrum may leak slightly differently between bands, so the "Gain Match Adjustment Increment" may need to be changed as well if you want it to match as closely as possible at unity.
Despite these shortcomings, this tool functions surprisingly well, especially with the default periods, and it's quickly become one of my favorites. I hope you all enjoy it!
[ALL-IN-ONE] Algorithmic S/R and Pivots and Long Term LevelsHello my trading padawans.
Hope you're all having a blast
Here's the invite-only script of the week. The ALL-IN-ONE saga continues with another script.
This time, I compiled a lot of algorithmic supports and resistances (S/R) - to be used with any indicators out there.
Those S/R are universal and work with all asset classes (FOREX, CRYPTO, INDICES, STOCKS, COMMODITIES, ...)
No one can predicts which S/R will stop a move - generally - the high timeframes S/R + the SMAs with a big input value - work as strong walls often forcing the candles to retrace a bit short-term.
At Today's post (October, 25th 2019 - 12 pm UTC-4), we see how useful they were, to identify how high BTC/USD could go before retracing.
I. 💎 SCRIPTS ACCESS 💎
1.🖐️ Access can only be requested through my website.
2.🖐️ My website URL is in this script signature at the very bottom (you'll have to scroll down a bit and going past the long description) and in my profile status available here : Daveatt
3.🖐️ A tutorial article/video will be provided on those sub mentioned links + Tradingview
4.🖐️ You obviously can contact me directly for more information
II. 🔎 ALL-IN-ONE Supports and Resistances 🔎
You can display the algorithmic S/R, and/or pivots, (not finished yet) and the long terms levels.
For the 3 types of S/R, I pre-selected those that I think are the most relevant and useful for everyone. Please let me know if you'd like me to add/remove some.
All those listed by default are important and provide a MAP for a trader.
They give great take profits zones, levels where it's better to wait for a pullback before entering.
2.1 👁️🗨️ S/R mode 👁️🗨️
Each type of S/R can be displayed or not.
2.2 📱 Mobile optimized display 📱
Preview : imgur.com I posted 2 images there
The script is made using the newest version of Pinescript, and displaying small labels for every support/resistance.
✨ This will come in handy for mobile users - they'll get nice looking labels displayed at the right of their chart.
Each S/R type have its own labels and label position. The script users can activate/deactivate them at will
Let's review quickly each one.
2.3 Algorithmic SMAs
I cherish, love, sometimes despite them, but they're very relevant for all asset classes. The tool displays as many relevant algorithmic and generic SMAs that I could think of.
The indicator lists about 18 different SMAs in multiple timeframes.
2.4 Pivots
7 pivots are displayed (S1/S2/S3/P/R1/R2/R3)
You can choose one of 4 pivot point types:
- Traditional
- Woodie
- Fibonacci
- Camarilla.
The fun doesn't stop here. You can also select a timeframe between Daily/Weekly/Monthly/Yearly for those pivots.
For INDICES, for example, I use a lot the daily Traditional Pivots.
2.5 Long Terms Levels
Display by default the highest/lowest weekly/monthly/quarterly/monthly levels.
The scripts user can chose to select the previous highest/lowest also.
-------------------------------------------------------------------------------------------------------------------------------------
If you have any doubts or questions, please hit me up directly or ask in the comments section of this script.
I'll never claim I have the best trading methodology or indicators.
You only will judge and I'll appreciate all the questions and feedback you're sending my way.
They helped me a ton for developing indicators based on all the requests I received.
May the force 💪 be with you all 🥳.
Dave
Uptrick: Portfolio Allocation DiversificationIntro
The Uptrick: Portfolio Allocation Diversification script is designed to help traders and investors manage multiple assets simultaneously. It generates signals based on various trading systems, allocates capital using different diversification methods, and displays real-time metrics and performance tables on the chart. The indicator compares active trading strategies with a separate long-term holding (HODL) simulation, allowing you to see how a systematic trading approach stacks up against a simple buy-and-hold strategy.
------------------------------------------------------------------------
Trading System Selection
1. No signals (none)
In this mode, the script does not produce bullish or bearish indicators; every asset stays in a neutral stance. This setup is useful if you prefer to observe how capital might be distributed based solely on the chosen diversification method, with no influence from directional signals.
2. rsi – neutral
This mode uses an index-based measure of whether an asset appears overbought or oversold. It generates a bearish signal if market conditions point to overbought territory, and a bullish signal if they indicate oversold territory. If neither extreme surfaces, it remains neutral. Some traders apply this in sideways or range-bound conditions, where overbought and oversold levels often hint at possible turning points. It does not specifically account for divergence patterns.
3. rsi – long only
In this setting, the system watches for instances where momentum readings strengthen even if the asset’s price is still under pressure or setting new lows. It also considers oversold levels as potential signals for a bullish setup. When such conditions emerge, the script flags a possible move to the upside, ignoring indications that might otherwise suggest a bearish trend. This approach is generally favored by those who want to concentrate exclusively on identifying price recoveries.
4. rsi – short only
Here, the script focuses on spotting signs of deteriorating momentum while an asset’s price remains relatively high or attempts further gains. It also checks whether the market is drifting into overbought territory, suggesting a potential decline. Under such conditions, it issues a bearish signal. It provides no bullish alerts, making it particularly suitable for traders who look to take advantage of overvalued scenarios or protect themselves against sudden downward moves.
5. Deviation from fair value
Under this system, the script judges how far the current price may have strayed from what is considered typical, taking into account normal fluctuations. If the asset appears to be trading at an unusually low level compared to that reference, it is flagged as bullish. If it seems abnormally high, a bearish signal is issued. This can be applied in various market environments to seek opportunities that arise from perceived mispricing.
6. Percentile channel valuation
In this mode, the script determines where an asset's price stands within a historical distribution, highlighting whether it has reached unusually high or low territory compared to its recent past. When the price reaches what is deemed an extreme reading, it may indicate that a reversal is more likely. This approach is often used by traders who watch for statistical outliers and potential reversion to a more typical trading range.
7. ATH valuation
This technique involves comparing an asset's current price with its previously recorded peak values. The script then interprets whether the price is positioned so far below the all-time high that it looks discounted, or so close to that high that it could be overextended. Such perspective is favored by market participants who want to see if an asset still has ample room to climb before matching historic extremes, or if it is nearing a possible ceiling.
8. Z-score system
Here, the script measures how far above or below a standard reference average an asset's price may be, translated into standardized units. Substantial negative readings can suggest a price that might be unusually weak, prompting a bullish indication, while large positive readings could signal overextension and lead to a bearish call. This method is useful for traders watching for abrupt deviations from a norm that often invite a reversion to more balanced levels.
RSI Divergence Period
This input is particularly relevant for the RSI - Long Only and RSI - Short Only modes. The period determines how many bars in the past you compare RSI values to detect any divergences.
------------------------------------------------------------------------
Diversification Method
Once the script has determined a bullish, bearish, or neutral stance for each asset, it then calculates how to distribute capital among all included assets. The diversification method sets the weighting logic.
1. None
Gives each asset an equal weight. For example, if you have five included assets, each might get 20 percent. This is a simple baseline.
2. Risk-Adjusted Expected Return Using Volatility Clustering
Emphasizes each asset’s average returns relative to its observed risk or volatility tendencies. Assets that exhibit good risk-adjusted returns combined with moderate or lower volatility may receive higher weights than more volatile or less appealing assets. This helps steer capital toward assets that have historically provided a better ratio of return to risk.
3. Relative Strength
Allocates more capital to assets that show stronger price strength compared to a reference (for example, price above a long-term moving average plus a higher RSI). Assets in clear uptrends may be given higher allocations.
4. Trend-Following Indicators
Examines trend-based signals, like positive momentum measurements or upward-trending strength indicators, to assign more weight to assets demonstrating strong directional moves. This suits those who prefer to latch onto trending markets.
5. Volatility-Adjusted Momentum
Looks for assets that have strong price momentum but relatively subdued volatility. The script tends to reward assets that are trending well yet are not too volatile, aiming for stable upward performance rather than massive swings.
6. Correlation-Based Risk Parity
Attempts to weight assets in such a way that the overall portfolio risk is more balanced. Although it is not an advanced correlation matrix approach in a strict sense, it conceptually scales each asset’s weight so no single outlier heavily dominates.
7. Omega Ratio Maximization
Gives preference to assets with higher omega ratios. This ratio can be interpreted as the probability-weighted gains versus losses. Assets with a favorable skew are given more capital.
8. Liquidity-Weighted Valuation
Considers each asset’s average trading liquidity, such as the combination of volume and price. More liquid assets typically receive a higher allocation because they can be entered or exited with lower slippage. If the trading system signals bullishness, that can further boost the allocation, and if it signals bearishness, the allocation might be set to zero or reduced drastically.
9. Drawdown-Controlled Allocation (DCA)
Examines each asset’s maximum drawdown over a recent window. Assets experiencing lighter drawdowns (thus indicating somewhat less downside volatility) receive higher allocations, aiming for a smoother overall equity curve.
------------------------------------------------------------------------
Portfolio and Allocation Settings
Portfolio Value
Defines how much total capital is available for the strategy-based investment portion. For example, if set to 10,000, then each asset’s monetary allocation is determined by the percentage weighting times 10,000.
Use Fixed Allocation
When enabled, the script calculates the initial allocation percentages after 50 bars of data have passed. It then locks those percentages for the remainder of the backtest or real-time session. This feature allows traders to test a static weighting scenario to see how it differs from recalculating weights at each bar.
------------------------------------------------------------------------
HODL Simulator
The script has a separate simulation that accumulates positions in an asset whenever it appears to be recovering from an undervalued state. This parallel tracking is intended to contrast a simple buy-and-hold approach with the more adaptive allocation methods used elsewhere in the script.
HODL Buy Quantity
Each time an asset transitions from an undervalued state to a recovery phase, the simulator executes a purchase of a predefined quantity. For example, if set to 0.5 units, the system will accumulate this amount whenever conditions indicate a shift away from undervaluation.
HODL Buy Threshold
This parameter determines the level at which the simulation identifies an asset as transitioning out of an undervalued state. When the asset moves above this threshold after previously being classified as undervalued, a buy order is triggered. Over time, the performance of these accumulated positions is tracked, allowing for a comparison between this passive accumulation method and the more dynamic allocation strategy.
------------------------------------------------------------------------
Asset Table and Display Settings
The script displays data in multiple tables directly on your chart. You can toggle these tables on or off and position them in various corners of your TradingView screen.
Asset Info Table Position
This table provides key details for each included asset, displaying:
Symbol – Identifies the trading pair being monitored. This helps users keep track of which assets are included in the portfolio allocation process.
Current Trading Signal – Indicates whether the asset is in a bullish, bearish, or neutral state based on the selected trading system. This assists in quickly identifying which assets are showing potential trade opportunities.
Volatility Approximation – Represents the asset’s historical price fluctuations. Higher volatility suggests greater price swings, which can impact risk management and position sizing.
Liquidity Estimate – Reflects the asset’s market liquidity, often based on trading volume and price activity. More liquid assets tend to have lower transaction costs and reduced slippage, making them more favorable for active strategies.
Risk-Adjusted Return Value – Measures the asset’s returns relative to its risk level. This helps in determining whether an asset is generating efficient returns for the level of volatility it experiences, which is useful when making allocation decisions.
2. Strategy Allocation Table Position
Displays how your selected diversification method converts each asset into an allocation percentage. It also shows how much capital is being invested per asset, the cumulative return, standard performance metrics (for example, Sharpe ratio), and the separate HODL return percentage.
Symbol – Displays the asset being analyzed, ensuring clarity in allocation distribution.
Allocation Percentage – Represents the proportion of total capital assigned to each asset. This value is determined by the selected diversification method and helps traders understand how funds are distributed within the portfolio.
Investment Amount – Converts the allocation percentage into a dollar value based on the total portfolio size. This shows the exact amount being invested in each asset.
Cumulative Return – Tracks the total return of each asset over time, reflecting how well it has performed since the strategy began.
Sharpe Ratio – Evaluates the asset’s return in relation to its risk by comparing excess returns to volatility. A higher Sharpe ratio suggests a more favorable risk-adjusted performance.
Sortino Ratio – Similar to the Sharpe ratio, but focuses only on downside risk, making it more relevant for traders who prioritize minimizing losses.
Omega Ratio – Compares the probability of achieving gains versus losses, helping to assess whether an asset provides an attractive risk-reward balance.
Maximum Drawdown – Measures the largest percentage decline from an asset’s peak value to its lowest point. This metric helps traders understand the worst-case loss scenario.
HODL Return Percentage – Displays the hypothetical return if the asset had been bought and held instead of traded actively, offering a direct comparison between passive accumulation and the active strategy.
3. Profit Table
If the Profit Table is activated, it provides a summary of the actual dollar-based gains or losses for each asset and calculates the overall profit of the system. This table includes separate columns for profit excluding HODL and the combined total when HODL gains are included. As seen in the image below, this allows users to compare the performance of the active strategy against a passive buy-and-hold approach. The HODL profit percentage is derived from the Portfolio Value input, ensuring a clear comparison of accumulated returns.
4. Best Performing Asset Table
Focuses on the single highest-returning or highest-profit asset at that moment. It highlights the symbol, the asset’s cumulative returns, risk metrics, and other relevant stats. This helps identify which asset is currently outperforming the rest.
5. Most Profitable Asset
A simpler table that underscores the asset producing the highest absolute dollar profit across the portfolio.
------------------------------------------------------------------------
Multi Asset Selection
You can include up to ten different assets (such as BTCUSDT, ETHUSDT, ADAUSDT, and so on) in this script. Each asset has two inputs: one to enable or disable its inclusion, and another to select its trading pair symbol. Once you enable an asset, the script requests the relevant market data from TradingView.
------------------------------------------------------------------------
Uniqness and Features
1. Multiple Data Fetches
Each asset is pulled from the chart’s timeframe, along with various metrics such as RSI, volatility approximations, and trend indicators.
2. Various Risk and Performance Metrics
The script internally keeps track of different measures, like Sharpe ratio (a measure of average return adjusted for risk), Sortino ratio (which focuses on downside volatility), Omega ratio, and maximum drawdown. These metrics feed into the strategy allocation table, helping you quickly assess the risk-and-return profile of each asset.
3. Real-Time Tables
Instead of having to set up complex spreadsheets or external dashboards, the script updates all tables on every new bar. The color schemes in these tables are designed to draw attention to bullish or bearish signals, positive or negative returns, and so forth.
4. HODL Comparison
You can visually compare the active strategy’s results to a separate continuous buy-on-dips accumulation strategy. This allows for insight into whether your dynamic approach truly beats a simpler, more patient method.
5. Locking Allocations
The Use Fixed Allocation input is convenient for those who want to see how holding a fixed distribution of capital performs over time. It helps in distinguishing between constant rebalancing vs a fixed, set-and-forget style.
------------------------------------------------------------------------
How to use
1. Add the Script to Your Chart
Once added, open the settings panel to configure your asset list, choose a trading system, and select the diversification approach.
2. Select Assets
Pick up to ten symbols to monitor. Disable any you do not want included. Each included asset is then handled for signals, diversification, and performance metrics.
3. Choose Trading System
Decide if you prefer RSI-based signals, a fair-value approach, or a percentile-based method, among others. The script will then flag assets as bullish, bearish, or neutral according to that selection.
4. Pick a Diversification Method
For example, you might choose Trend-Following Indicators if you believe momentum stocks or cryptocurrencies will continue their trends. Or you could use the Omega Ratio approach if you want to reward assets that have had a favorable upside probability.
5. Set Portfolio Value and HODL Parameters
Enter how much capital you want to allocate in total (for the dynamic strategy) and adjust HODL buy quantities and thresholds as desired. (HODL Profit % is calculated from the Portfolio Value)
6. Inspect the Tables
On the chart, the script can display multiple tables showing your allocations, returns, risk metrics, and which assets are leading or lagging. Monitor these to make decisions about capital distribution or see how the strategy evolves.
------------------------------------------------------------------------
Additional Remarks
This script aims to simplify multi-asset portfolio management in a single tool. It emphasizes user-friendliness by color-coding the data in tables, so you do not need extra spreadsheets. The script is also flexible in letting you lock allocations or compare dynamic updates.
Always remember that no script can guarantee profitable outcomes. Real markets involve unpredictability, and real trading includes fees, slippage, and liquidity constraints not fully accounted for here. The script uses real-time and historical data for demonstration and educational purposes, providing a testing environment for various systematic strategies.
Performance Considerations
Due to the complexity of this script, users may experience longer loading times, especially when handling multiple assets or using advanced allocation methods. In some cases, calculations may time out if too many settings are adjusted simultaneously. If this occurs, removing and reapplying the indicator to the chart can help reset the process. Additionally, it is recommended to configure inputs gradually instead of adjusting all parameters at once, as excessive changes can extend the script’s loading duration beyond TradingView’s processing limits.
------------------------------------------------------------------------
Originality
This script stands out by integrating multiple asset management techniques within a single indicator, eliminating the need for multiple scripts or external portfolio tools. Unlike traditional single-asset strategies, it simultaneously evaluates multiple assets, applies systematic allocation logic, and tracks risk-adjusted performance in real time. The script is designed to function within TradingView’s script limitations while still allowing for complex portfolio simulations, making it an efficient tool for traders managing diverse holdings. Additionally, its combination of systematic trading signals with allocation-based diversification provides a structured approach to balancing exposure across different market conditions. The dynamic interplay between adaptive trading strategies and passive accumulation further differentiates it from conventional strategy indicators that focus solely on directional signals without considering capital allocation.
Conclusion
Uptrick: Portfolio Allocation Diversification pulls multiple assets into one efficient workflow, where each asset’s signal, volatility, and performance is measured, then assigned a share of capital according to your selected diversification method. The script accommodates both dynamic rebalancing and a locked allocation style, plus an ongoing HODL simulation for passive accumulation comparison. It neatly visualizes the entire process through on-chart tables that are updated every bar.
Traders and investors looking for ways to manage multiple assets under one unified framework can explore the different modules within this script to find what suits their style. Users can quickly switch among trading systems, vary the allocation approach, or review side-by-side performance metrics to see which method aligns best with their risk tolerance and market perspective.
BRT Signals Buy / Sell v2Title: BRT Signals Buy/Sell v2
Description:
The BRT Signals Buy/Sell v2 script is an innovative and original trading indicator designed to generate precise buy and sell signals by uniquely combining several advanced technical analysis tools. This script introduces new methodologies not found in existing public scripts, offering traders enhanced accuracy and customization.
Key Original Features:
Proprietary Mean Reversion Channel (MRC) Oscillator:
Unlike traditional oscillators, our MRC oscillator is developed using a customized SuperSmoother function, transforming the mean reversion concept into a dynamic oscillator ranging from 0 to 100.
This unique approach allows for more responsive detection of overbought and oversold conditions, setting it apart from standard oscillators.
Advanced Moving Average Options with Jurik Moving Average (JMA):
Incorporates the Jurik Moving Average (JMA), an advanced MA that offers low lag and high smoothness, which is rarely included in public scripts due to its complexity.
Provides multiple MA types (EMA, SMA, RMA, VWMA, WMA, Wilders MA, JMA) for unparalleled customization, enabling traders to fine-tune the indicator to their specific strategies.
Enhanced ADX Trend Strength Filter:
Integrates a custom implementation of the Average Directional Index (ADX) with proprietary modifications to measure trend strength more accurately.
Our script's ADX filter reduces lag and improves the detection of strong trends, a feature not commonly available in other indicators.
Dual Signal Sensitivity Filters:
Introduces two types of signal sensitivity filters (Signal Sensitivity Type 1 and Type 2) that can be independently enabled or disabled.
This dual-filter system is a novel feature that allows for refined control over signal generation, enhancing the script's adaptability.
Sophisticated Labeling and Alert System:
Features a customizable labeling system with various styles and sizes, providing clear and immediate visual cues on the chart.
Includes meticulously configured alert conditions that work seamlessly with the script's unique logic, ensuring timely notifications.
How It Works:
Buy Signal:
Generated when the proprietary MRC oscillator value increases compared to its previous value, indicating upward momentum detected by our unique algorithm.
Price is above the selected moving average (if the EMA filter is enabled), confirming a bullish trend with enhanced precision due to the advanced MA options.
ADX conditions are met using our improved calculation method, ensuring signals occur only during strong uptrends.
Sell Signal:
Triggered when the MRC oscillator value decreases compared to its previous value, signaling downward momentum identified by our custom oscillator.
Price is below the selected moving average (if the EMA filter is enabled), confirming a bearish trend with greater accuracy.
ADX conditions are met, indicating strong downtrends, thanks to our proprietary enhancements to the ADX indicator.
Original Concepts and Calculations:
Customized SuperSmoother Filter: Our version of the SuperSmoother filter is tailored to work specifically with the MRC oscillator, providing smoother and more responsive signals than standard implementations.
Proprietary ADX Enhancements: We have modified the traditional ADX formula to better capture trend strength and direction, reducing lag and improving reliability in various market conditions.
Integration of Advanced Indicators: The script uniquely combines advanced indicators like JMA and our custom MRC oscillator, offering functionalities not found in other public scripts.
Usage Instructions:
Parameter Configuration:
Lookback Period: Adjusts the sensitivity of the Mean Reversion Channel to suit different market conditions.
Timeframe Selection: Analyze different timeframes independent of the chart's timeframe for multi-timeframe analysis.
MA Length and Type: Choose from various moving averages, including the advanced JMA, to align with your trading preferences.
Signal Sensitivity Filters: Enable or disable the EMA and ADX filters to refine signal accuracy based on your strategy.
Visual Aids and Alerts:
Customize label styles and sizes for optimal visualization on the chart.
Set up alerts using the built-in alert conditions to receive real-time notifications aligned with the script's unique logic.
Benefits of Originality:
Enhanced Signal Accuracy: The unique combination of advanced indicators and proprietary calculations reduces false signals, improving the quality of trading decisions.
High Adaptability: The script's extensive customization options allow it to be adapted to various assets, timeframes, and trading styles, making it suitable for a wide range of traders.
Unique Analytical Approach: By introducing new methodologies and integrating advanced technical tools in a novel way, this script provides traders with insights not available in other indicators.
Disclaimer:
This indicator is a unique tool developed to assist traders in making informed decisions. It should be used in conjunction with other analysis methods and does not guarantee profitable results. Always practice proper risk management and due diligence.
Trend WaveHello Traders!
You know, I can sill remember the first time I started tinkering with Pinescript. As I had no prior programming experience, I learned by experimenting with other open-source scripts on TradingViews Marketplace. Tearing apart and combining interesting scripts to see what the output would be. @ChrisMoody was a huge source of inspiration for learning, and I wanted to thank him, as well as @TheLark for the concept behind this script.
The Trend Wave is based on @ChrisMoody's PPO-PercentileRank-Mkt-Tops-Bottoms , which also happens to be based on @TheLark's TheLark-Laguerre-PPO/ .
Within my experimentation, I found that if I isolate the ppoT & ppoB variables and plot them calculated from extremely small decimals, you can get an extremely fast reacting, mirroring trend detector.
Within the script, you have the ability to plot the background colors based on trend to make it easier to see where crossovers occured, as well as a Mirror Input to view the mirrored version of the script.
-@DayTradingOil
™TradeChartist Fibonacci Plotter™TradeChartist Fibonacci Plotter is a free and easy to use script to plot Fibonacci levels, 20 EMA (20 period Exponential Moving Average) and Pivot Highs/Lows on any time frame chart on any assets like Stocks, Forex, Commodities, Cryptocurrencies etc.
Fibonacci Levels can be plotted using the following options from settings.
1. Lookback type - Candles
Calculates the High and Low price of the user input number of Candles back (100 default) and plots Fibonacci Levels based on the calculated High and Low for the number of candles in the past from the current candle
2. Lookback type - Days
Calculates the High and Low price of the user input number of Days back (100 default) and plots Fibonacci Levels based on the calculated High and Low for the number of days in the past from the day of the current bar. The levels stay intact on any time frame as long as no new Highs or Lows are formed.
3. Manual Price Input
Plots Fibonacci Levels based on the user specified High and Low Price in the settings input screen. The levels stay intact on any time frame irrespective of new Highs or Lows being formed. Using this option and activating higher Fibonacci Levels like 1.272, 1.414 and 1.618 will enable the trader to keep the Levels intact and set alerts based on static higher levels for trade execution when price crosses beyond 100% retracement. On the other two lookback types, higher levels when activated will move dynamically based on new highs or lows being formed and price will never go beyond 100% level.
Example of Manual Price Input for GBP-USD on 1hr chart with higher levels is shown below:
Also the levels can be reversed by checking "Reverse Fibonacci Levels" from settings (Off by Default)
In addition to the Fibonacci plot, 20 period EMA (On by Default) and Pivot Highs/Lows (On by Default) are coded into the script as optional extras as both of these indicators will help make an informed decision in making trade decisions using Fibonacci Levels.
This is a free to use indicator. Give a thumbs up or leave a comment if you like the script
Check my 'Scripts' page to see other published scripts. Get in touch with me if you would like access to my invite-only scripts for a trial before deciding on a paid access for a period of your choice. Monthly, Quarterly, Half-Yearly and 1 Year access available on invite-only scripts along with 1hr Team Viewer intro session.
Precision Entry Signals (RSI + MA12 Logic)Description:
This script provides precise entry signals based on a clean confluence of MA12 breakouts and RSI momentum, filtered by a VWMA (Volume-Weighted Moving Average) of the RSI.
-----------------------------------------------------------------------------------------------------------------
🔹 Long entry conditions:
- Candle opens below the 12-period MA and closes above it
- RSI crosses above its VWMA
- Previous candle is bearish (additional confirmation)
🔹 Short entry conditions:
- Candle opens above the 12-period MA and closes below it
- RSI crosses below its VWMA
- Previous candle is bullish
----------------------------------------------------------------------------------------------------------------
Once a signal is confirmed, the script automatically draws:
Entry line (at close price)
Stop Loss line (just below recent lows for long, or above highs for short)
Take Profit 1 (1R)
Take Profit 2 (2R)
Labels are attached to the lines for clarity: ENTRY, SL, TP1, and TP2.
⚠️ Note: This tool only provides entry signals and visual risk/reward guidance. It does not manage exits dynamically. Manual trade management is recommended.
This script is intended for active intraday traders, especially on lower timeframes like 3-minute, 5-minute or 15-minute charts.
---------------------------------------------------------------------------------------------------------------
🔧 Recommended companion indicator:
For better confirmation and visual tracking of the RSI/VWMA cross logic, it is strongly recommended to also use the companion script:
🔹 Relative Strength Index (with MA based cross signals)
→ Shows RSI and its moving average visually, with triangle plots on every valid cross.
→ Matches exactly the RSI/VWMA behavior used in this entry signal script.
📌 Important:
After adding the RSI script to your chart, make sure to set:
RSI Length = 14
MA Type = VWMA
MA Length = 20
This ensures it visually matches the logic used by the entry signal script.
Both indicators are fully open source and meant to be used together — especially when trading manually.
Bitcoin Macro Trend Map [Ox_kali]
## Introduction
__________________________________________________________________________________
The “Bitcoin Macro Trend Map” script is designed to provide a comprehensive analysis of Bitcoin’s macroeconomic trends. By leveraging a unique combination of Bitcoin-specific macroeconomic indicators, this script helps traders identify potential market peaks and troughs with greater accuracy. It synthesizes data from multiple sources to offer a probabilistic view of market excesses, whether overbought or oversold conditions.
This script offers significant value for the following reasons:
1. Holistic Market Analysis : It integrates a diverse set of indicators that cover various aspects of the Bitcoin market, from investor sentiment and market liquidity to mining profitability and network health. This multi-faceted approach provides a more complete picture of the market than relying on a single indicator.
2. Customization and Flexibility : Users can customize the script to suit their specific trading strategies and preferences. The script offers configurable parameters for each indicator, allowing traders to adjust settings based on their analysis needs.
3. Visual Clarity : The script plots all indicators on a single chart with clear visual cues. This includes color-coded indicators and background changes based on market conditions, making it easy for traders to quickly interpret complex data.
4. Proven Indicators : The script utilizes well-established indicators like the EMA, NUPL, PUELL Multiple, and Hash Ribbons, which are widely recognized in the trading community for their effectiveness in predicting market movements.
5. A New Comprehensive Indicator : By integrating background color changes based on the aggregate signals of various indicators, this script essentially creates a new, comprehensive indicator tailored specifically for Bitcoin. This visual representation provides an immediate overview of market conditions, enhancing the ability to spot potential market reversals.
Optimal for use on timeframes ranging from 1 day to 1 week , the “Bitcoin Macro Trend Map” provides traders with actionable insights, enhancing their ability to make informed decisions in the highly volatile Bitcoin market. By combining these indicators, the script delivers a robust tool for identifying market extremes and potential reversal points.
## Key Indicators
__________________________________________________________________________________
Macroeconomic Data: The script combines several relevant macroeconomic indicators for Bitcoin, such as the 10-month EMA, M2 money supply, CVDD, Pi Cycle, NUPL, PUELL, MRVR Z-Scores, and Hash Ribbons (Full description bellow).
Open Source Sources: Most of the scripts used are sourced from open-source projects that I have modified to meet the specific needs of this script.
Recommended Timeframes: For optimal performance, it is recommended to use this script on timeframes ranging from 1 day to 1 week.
Objective: The primary goal is to provide a probabilistic solution to identify market excesses, whether overbought or oversold points.
## Originality and Purpose
__________________________________________________________________________________
This script stands out by integrating multiple macroeconomic indicators into a single comprehensive tool. Each indicator is carefully selected and customized to provide insights into different aspects of the Bitcoin market. By combining these indicators, the script offers a holistic view of market conditions, helping traders identify potential tops and bottoms with greater accuracy. This is the first version of the script, and additional macroeconomic indicators will be added in the future based on user feedback and other inputs.
## How It Works
__________________________________________________________________________________
The script works by plotting each macroeconomic indicator on a single chart, allowing users to visualize and interpret the data easily. Here’s a detailed look at how each indicator contributes to the analysis:
EMA 10 Monthly: Uses an exponential moving average over 10 monthly periods to signal bullish and bearish trends. This indicator helps identify long-term trends in the Bitcoin market by smoothing out price fluctuations to reveal the underlying trend direction.Moving Averages w/ 18 day/week/month.
Credit to @ryanman0
M2 Money Supply: Analyzes the evolution of global money supply, indicating market liquidity conditions. This indicator tracks the changes in the total amount of money available in the economy, which can impact Bitcoin’s value as a hedge against inflation or economic instability.
Credit to @dylanleclair
CVDD (Cumulative Value Days Destroyed): An indicator based on the cumulative value of days destroyed, useful for identifying market turning points. This metric helps assess the Bitcoin market’s health by evaluating the age and value of coins that are moved, indicating potential shifts in market sentiment.
Credit to @Da_Prof
Pi Cycle: Uses simple and exponential moving averages to detect potential sell points. This indicator aims to identify cyclical peaks in Bitcoin’s price, providing signals for potential market tops.
Credit to @NoCreditsLeft
NUPL (Net Unrealized Profit/Loss): Measures investors’ unrealized profit or loss to signal extreme market levels. This indicator shows the net profit or loss of Bitcoin holders as a percentage of the market cap, helping to identify periods of significant market optimism or pessimism.
Credit to @Da_Prof
PUELL Multiple: Assesses mining profitability relative to historical averages to indicate buying or selling opportunities. This indicator compares the daily issuance value of Bitcoin to its yearly average, providing insights into when the market is overbought or oversold based on miner behavior.
Credit to @Da_Prof
MRVR Z-Scores: Compares market value to realized value to identify overbought or oversold conditions. This metric helps gauge the overall market sentiment by comparing Bitcoin’s market value to its realized value, identifying potential reversal points.
Credit to @Pinnacle_Investor
Hash Ribbons: Uses hash rate variations to signal buying opportunities based on miner capitulation and recovery. This indicator tracks the health of the Bitcoin network by analyzing hash rate trends, helping to identify periods of miner capitulation and subsequent recoveries as potential buying opportunities.
Credit to @ROBO_Trading
## Indicator Visualization and Interpretation
__________________________________________________________________________________
For each horizontal line representing an indicator, a legend is displayed on the right side of the chart. If the conditions are positive for an indicator, it will turn green, indicating the end of a bearish trend. Conversely, if the conditions are negative, the indicator will turn red, signaling the end of a bullish trend.
The background color of the chart changes based on the average of green or red indicators. This parameter is configurable, allowing adjustment of the threshold at which the background color changes, providing a clear visual indication of overall market conditions.
## Script Parameters
__________________________________________________________________________________
The script includes several configurable parameters to customize the display and behavior of the indicators:
Color Style:
Normal: Default colors.
Modern: Modern color style.
Monochrome: Monochrome style.
User: User-customized colors.
Custom color settings for up trends (Up Trend Color), down trends (Down Trend Color), and NaN (NaN Color)
Background Color Thresholds:
Thresholds: Settings to define the thresholds for background color change.
Low/High Red Threshold: Low and high thresholds for bearish trends.
Low/High Green Threshold: Low and high thresholds for bullish trends.
Indicator Display:
Options to show or hide specific indicators such as EMA 10 Monthly, CVDD, Pi Cycle, M2 Money, NUPL, PUELL, MRVR Z-Scores, and Hash Ribbons.
Specific Indicator Settings:
EMA 10 Monthly: Options to customize the period for the exponential moving average calculation.
M2 Money: Aggregation of global money supply data.
CVDD: Adjustments for value normalization.
Pi Cycle: Settings for simple and exponential moving averages.
NUPL: Thresholds for unrealized profit/loss values.
PUELL: Adjustments for mining profitability multiples.
MRVR Z-Scores: Settings for overbought/oversold values.
Hash Ribbons: Options for hash rate moving averages and capitulation/recovery signals.
## Conclusion
__________________________________________________________________________________
The “Bitcoin Macro Trend Map” by Ox_kali is a tool designed to analyze the Bitcoin market. By combining several macroeconomic indicators, this script helps identify market peaks and troughs. It is recommended to use it on timeframes from 1 day to 1 week for optimal trend analysis. The scripts used are sourced from open-source projects, modified to suit the specific needs of this analysis.
## Notes
__________________________________________________________________________________
This is the first version of the script and it is still in development. More indicators will likely be added in the future. Feedback and comments are welcome to improve this tool.
## Disclaimer:
__________________________________________________________________________________
Please note that the Open Interest liquidation map is not a guarantee of future market performance and should be used in conjunction with proper risk management. Always ensure that you have a thorough understanding of the indicator’s methodology and its limitations before making any investment decisions. Additionally, past performance is not indicative of future results.