TASC 2025.02 Autocorrelation Indicator█ OVERVIEW
This script implements the Autocorrelation Indicator introduced by John Ehlers in the "Drunkard's Walk: Theory And Measurement By Autocorrelation" article from the February 2025 edition of TASC's Traders' Tips . The indicator calculates the autocorrelation of a price series across several lags to construct a periodogram , which traders can use to identify market cycles, trends, and potential reversal patterns.
█ CONCEPTS
Drunkard's walk
A drunkard's walk , formally known as a random walk , is a type of stochastic process that models the evolution of a system or variable through successive random steps.
In his article, John Ehlers relates this model to market data. He discusses two first- and second-order partial differential equations, modified for discrete (non-continuous) data, that can represent solutions to the discrete random walk problem: the diffusion equation and the wave equation. According to Ehlers, market data takes on a mixture of two "modes" described by these equations. He theorizes that when "diffusion mode" is dominant, trading success is almost a matter of luck, and when "wave mode" is dominant, indicators may have improved performance.
Pink spectrum
John Ehlers explains that many recent academic studies affirm that market data has a pink spectrum , meaning the power spectral density of the data is proportional to the wavelengths it contains, like pink noise . A random walk with a pink spectrum suggests that the states of the random variable are correlated and not independent. In other words, the random variable exhibits long-range dependence with respect to previous states.
Autocorrelation function (ACF)
Autocorrelation measures the correlation of a time series with a delayed copy, or lag , of itself. The autocorrelation function (ACF) is a method that evaluates autocorrelation across a range of lags , which can help to identify patterns, trends, and cycles in stochastic market data. Analysts often use ACF to detect and characterize long-range dependence in a time series.
The Autocorrelation Indicator evaluates the ACF of market prices over a fixed range of lags, expressing the results as a color-coded heatmap representing a dynamic periodogram. Ehlers suggests the information from the periodogram can help traders identify different market behaviors, including:
Cycles : Distinguishable as repeated patterns in the periodogram.
Reversals : Indicated by sharp vertical changes in the periodogram when the indicator uses a short data length .
Trends : Indicated by increasing correlation across lags, starting with the shortest, over time.
█ USAGE
This script calculates the Autocorrelation Indicator on an input "Source" series, smoothed by Ehlers' UltimateSmoother filter, and plots several color-coded lines to represent the periodogram's information. Each line corresponds to an analyzed lag, with the shortest lag's line at the bottom of the pane. Green hues in the line indicate a positive correlation for the lag, red hues indicate a negative correlation (anticorrelation), and orange or yellow hues mean the correlation is near zero.
Because Pine has a limit on the number of plots for a single indicator, this script divides the periodogram display into three distinct ranges that cover different lags. To see the full periodogram, add three instances of this script to the chart and set the "Lag range" input for each to a different value, as demonstrated in the chart above.
With a modest autocorrelation length, such as 20 on a "1D" chart, traders can identify seasonal patterns in the price series, which can help to pinpoint cycles and moderate trends. For instance, on the daily ES1! chart above, the indicator shows repetitive, similar patterns through fall 2023 and winter 2023-2024. The green "triangular" shape rising from the zero lag baseline over different time ranges corresponds to seasonal trends in the data.
To identify turning points in the price series, Ehlers recommends using a short autocorrelation length, such as 2. With this length, users can observe sharp, sudden shifts along the vertical axis, which suggest potential turning points from upward to downward or vice versa.
Siklus
Relative Risk MetricOVERVIEW
The Relative Risk Metric is designed to provide a relative measure of an asset's price, within a specified range, over a log scale.
PURPOSE
Relative Position Assessment: Visualizes where the current price stands within a user-defined range, adjusted for log scale.
Logarithmic Transformation: Utilizes the natural log to account for a log scale of prices, offering a more accurate representation of relative positions.
Calculation: The indicator calculates a normalized value via the function Relative Price = / log(UpperBound) − log(LowerBound) . The result is a value between 0 and 1, where 0 corresponds to the lower bound and 1 corresponds to the upper bound on a log scale.
VISUALIZATION
The indicator plots three series:
Risk Metric - a plot of the risk metric value that’s computed from an asset's relative price so that it lies within a logarithmic range between 0.0 & 1.0.
Smoothed Risk Metric - a plot of the risk metric that’s been smoothed.
Entry/Exit - a scatter plot for identified entry and exit. Values are expressed as percent and are coded as red being exit and green being entity. E.g., a red dot at 0.02 implies exit 2% of the held asset. A green dot at 0.01 implies use 1% of a designated capital reserve.
USAGE
Risk Metric
The risk metric transformation function has several parameters. These control aspects such as decay, sensitivity, bounds and time offset.
Decay - Acts as an exponent multiplier and controls how quickly dynamic bounds change as a function of the bar_index.
Time Offset - provides a centering effect of the exponential transformation relative to the current bar_index.
Sensitivity - controls how sensitive to time the dynamic bound adjustments should be.
Baseline control - Serves as an additive offset for dynamic bounds computation which ensures that bounds never become too small or negative.
UpperBound - provides headroom to accomodate growth an assets price from the baseline. For example, an upperbound of 3.5 accommodates a 3.5x growth from the baseline value (e.g., $100 -> $350).
LowerBound - provides log scale compression such that the overall metric provides meaningful insights for prices well below the average whilst avoiding extreme scaling. A lowerbound of 0.25 corresponds to a price that is approx one quarter of a normalised baseline in a log context.
Weighted Entry/Exit
This feature provides a weighted system for identifying DCA entry and exit. This weighting mechanism adjusts the metric's interpretation to highlight conditions based on dynamic thresholds and user-defined parameters to identify high-probability zones for entry/exit actions and provide risk-adjusted insights.
Weighting Parameters
The weighting function supports fine-tuning of the computed weighted entry/exit values
Base: determines the foundational multiplier for weighting the entry/exit value. A higher base amplifies the weighting effect, making the weighted values more pronounced. It acts as a scaling factor to control the overall magnitude of the weighting.
Exponent: adjusts the curve of the weighting function. Higher exponent values increase sensitivity, emphasizing differences between risk metric values near the entry or exit thresholds. This creates a steeper gradient for the computed entry/exit value making it more responsive to subtle shifts in risk levels.
Cut Off: specifies the maximum percentage (expressed as a fraction of 1.0) that the weighted entry/exit value can reach. This cap ensures the metric remains within a meaningful range and avoids skewing
Exit condition: Defines a threshold for exit. When the risk metric is below the exit threshold (but above the entry threshold) then entry/exit is neutral.
Entry condition: Defines a threshold for entry. When the risk metric is above the entry threshold (but below the exit threshold) then entry/exit is neutral.
Weighting Behaviour
For entry conditions - value is more heavily weighted as the metric approaches the entry threshold, emphasizing lower risk levels.
For exit conditions - value is more heavily weighted as the metric nears the exit threshold, emphasizing increased risk levels.
USE-CASES
Identifying potential overbought or oversold conditions within the specified logarithmic range.
Assisting in assessing how the current price compares to historical price levels on a logarithmic scale.
Guiding decision-making processes by providing insights into the relative positioning of prices within a log context
CONSIDERATIONS
Validation: It's recommended that backtesting over historical data be done before acting on any identified entry/exit values.
User Discretion: This indicator focus on price risk. Consider other risk factors and general market conditions as well.
Anjink V3 Purpose:
Identify Market Swings:
Detects significant highs and lows in the price movement using parameters like Depth, Deviation, and Backstep.
Plots trendlines connecting these swing points.
Labels these swing points with S (Sell) for swing highs and B (Buy) for swing lows, indicating potential trading opportunities.
Trend Analysis:
Plots three key moving averages (MA 20, MA 50, MA 200) for trend-following strategies.
Helps traders understand the short-term, mid-term, and long-term trends.
Volatility and Risk Metrics:
Uses ATR (Average True Range) to measure market volatility.
Displays the ATR percentage (volatility as a percentage of the price) and a calculated stop-loss percentage (1.5x ATR) for risk management.
Trend Visualization:
Dynamically updates swing levels and trendlines as the market evolves.
Highlights the trend direction with a background color:
Red: Downtrend (Bearish).
Green: Uptrend (Bullish).
MCDX_SignalThe MCDX indicator (Market Cycle Dynamic Index) is a technical indicator developed by Trung Pham. It is a tool used for analyzing the stock market, often utilized to identify big money flow (Big Money) and evaluate the strength of individual stocks or the overall market.
MCDX is known for its distinctive histogram chart with red and green bars. The red bars typically represent the inflow of big money, while the green bars indicate small money flow or outflows.
Volumen y TendenciasJAMESIndicador: VolumenTendencia Pro**
Descripción general:
El indicador JAMESVolumenTendencia Pro es una herramienta avanzada diseñada para ayudar a los traders a identificar puntos clave de entrada y salida en el mercado mediante el análisis combinado de volumen, tendencias y volatilidad. Utiliza una serie de indicadores técnicos, como el **Volumen Relativo (RVOL)**, el *MACD**, el *RSI*, y el *Oscilador Volumen-ATR*, para proporcionar señales claras que pueden ayudar a los traders a tomar decisiones informadas.
---
Componentes del Indicador:
1. Volumen Relativo (RVOL):
- Calcula la relación entre el volumen actual y el volumen promedio durante un período específico.
- Un valor alto de RVOL (mayor que 1.5) indica que el volumen está significativamente por encima de su promedio histórico, lo que podría ser una señal de que algo importante está ocurriendo en el mercado.
- Se utiliza para identificar cuando el mercado está experimentando un aumento anormal en la actividad.
2. MACD (Moving Average Convergence Divergence):
- El MACD es un indicador de momento que mide la diferencia entre dos medias móviles exponenciales: una rápida (12) y una lenta (26).
- La línea de señal del MACD se calcula como una media exponencial de la línea MACD (con un período de 9).
- El histograma del MACD representa la diferencia entre la línea MACD y la línea de señal, y ayuda a identificar cambios en la tendencia.
- Un histograma positivo sugiere una tendencia alcista, mientras que un histograma negativo indica una tendencia bajista.
3. RSI (Relative Strength Index):
- El RSI mide la magnitud de los movimientos recientes de los precios para determinar las condiciones de sobrecompra o sobreventa del activo.
- Un valor de RSI superior a 70 indica que el activo podría estar sobrecomprado (potencial para una reversión bajista).
- Un valor de RSI inferior a 30 sugiere que el activo podría estar sobrevendido (potencial para una reversión alcista).
4. Oscilador Volumen-ATR:
- Este oscilador mide la relación entre el volumen y el ATR (Average True Range), lo que proporciona una medida de la volatilidad en relación con el volumen.
- Ayuda a identificar cuándo el volumen aumenta en relación con la volatilidad del mercado.
---
Cómo Aprovechar el Indicador:
1. Señales de Compra:
- Condiciones:
- El *Volumen Relativo (RVOL)* es superior al umbral establecido (por ejemplo, 1.5), lo que indica un aumento significativo en el volumen.
- El *RSI* está por debajo de 30, lo que sugiere que el activo está sobrevendido y podría estar listo para una reversión alcista.
- El *histograma del MACD* es positivo, lo que indica que la tendencia es alcista.
- Interpretación:
- Cuando estas condiciones se cumplen, el indicador genera una señal de compra, que se marca con una etiqueta verde ("BUY") en el gráfico.
- También se cambia el color de fondo del gráfico a verde para resaltar que el mercado podría estar en una fase alcista.
2. Señales de Venta:
- Condiciones:
- El *Volumen Relativo (RVOL)* es superior al umbral, lo que indica un aumento significativo en el volumen.
- El *RSI* está por encima de 70, lo que sugiere que el activo está sobrecomprado y podría estar listo para una reversión bajista.
- El *histograma del MACD* es negativo, lo que indica que la tendencia es bajista.
- Interpretación:
- Cuando estas condiciones se cumplen, el indicador genera una señal de venta, que se marca con una etiqueta roja ("SELL") en el gráfico.
- También se cambia el color de fondo del gráfico a rojo para resaltar que el mercado podría estar en una fase bajista.
-Beneficios del Indicador:
- Análisis integral: Combina múltiples indicadores técnicos para ofrecer señales más confiables y completas.
- Visualización clara: El indicador cambia el color de fondo y utiliza etiquetas para resaltar las señales de compra y venta, facilitando la interpretación y acción rápida.
- Identificación de volumen anómalo: Ayuda a identificar momentos en los que el volumen está fuera de lo común, lo que podría indicar cambios importantes en el mercado.
- Fácil integración en la estrategia de trading: Puede ser utilizado tanto en mercados en tendencia como en rangos, y se adapta bien a diferentes estilos de trading.
---
Recomendaciones de Uso:
- Confirmación de señales: Las señales de compra o venta generadas por este indicador deben ser consideradas junto con otras confirmaciones técnicas o fundamentales para mejorar su efectividad.
- Control de riesgos: Aunque este indicador puede ayudar a identificar puntos clave de entrada y salida, siempre es recomendable utilizar herramientas de gestión de riesgos, como el *stop loss* y el *take profit*, para proteger tu capital.
---
Este indicador está diseñado para traders que buscan una herramienta avanzada para combinar volumen, tendencias y volatilidad en sus decisiones de trading. Con su capacidad para proporcionar señales visuales claras, *VolumenTendencia Pro* puede ser un complemento útil en tu análisis técnico.
QuantFarming Signals v6//@version=6
indicator("QuantFarming Signals", overlay = true, max_boxes_count = 500)
// INPUT
Resolution = input.timeframe("240", title = "Resolution")
BarWidth = input.int(4, title = "Bar Width", minval = 1)
RSIRegPeriod = input.int(1000, title = "RSI Regression Period")
RSIRegFactor = input.float(1.7, title = "RSI Regression Factor")
StopLossBufferPoints = input.float(5.0, title = "Stop Loss Buffer Points")
WebhookID = input.string("", title = "Webhook ID", group = "Setup")
WebhookToken = input.string("", title = "Webhook Token", group = "Setup")
Delay = input.timeframe("240", title = "Signal Delay", group = "Setup")
BuyMovingAveragePeriod = input.int(25, title = "Buy MA Period", inline = "Buy", group = "Moving Average Period & Angle")
SellMovingAveragePeriod = input.int(25, title = "Sell MA Period", inline = "Sell", group = "Moving Average Period & Angle")
BuyAngle = input.float(+0.01, title = "Buy MA Angle", inline = "Buy", group = "Moving Average Period & Angle")
SellAngle = input.float(-0.01, title = "Sell MA Angle", inline = "Sell", group = "Moving Average Period & Angle")
RSIMax = input.float(55, title = "RSI Max", group = "Relative Strength Index Regression")
RSIMin = input.float(50, title = "RSI Min", group = "Relative Strength Index Regression")
// KR INPUT
Timeframe = input.timeframe("5", title = "Timeframe", group = "Kernel Regression for Confirmation")
Size = input.int(100, title = "Size", minval = 1, group = "Kernel Regression for Confirmation")
Bandwidth = input.float(5.0, title = "Bandwidth Parameter", minval = 1, step = 0.125, group = "Kernel Regression for Confirmation")
R = input.float(1.0, title = "R Value", minval = 0.125, step = 0.125, group = "Kernel Regression for Confirmation")
// FIBONACCI RETRACEMENT INPUT
RetracementLookback = input.int(100, title = "Retracement Lookback", group = "Fibonacci Retracement")
// POINTS IN THE BOX
BoxPoints = input.bool(true, title = "Display Points", group = "Points In The Box")
BoxWidth = input.int(10, title = "Box Width", group = "Points In The Box")
BoxHeight = input.int(10, title = "Box Height", group = "Points In The Box")
// DIRECTION ===============================================
// OFFSET
Offset = timeframe.in_seconds(Resolution) >= timeframe.in_seconds(timeframe.period) ? timeframe.in_seconds(Resolution) / timeframe.in_seconds(timeframe.period) : 0
// TRENDLINE
BuyMovingAverage = request.security(syminfo.tickerid, Resolution, ta.sma(close, BuyMovingAveragePeriod))
SellMovingAverage = request.security(syminfo.tickerid, Resolution, ta.sma(close, SellMovingAveragePeriod))
// ANGLE OF ELEVATION AND DEPRESSION
BuyMovingAverageAngle = request.security(syminfo.tickerid, Resolution, (BuyMovingAverage / BuyMovingAverage - 1) * 100)
SellMovingAverageAngle = request.security(syminfo.tickerid, Resolution, (SellMovingAverage / SellMovingAverage - 1) * 100)
// DIRECTION
var Direction = int(0)
BuyDirection = BuyMovingAverage > BuyMovingAverage and BuyMovingAverageAngle > BuyAngle ? 1 : 0
SellDirection = SellMovingAverage < SellMovingAverage and SellMovingAverageAngle < -SellAngle ? -1 : 0
Direction := BuyDirection > BuyDirection ? 1 : (SellDirection < SellDirection ? -1 : Direction)
// DRAW ANGLE OF ELEVATION AND DEPRESSION
if Direction > Direction
line.new(bar_index, BuyMovingAverage, bar_index , BuyMovingAverage , xloc.bar_index, extend.none, color.white, line.style_solid, 2)
if Direction < Direction
line.new(bar_index, SellMovingAverage, bar_index , SellMovingAverage , xloc.bar_index, extend.none, color.yellow, line.style_solid, 2)
// DRAW TRENDLINE
plot(BuyMovingAverage, title = "Buy Moving Average", color = Direction > 0 ? color.aqua : color.fuchsia, offset = -Offset + 1)
plot(SellMovingAverage, title = "Sell Moving Average", color = Direction > 0 ? color.aqua : color.fuchsia, offset = -Offset + 1)
// DRAW DIRECTION
bgcolor(color = color.new(Direction > 0 ? color.teal : color.maroon, 90), title = "Direction", offset = -Offset + 1)
// REGRESSION ============================================
// RELATIVE STRENGTH INDEX
RSI = ta.rsi(close, 14)
// RELATIVE STRENGTH INDEX REGRESSION
RSIRegression = ta.linreg(RSI, RSIRegPeriod, 0)
// RELATIVE STRENGTH INDEX DEVIATION
RSIDeviation = ta.stdev(RSI, RSIRegPeriod) * RSIRegFactor
// RSI SIGNAL
RSISell = ta.crossunder(RSI, RSIRegression + RSIDeviation) and RSI > RSIMax
RSIBuy = ta.crossover(RSI, RSIRegression - RSIDeviation) and RSI < RSIMin
// KERNEL REGRESSION ==============================================================================
// KERNEL REGRESSION
KernelRegression() =>
CurrentWeight = 0.0
CumulativeWeight = 0.0
for Count = 0 to Size
Y = close
U = math.pow(Count, 2) / (math.pow(Bandwidth, 2) * R)
W = (U >= 1) ? 0 : (3. / 4) * (1 - math.pow(U, 2))
CurrentWeight := CurrentWeight + Y * W
CumulativeWeight := CumulativeWeight + W
CurrentWeight / CumulativeWeight
// REVERSAL CONFIRMATION
Regression = request.security(syminfo.tickerid, Timeframe, KernelRegression())
// SIGNAL
Sell = RSISell and Direction < 0 and Regression > Regression
Buy = RSIBuy and Direction > 0 and Regression < Regression
// DELAY
var Track = int(0)
Active = (time - Track) >= timeframe.in_seconds(Delay) * 1000
Track := Active and (Buy or Sell) ? time : Track
plotshape(Sell and Active, title = "Sell", style = shape.triangledown, color = color.fuchsia, location = location.abovebar, size = size.tiny)
plotshape(Buy and Active, title = "Buy", style = shape.triangleup, color = color.aqua, location = location.belowbar, size = size.tiny)
// LEVEL ==========================================================================
// LEVEL
Peak = ta.highest(RetracementLookback)
Trough = ta.lowest (RetracementLookback)
// DEVIATION
Deviation = Peak - Trough
// SIDE
Side = Buy and Active ? 1 : (Sell and Active ? -1 : 0)
// FIBONACCI RETRACEMENT ==========================================================================
// FIBONACCI RETRACEMENT
var TP1 = float(na)
var TP2 = float(na)
var Stop = float(na)
F0 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.000
F1 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.236
F2 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.382
F3 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.500
F4 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.618
F5 = (Side > 0 ? Trough : Peak) + Side * Deviation * 0.786
F6 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.000
F7 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.236
F8 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.382
F9 = (Side > 0 ? Trough : Peak) + Side * Deviation * 1.500
FX = (Side != 0 ? 1 : (Side != 0 ? 2 : (Side != 0 ? 3 : 0)))
if Side > 0 and FX == 0
TP1 := (close < F1 ? F2 : (close < F2 ? F3 : (close < F3 ? F4 : (close < F4 ? F5 : (close < F5 ? F6 : (close < F6 ? F7 : na))))))
TP2 := (close < F1 ? F3 : (close < F2 ? F4 : (close < F3 ? F5 : (close < F4 ? F6 : (close < F5 ? F7 : (close < F6 ? F8 : na))))))
Stop := close - (Deviation * 0.236 + StopLossBufferPoints)
if Side < 0 and FX == 0
TP1 := (close > F1 ? F2 : (close > F2 ? F3 : (close > F3 ? F4 : (close > F4 ? F5 : (close > F5 ? F6 : (close > F6 ? F7 : na))))))
TP2 := (close > F1 ? F3 : (close > F2 ? F4 : (close > F3 ? F5 : (close > F4 ? F6 : (close > F5 ? F7 : (close > F6 ? F8 : na))))))
Stop := close + (Deviation * 0.236 + StopLossBufferPoints)
// DRAW FIBONACCI RETRACEMENT
var OpenPosition = int(0), OpenPosition := FX > 0 ? OpenPosition + 1 : 0
var Line = float(na), Line := OpenPosition == 1 ? Stop : (OpenPosition == 2 ? TP2 : Line)
plot(Line, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 3 and OpenPosition > 1 ? color.lime : na))
plot(Stop, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 6 and OpenPosition > 0 ? color.fuchsia : na))
plot(TP1, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 6 and OpenPosition > 0 ? color.aqua : na))
plot(TP2, linewidth = 1, color = FX == 0 ? na : (OpenPosition < 6 and OpenPosition > 0 ? color.aqua : na))
// DRAW POINTS IN THE BOX
Box = array.new_box()
if Active and (Buy or Sell) and bar_index > 2 and BoxPoints
StopPoints = str.tostring(math.round(math.abs(close - Stop) / syminfo.mintick) * syminfo.mintick) + " pts"
TP1Points = str.tostring(math.round(math.abs(close - TP1) / syminfo.mintick) * syminfo.mintick) + " pts"
TP2Points = str.tostring(math.round(math.abs(close - TP2) / syminfo.mintick) * syminfo.mintick) + " pts"
array.push(Box, box.new(left = bar_index - 2, top = Stop + BoxHeight, right = bar_index + BoxWidth, bottom = Stop - BoxHeight, text = StopPoints, text_size = size.auto, text_halign = text.align_right, border_color = color.fuchsia, bgcolor = color.new(color.fuchsia, 80)))
array.push(Box, box.new(left = bar_index - 2, top = TP1 + BoxHeight, right = bar_index + BoxWidth, bottom = TP1 - BoxHeight, text = TP1Points, text_size = size.auto, text_halign = text.align_right, border_color = color.aqua, bgcolor = color.new(color.aqua, 80)))
array.push(Box, box.new(left = bar_index - 2, top = TP2 + BoxHeight, right = bar_index + BoxWidth, bottom = TP2 - BoxHeight, text = TP2Points, text_size = size.auto, text_halign = text.align_right, border_color = color.aqua, bgcolor = color.new(color.aqua, 80)))
// WEBHOOK
message = array.new_string()
array.push(message, "\"id\": \"" + WebhookID + "\"")
array.push(message, "\"token\": \"" + WebhookToken + "\"")
array.push(message, "\"ticker\": \"" + syminfo.ticker + "\"")
array.push(message, "\"action\": \"" + (Buy ? "BUY" : "SELL") + "\"")
array.push(message, "\"price\": \"" + str.tostring(close) + "\"")
array.push(message, "\"time\": \"" + str.tostring(time) + "\"")
if Active and (Buy or Sell)
alert(message = "{ " + array.join(message, ", ") + " }", freq = alert.freq_once_per_bar_close)
369 TPF369 Frequency using futures contracts.its using the 369 frequency lines to find the cycle for a buy or sell entry
Improved Exhaustion Signal backtestTry this on higher tiemframes and be amazed.
Insane profitability...
youre welcome
Four RSI hajianاین اندیکاتور توسط 4 اندیکاتور ار اس ای تحلیل را انجام داده و در نقاط اشبا برای شما سیگنال صادر میکند
VWAP Breakout and Pullback StrategyThis Pine Script implements the following setups:
Breakout Trades:
A long breakout trade occurs when:
The price is above VWAP.
RSI > 50.
Volume is higher than the average volume (indicating a volume spike).
A short breakout trade occurs when:
The price is below VWAP.
RSI < 50.
Volume is higher than the average volume.
Pullback Entries:
A long pullback trade occurs when:
The price crosses above VWAP.
RSI > 50.
Volume is lower than the average volume (indicating a pullback with low momentum).
A short pullback trade occurs when:
The price crosses below VWAP.
RSI < 50.
Volume is lower than the average volume.
Features:
Signals: Buy and sell signals are plotted on the chart with breakout or pullback labels.
Alerts: Alerts are configured for each type of signal, enabling automation or notifications.
You can copy and paste this code into TradingView's Pine Script editor to test and use it for real-time
Pi - Intraday High-Low PredictorCustomizable Inputs:
Users can adjust settings like table visibility, line styles, label sizes, and colors for high/low levels.
Flexibility in choosing table position and text size.
Predicted High/Low Levels:
Calculates small, regular, and large ranges for intraday high/low levels using the Pi multiplier on the opening range.
Dynamically plots these levels with customizable visuals.
Historical Range Support:
Optionally overlays historical predicted ranges on the chart.
Table for Summary:
Displays a table summarizing predicted values with dynamic placement.
Improved Exhaustion Signalextremely profitable indicator.
Tested in backtesting consistintly made 450k plus
Only works higher timeframes
Kaldıraçlı İşlem StratejisiKaldıraçlı İşlem Stratejisi Kaldıraçlı İşlem Stratejisi Kaldıraçlı İşlem Stratejisi
Kurtrillion Bitcoin Pi Cycle Top & Bottom IndicatorThe Pi-Cycle Top and Bottom Indicator is a popular technical analysis tool designed to identify Bitcoin’s major market cycle peaks (tops) and troughs (bottoms). It is called “Pi-Cycle” because one of its moving‐average ratios (350 / 111 ≈ 3.153) happens to be close to the number π (3.14159...). While no indicator can perfectly predict price movements, the Pi-Cycle models have historically shown uncanny timing around Bitcoin’s cyclical highs and lows.
Pi-Cycle Top Indicator
Key Components:
111-Day Moving Average (MA)
350-Day Moving Average (MA) × 2
How It Works:
Plot both the 111-day MA and (350-day MA × 2) on a Bitcoin price chart.
The indicator flashes a potential market cycle top signal when the 111-day MA crosses above the 350-day MA × 2.
Why “Pi”?
The ratio of 350 to 111 is roughly 3.153, close to the mathematical constant π (3.14159).
The original idea was that this near-π ratio appeared to coincide with market peaks in previous cycles.
Historical Performance:
The Pi-Cycle Top Indicator has historically called or come very close to calling several Bitcoin cycle tops:
April 2013 top
December 2013 top
December 2017 top
April 2021 top
It has sometimes signaled a top within a few days of the actual peak, though—as with any model—subsequent market conditions can deviate from historical patterns.
Pi-Cycle Bottom Indicator
Key Components (common version):
471-Day Moving Average (MA)
150-Day Moving Average (MA) (sometimes an EMA) multiplied by a constant factor (e.g., 0.745)
(Note: Variations exist. The constants and exact lengths can differ depending on who implements the model.)
How It Works:
Plot the 471-day MA and another moving average (often the 150-day MA or 150-day EMA) scaled by a specific factor (e.g., 0.745).
A potential bottom signal triggers when the scaled 150-day line crosses below (or above, depending on convention) the 471-day MA.
Historical Performance:
The Pi-Cycle Bottom Indicator has, in some form, identified or come close to several historical bear-market lows.
As with the Top Indicator, the Bottom Indicator is not perfect and can lag or lead actual bottom prices.
200 EMA Indicator (trend analyse)Helps in analysing the trend .
If the price is on the upper side of EMA it indicates the uptrend and if the price is on the lower side of the EMA it indicates the downtrend
Volume Surge Webhook AlertThis TradingView indicator, named "Volume Surge Webhook Alert," is designed to find significant increases in trading volume and send out alerts with key information. It works by looking back at the volume over a certain number of past candlesticks, which you can set using the "Lookback Period" input. The indicator calculates the average volume during this period. Then, it sets a threshold for what counts as a "volume surge." This threshold is a percentage increase over the average volume, and you can adjust this percentage using the "Volume Surge Threshold (%)" input.
When the current candlestick's volume is higher than this threshold, the indicator considers it a volume surge. To help you see this visually, the indicator plots three lines on a separate chart: the average volume (in blue), the current volume (in red), and the threshold volume (in gray circles).
If a volume surge happens, the indicator creates a webhook alert. This alert sends a message in a structured format (like a digital envelope) that contains the following information: the symbol of the stock or cryptocurrency, the timeframe of the chart you're looking at, the current volume, the average volume, the threshold volume, and a simple message saying a volume surge was detected. This alert is sent only once when the candlestick closes with a volume surge.
Additionally, when a volume surge is detected, a small red exclamation mark "!" will appear above that candlestick on the main price chart.
Essentially, this indicator helps traders spot times when trading volume is unusually high, which can sometimes be a sign of important price movements. You can customize how sensitive the indicator is by changing the "Lookback Period" and the "Volume Surge Threshold (%)". The webhook alerts allow you to be notified automatically when these surges occur, so you don't have to constantly watch the charts.
pivot points with ema by Ersoy BilgeSometimes it is very important to see the pivot points and EMA together. Because they can indicate resistance and turning points. I think it makes it very easy to see both of them together.