ForexRobootthis indicator trade on crypto and forex
trade on neo usdt winrate 100%
trade on btc usdt winrate 90%
trade on cardano usdt winrate 90%
trade on floki usdt winrate 90%
and very coin other
enjoyed
inst: Forexroboot
ما
forexroboot
Zyklen
forexroboot Hunter Premiumthis indicator trade on crypto and forex
trade on any time frame
enjoyed
inst: Forexroboot
ما
forexroboot
Daily Open Levels (Custom Pips)Daily Open Levels Indicator
Overview: The Daily Open Levels indicator is a simple but powerful tool designed for intraday traders who focus on the daily open price and pip-based levels for decision-making. This indicator helps you visualize key price levels based on the daily opening price, with configurable upper and lower levels calculated in pips. It is especially useful for tracking price movements relative to the previous day’s open and can help traders identify breakout zones, potential support/resistance, and key entry/exit points.
eatures:
Daily Open Price: The indicator automatically calculates and plots the daily open of the current trading day.
Upper and Lower Levels: Configurable upper and lower levels based on a user-defined pip interval. These levels can act as potential resistance or support zones.
Adjustable Pip Interval: You can customize the pip distance for the upper and lower levels to suit different trading styles and volatility.
Works for All Pairs: Option to automatically detect JPY pairs with a different pip value (0.1), or you can manually select your pair setting.
Color Customization: You can choose different colors for the daily open line, upper levels, and lower levels for easy visualization.
Immediate Visual Feedback: The indicator immediately draws the lines on the chart when added, without waiting for any market data.
How It Works:
The daily open price is retrieved from the current trading day, and horizontal lines are drawn at this price level, as well as at pip-based distances above and below it.
The pip distance is calculated using the Pip Interval setting and can be adjusted for any pair. For example, a 225-pip interval would create lines at 225 pips above and below the daily open.
The indicator dynamically updates every minute to reflect new daily opens and adjustments for each trading day.
Lines are drawn using the HLine (horizontal line) objects in MetaTrader 5, making them easy to spot and follow.
Parameters:
Pip Interval: Defines the pip distance for upper and lower levels (e.g., 225 pips). This affects how far above and below the daily open the levels are drawn.
Number of Levels: Sets how many upper and lower levels are drawn.
JPY Pairs: An option to adjust the pip value for JPY pairs (0.1 pip for JPY pairs vs. 0.01 pip for others).
Line Colors: Customize the colors for the daily open, upper levels, and lower levels.
Style & Width: Adjust the style (solid/dashed) and width of the lines to match your preferences.
forexroboot Hunter Premiumthis indicator trade on crypto and forex
trade on any time frame
enjoyed
inst: Forexroboot
ما
forexroboot
GannLvlSHGann Indicator created to display the Support and Resistances levels on Chart based on study of WD Gann
Stochastic Order Flow Momentum [ScorsoneEnterprises]This indicator implements a stochastic model of order flow using the Ornstein-Uhlenbeck (OU) process, combined with a Kalman filter to smooth momentum signals. It is designed to capture the dynamic momentum of volume delta, representing the net buying or selling pressure per bar, and highlight potential shifts in market direction. The volume delta data is sourced from TradingView’s built-in functionality:
www.tradingview.com
For a deeper dive into stochastic processes like the Ornstein-Uhlenbeck model in financial contexts, see these research articles: arxiv.org and arxiv.org
The SOFM tool aims to reveal the momentum and acceleration of order flow, modeled as a mean-reverting stochastic process. In markets, order flow often oscillates around a baseline, with bursts of buying or selling pressure that eventually fade—similar to how physical systems return to equilibrium. The OU process captures this behavior, while the Kalman filter refines the signal by filtering noise. Parameters theta (mean reversion rate), mu (mean level), and sigma (volatility) are estimated by minimizing a squared-error objective function using gradient descent, ensuring adaptability to real-time market conditions.
How It Works
The script combines a stochastic model with signal processing. Here’s a breakdown of the key components, including the OU equation and supporting functions.
// Ornstein-Uhlenbeck model for volume delta
ou_model(params, v_t, lkb) =>
theta = clamp(array.get(params, 0), 0.01, 1.0)
mu = clamp(array.get(params, 1), -100.0, 100.0)
sigma = clamp(array.get(params, 2), 0.01, 100.0)
error = 0.0
v_pred = array.new(lkb, 0.0)
array.set(v_pred, 0, array.get(v_t, 0))
for i = 1 to lkb - 1
v_prev = array.get(v_pred, i - 1)
v_curr = array.get(v_t, i)
// Discretized OU: v_t = v_{t-1} + theta * (mu - v_{t-1}) + sigma * noise
v_next = v_prev + theta * (mu - v_prev)
array.set(v_pred, i, v_next)
v_curr_clean = na(v_curr) ? 0 : v_curr
v_pred_clean = na(v_next) ? 0 : v_next
error := error + math.pow(v_curr_clean - v_pred_clean, 2)
error
The ou_model function implements a discretized Ornstein-Uhlenbeck process:
v_t = v_{t-1} + theta (mu - v_{t-1})
The model predicts volume delta (v_t) based on its previous value, adjusted by the mean-reverting term theta (mu - v_{t-1}), with sigma representing the volatility of random shocks (approximated in the Kalman filter).
Parameters Explained
The parameters theta, mu, and sigma represent distinct aspects of order flow dynamics:
Theta:
Definition: The mean reversion rate, controlling how quickly volume delta returns to its mean (mu). Constrained between 0.01 and 1.0 (e.g., clamp(array.get(params, 0), 0.01, 1.0)).
Interpretation: A higher theta indicates faster reversion (short-lived momentum), while a lower theta suggests persistent trends. Initial value is 0.1 in init_params.
In the Code: In ou_model, theta scales the pull toward \mu, influencing the predicted v_t.
Mu:
Definition: The long-term mean of volume delta, representing the equilibrium level of net buying/selling pressure. Constrained between -100.0 and 100.0 (e.g., clamp(array.get(params, 1), -100.0, 100.0)).
Interpretation: A positive mu suggests a bullish bias, while a negative mu indicates bearish pressure. Initial value is 0.0 in init_params.
In the Code: In ou_model, mu is the target level that v_t reverts to over time.
Sigma:
Definition: The volatility of volume delta, capturing the magnitude of random fluctuations. Constrained between 0.01 and 100.0 (e.g., clamp(array.get(params, 2), 0.01, 100.0)).
Interpretation: A higher sigma reflects choppier, noisier order flow, while a lower sigma indicates smoother behavior. Initial value is 0.1 in init_params.
In the Code: In the Kalman filter, sigma contributes to the error term, adjusting the smoothing process.
Summary:
theta: Speed of mean reversion (how fast momentum fades).
mu: Baseline order flow level (bullish or bearish bias).
sigma: Noise level (variability in order flow).
Other Parts of the Script
Clamp
A utility function to constrain parameters, preventing extreme values that could destabilize the model.
ObjectiveFunc
Defines the objective function (sum of squared errors) to minimize during parameter optimization. It compares the OU model’s predicted volume delta to observed data, returning a float to be minimized.
How It Works: Calls ou_model to generate predictions, computes the squared error for each timestep, and sums it. Used in optimization to assess parameter fit.
FiniteDifferenceGradient
Calculates the gradient of the objective function using finite differences. Think of it as finding the "slope" of the error surface for each parameter. It nudges each parameter (theta, mu, sigma) by a small amount (epsilon) and measures the change in error, returning an array of gradients.
Minimize
Performs gradient descent to optimize parameters. It iteratively adjusts theta, mu, and sigma by stepping down the "hill" of the error surface, using the gradients from FiniteDifferenceGradient. Stops when the gradient norm falls below a tolerance (0.001) or after 20 iterations.
Kalman Filter
Smooths the OU-modeled volume delta to extract momentum. It uses the optimized theta, mu, and sigma to predict the next state, then corrects it with observed data via the Kalman gain. The result is a cleaner momentum signal.
Applied
After initializing parameters (theta = 0.1, mu = 0.0, sigma = 0.1), the script optimizes them using volume delta data over the lookback period. The optimized parameters feed into the Kalman filter, producing a smoothed momentum array. The average momentum and its rate of change (acceleration) are calculated, though only momentum is plotted by default.
A rising momentum suggests increasing buying or selling pressure, while a flattening or reversing momentum indicates fading activity. Acceleration (not plotted here) could highlight rapid shifts.
Tool Examples
The SOFM indicator provides a dynamic view of order flow momentum, useful for spotting directional shifts or consolidation.
Low Time Frame Example: On a 5-minute chart of SEED_ALEXDRAYM_SHORTINTEREST2:NQ , a rising momentum above zero with a lookback of 5 might signal building buying pressure, while a drop below zero suggests selling dominance. Crossings of the zero line can mark transitions, though the focus is on trend strength rather than frequent crossovers.
High Time Frame Example: On a daily chart of NYSE:VST , a sustained positive momentum could confirm a bullish trend, while a sharp decline might warn of exhaustion. The mean-reverting nature of the OU process helps filter out noise on longer scales. It doesn’t make the most sense to use this on a high timeframe with what our data is.
Choppy Markets: When momentum oscillates near zero, it signals indecision or low conviction, helping traders avoid whipsaws. Larger deviations from zero suggest stronger directional moves to act on, this is on $STT.
Inputs
Lookback: Users can set the lookback period (default 5) to adjust the sensitivity of the OU model and Kalman filter. Shorter lookbacks react faster but may be noisier; longer lookbacks smooth more but lag slightly.
The user can also specify the timeframe they want the volume delta from. There is a default way to lower and expand the time frame based on the one we are looking at, but users have the flexibility.
No indicator is 100% accurate, and SOFM is no exception. It’s an estimation tool, blending stochastic modeling with signal processing to provide a leading view of order flow momentum. Use it alongside price action, support/resistance, and your own discretion for best results. I encourage comments and constructive criticism.
Advanced Multi-Symbol Analyzer by Babak SoltanparastAdvanced Multi-Symbol Analyzer by Babak Soltanparast
Probability Grid [LuxAlgo]The Probability Grid tool allows traders to see the probability of where and when the next reversal would occur, it displays a 10x10 grid and/or dashboard with the probability of the next reversal occurring beyond each cell or within each cell.
🔶 USAGE
By default, the tool displays deciles (percentiles from 0 to 90), users can enable, disable and modify each percentile, but two of them must always be enabled or the tool will display an error message alerting of it.
The use of the tool is quite simple, as shown in the chart above, the further the price moves on the grid, the higher the probability of a reversal.
In this case, the reversal took place on the cell with a probability of 9%, which means that there is a probability of 91% within the square defined by the last reversal and this cell.
🔹 Grid vs Dashboard
The tool can display a grid starting from the last reversal and/or a dashboard at three predefined locations, as shown in the chart above.
🔶 DETAILS
🔹 Raw Data vs Normalized Data
By default the tool displays the normalized data, this means that instead of using the raw data (price delta between reversals) it uses the returns between each reversal, this is useful to make an apples to apples comparison of all the data in the dataset.
This can be seen in the left side of the chart above (BTCUSD Daily chart) where normalize data is disabled, the percentiles from 0 to 40 overlap and are indistinguishable from each other because the tool uses the raw price delta over the entire bitcoin history, with normalize data enabled as we can see in the right side of the chart we can have a fair comparison of the data over the entire history.
🔹 Probability Beyond or Within Each Cell
Two different probability modes are available, the default mode is Probability Beyond Each Cell, the number displayed in each cell is the probability of the next reversal to be located in the area beyond the cell, for example, if the cell displays 20%, it means that in the area formed by the square starting from the last reversal and ending at the cell, there is an 80% probability and outside that square there is a 20% probability for the location of the next reversal.
The second probability mode is the probability within each cell, this outlines the chance that the next reversal will be within the cell, as we can see on the right chart above, when using deciles as percentiles (default settings), each cell has the same 1% probability for the 10x10 grid.
🔶 SETTINGS
Swing Length: The maximum length in bars used to identify a swing
Maximum Reversals: Maximum number of reversals included in calculations
Normalize Data: Use returns between swings instead of raw price
Probability: Choose between two different probability modes: beyond and inside each cell
Percentiles: Enable/disable each of the ten percentiles and select the percentile number and line style
🔹 Dashboard
Show Dashboard: Enable or disable the dashboard
Position: Choose dashboard location
Size: Choose dashboard size
🔹 Style
Show Grid: Enable or disable the grid
Size: Choose grid text size
Colors: Choose grid background colors
Show Marks: Enable/disable reversal markers
Bollinger Bands (Indicator Only)Just a Bollinger Bands indicator that can be used to make a strategy, I hope it will help you
Sessions with Mausa session high/low tracker that draws flat, horizontal lines for Asia, London, and New York trading sessions. It updates those levels in real time during each session, locks them in once the session ends, and keeps them on the chart for context.
At a glance, you always know:
Where each session’s highs and lows were set
Which session produced them (ASIA, LDN, NY labels float cleanly above the highs)
When price is approaching or reacting to prior session levels
🔹 Use Cases:
• Key Levels – See where Asia, London, or NY set boundaries, and watch how price respects or rejects them
• Breakout Zones – Monitor when price breaks above/below session highs/lows
• Session Structure – Know instantly if a move happened during London or NY without squinting at the clock
• Backtesting – Keep historic session levels on the chart for reference — nothing gets deleted
• Confluence – Align these levels with support/resistance, fibs, or liquidity zones
Simple, visual, no distractions — just session structure at a glance.
Market Pulse TableMarket Pulse Table – Customizable MACD Tracker
This indicator provides a clean and compact table showing real-time market signals for selected instruments.
✅ Features:
• Displays daily % change with color-coded sentiment (green for gains, red for losses)
• Shows MACD signal – "Buy", "Sell", or "Neutral" based on daily MACD crossovers
• Fully customizable: toggle which assets to include from a predefined list (e.g., ES1!, NQ1!, DXY, VIX...)
• Adjustable table position on chart
🎯 Designed for traders who want a quick overview of market direction, momentum, and volatility across key instruments, helping you stay aligned with the broader trend.
Half Causal EstimatorOverview
The Half Causal Estimator is a specialized filtering method that provides responsive averages of market variables (volume, true range, or price change) with significantly reduced time delay compared to traditional moving averages. It employs a hybrid approach that leverages both historical data and time-of-day patterns to create a timely representation of market activity while maintaining smooth output.
Core Concept
Traditional moving averages suffer from time lag, which can delay signals and reduce their effectiveness for real-time decision making. The Half Causal Estimator addresses this limitation by using a non-causal filtering method that incorporates recent historical data (the causal component) alongside expected future behavior based on time-of-day patterns (the non-causal component).
This dual approach allows the filter to respond more quickly to changing market conditions while maintaining smoothness. The name "Half Causal" refers to this hybrid methodology—half of the data window comes from actual historical observations, while the other half is derived from time-of-day patterns observed over multiple days. By incorporating these "future" values from past patterns, the estimator can reduce the inherent lag present in traditional moving averages.
How It Works
The indicator operates through several coordinated steps. First, it stores and organizes market data by specific times of day (minutes/hours). Then it builds a profile of typical behavior for each time period. For calculations, it creates a filtering window where half consists of recent actual data and half consists of expected future values based on historical time-of-day patterns. Finally, it applies a kernel-based smoothing function to weight the values in this composite window.
This approach is particularly effective because market variables like volume, true range, and price changes tend to follow recognizable intraday patterns (they are positive values without DC components). By leveraging these patterns, the indicator doesn't try to predict future values in the traditional sense, but rather incorporates the average historical behavior at those future times into the current estimate.
The benefit of using this "average future data" approach is that it counteracts the lag inherent in traditional moving averages. In a standard moving average, recent price action is underweighted because older data points hold equal influence. By incorporating time-of-day averages for future periods, the Half Causal Estimator essentially shifts the center of the filter window closer to the current bar, resulting in more timely outputs while maintaining smoothing benefits.
Understanding Kernel Smoothing
At the heart of the Half Causal Estimator is kernel smoothing, a statistical technique that creates weighted averages where points closer to the center receive higher weights. This approach offers several advantages over simple moving averages. Unlike simple moving averages that weight all points equally, kernel smoothing applies a mathematically defined weight distribution. The weighting function helps minimize the impact of outliers and random fluctuations. Additionally, by adjusting the kernel width parameter, users can fine-tune the balance between responsiveness and smoothness.
The indicator supports three kernel types. The Gaussian kernel uses a bell-shaped distribution that weights central points heavily while still considering distant points. The Epanechnikov kernel employs a parabolic function that provides efficient noise reduction with a finite support range. The Triangular kernel applies a linear weighting that decreases uniformly from center to edges. These kernel functions provide the mathematical foundation for how the filter processes the combined window of past and "future" data points.
Applicable Data Sources
The indicator can be applied to three different data sources: volume (the trading volume of the security), true range (expressed as a percentage, measuring volatility), and change (the absolute percentage change from one closing price to the next).
Each of these variables shares the characteristic of being consistently positive and exhibiting cyclical intraday patterns, making them ideal candidates for this filtering approach.
Practical Applications
The Half Causal Estimator excels in scenarios where timely information is crucial. It helps in identifying volume climaxes or diminishing volume trends earlier than conventional indicators. It can detect changes in volatility patterns with reduced lag. The indicator is also useful for recognizing shifts in price momentum before they become obvious in price action, and providing smoother data for algorithmic trading systems that require reduced noise without sacrificing timeliness.
When volatility or volume spikes occur, conventional moving averages typically lag behind, potentially causing missed opportunities or delayed responses. The Half Causal Estimator produces signals that align more closely with actual market turns.
Technical Implementation
The implementation of the Half Causal Estimator involves several technical components working together. Data collection and organization is the first step—the indicator maintains a data structure that organizes market data by specific times of day. This creates a historical record of how volume, true range, or price change typically behaves at each minute/hour of the trading day.
For each calculation, the indicator constructs a composite window consisting of recent actual data points from the current session (the causal half) and historical averages for upcoming time periods from previous sessions (the non-causal half). The selected kernel function is then applied to this composite window, creating a weighted average where points closer to the center receive higher weights according to the mathematical properties of the chosen kernel. Finally, the kernel weights are normalized to ensure the output maintains proper scaling regardless of the kernel type or width parameter.
This framework enables the indicator to leverage the predictable time-of-day components in market data without trying to predict specific future values. Instead, it uses average historical patterns to reduce lag while maintaining the statistical benefits of smoothing techniques.
Configuration Options
The indicator provides several customization options. The data period setting determines the number of days of observations to store (0 uses all available data). Filter length controls the number of historical data points for the filter (total window size is length × 2 - 1). Filter width adjusts the width of the kernel function. Users can also select between Gaussian, Epanechnikov, and Triangular kernel functions, and customize visual settings such as colors and line width.
These parameters allow for fine-tuning the balance between responsiveness and smoothness based on individual trading preferences and the specific characteristics of the traded instrument.
Limitations
The indicator requires minute-based intraday timeframes, securities with volume data (when using volume as the source), and sufficient historical data to establish time-of-day patterns.
Conclusion
The Half Causal Estimator represents an innovative approach to technical analysis that addresses one of the fundamental limitations of traditional indicators: time lag. By incorporating time-of-day patterns into its calculations, it provides a more timely representation of market variables while maintaining the noise-reduction benefits of smoothing. This makes it a valuable tool for traders who need to make decisions based on real-time information about volume, volatility, or price changes.
Sun Moon Conjunctions Trine Oppositions 2025this script is an astrological tool designed to overlay significant Sun-Moon aspect events for 2025 on a Bitcoin chart. It highlights key lunar phases and aspects—Conjunctions (New Moon) in blue, Squares in red, Oppositions (Full Moon) in purple, and Trines in green—using background colors and labeled markers. Users can toggle visibility for each aspect type and adjust label sizes via customizable inputs. The script accurately marks events from January through December 2025, with labels appearing once per event, making it a valuable resource for exploring potential correlations between lunar cycles and Bitcoin price movements.
Gold Opening 15-Min ORB INDICATOR by AdéThis indicator is designed for trading Gold (XAUUSD) during the first 15 minutes of major market openings: Asian, European, and US sessions. It highlights these key time windows, plots the high and low ranges of each session, and generates breakout-based buy/sell signals. Ideal for traders focusing on volatility at market opens.
Features:Session Windows:
Asian: 1:00–1:15 AM Barcelona time (23:00–23:15 UTC, CEST-adjusted).
European: 9:00–9:15 AM Barcelona time (07:00–07:15 UTC).
US: 3:30–3:45 PM Barcelona time (13:30–13:45 UTC).
Marked with yellow (Asian), green (Europe), and blue (US) triangles below bars.
High/Low Ranges:Plots horizontal lines showing the highest high and lowest low of each session’s first 15 minutes.Lines appear after each session ends and persist until the next day, color-coded to match the sessions.Breakout Signals:Buy (Long): Triggers when the closing price breaks above the highest high of the previous 5 bars during a session window (lime triangle above bar).Sell (Short): Triggers when the closing price breaks below the lowest low of the previous 5 bars during a session window (red triangle below bar).
Signals are restricted to the 15-minute session periods for focused trading.Usage:Timeframe: Optimized for 1-minute XAUUSD charts.Timezone: Set your chart to UTC for accurate session timing (script uses UTC internally, based on Barcelona CEST, UTC+2 in April).Strategy:
Use buy/sell signals for breakout trades during volatile market opens, with session ranges as support/resistance levels.Customization: Adjust the lookback variable (default: 5) to tweak signal sensitivity.Notes:Tested for April 2025 (CEST, UTC+2).
Adjust timestamp values if using outside daylight saving time (CET, UTC+1) or for different broker timezones.Best for scalping or short-term trades during high-volatility periods. Combine with other indicators for confirmation if desired.How to Use:Apply to a 1-minute XAUUSD chart.Watch for session markers (triangles) and breakout signals during the 15-minute windows.Use the high/low lines to gauge potential breakout targets or reversals.
Order Flow Hawkes Process [ScorsoneEnterprises]This indicator is an implementation of the Hawkes Process. This tool is designed to show the excitability of the different sides of volume, it is an estimation of bid and ask size per bar. The code for the volume delta is from www.tradingview.com
Here’s a link to a more sophisticated research article about Hawkes Process than this post arxiv.org
This tool is designed to show how excitable the different sides are. Excitability refers to how likely that side is to get more activity. Alan Hawkes made Hawkes Process for seismology. A big earthquake happens, lots of little ones follow until it returns to normal. Same for financial markets, big orders come in, causing a lot of little orders to come. Alpha, Beta, and Lambda parameters are estimated by minimizing a negative log likelihood function.
How it works
There are a few components to this script, so we’ll go into the equation and then the other functions used in this script.
hawkes_process(params, events, lkb) =>
alpha = clamp(array.get(params, 0), 0.01, 1.0)
beta = clamp(array.get(params, 1), 0.1, 10.0)
lambda_0 = clamp(array.get(params, 2), 0.01, 0.3)
intensity = array.new_float(lkb, 0.0)
events_array = array.new_float(lkb, 0.0)
for i = 0 to lkb - 1
array.set(events_array, i, array.get(events, i))
for i = 0 to lkb - 1
sum_decay = 0.0
current_event = array.get(events_array, i)
for j = 0 to i - 1
time_diff = i - j
past_event = array.get(events_array, j)
decay = math.exp(-beta * time_diff)
past_event_val = na(past_event) ? 0 : past_event
sum_decay := sum_decay + (past_event_val * decay)
array.set(intensity, i, lambda_0 + alpha * sum_decay)
intensity
The parameters alpha, beta, and lambda all represent a different real thing.
Alpha (α):
Definition: Alpha represents the excitation factor or the magnitude of the influence that past events have on the future intensity of the process. In simpler terms, it measures how much each event "excites" or triggers additional events. It is constrained between 0.01 and 1.0 (e.g., clamp(array.get(params, 0), 0.01, 1.0)). A higher alpha means past events have a stronger influence on increasing the intensity (likelihood) of future events. Initial value is set to 0.1 in init_params. In the hawkes_process function, alpha scales the contribution of past events to the current intensity via the term alpha * sum_decay.
Beta (β):
Definition: Beta controls the rate of exponential decay of the influence of past events over time. It determines how quickly the effect of a past event fades away. It is constrained between 0.1 and 10.0 (e.g., clamp(array.get(params, 1), 0.1, 10.0)). A higher beta means the influence of past events decays faster, while a lower beta means the influence lingers longer. Initial value is set to 0.1 in init_params. In the hawkes_process function, beta appears in the decay term math.exp(-beta * time_diff), which reduces the impact of past events as the time difference (time_diff) increases.
Lambda_0 (λ₀):
Definition: Lambda_0 is the baseline intensity of the process, representing the rate at which events occur in the absence of any excitation from past events. It’s the "background" rate of the process. It is constrained between 0.01 and 0.3 .A higher lambda_0 means a higher natural frequency of events, even without the influence of past events. Initial value is set to 0.1 in init_params. In the hawkes_process function, lambda_0 sets the minimum intensity level, to which the excitation term (alpha * sum_decay) is added: lambda_0 + alpha * sum_decay
Alpha (α): Strength of event excitation (how much past events boost future events).
Beta (β): Rate of decay of past event influence (how fast the effect fades).
Lambda_0 (λ₀): Baseline event rate (background intensity without excitation).
Other parts of the script.
Clamp
The clamping function is a simple way to make sure parameters don’t grow or shrink too much.
ObjectiveFunction
This function defines the objective function (negative log-likelihood) to minimize during parameter optimization.It returns a float representing the negative log-likelihood (to be minimized).
How It Works:
Calls hawkes_process to compute the intensity array based on current parameters.Iterates over the lookback period:lambda_t: Intensity at time i.event: Event magnitude at time i.Handles na values by replacing them with 0.Computes log-likelihood: event_clean * math.log(math.max(lambda_t_clean, 0.001)) - lambda_t_clean.Ensures lambda_t_clean is at least 0.001 to avoid log(0).Accumulates into log_likelihood.Returns -log_likelihood (negative because the goal is to minimize, not maximize).
It is used in the optimization process to evaluate how well the parameters fit the observed event data.
Finite Difference Gradient:
This function calculates the gradient of the objective function we spoke about. The gradient is like a directional derivative. Which is like the direction of the rate of change. Which is like the direction of the slope of a hill, we can go up or down a hill. It nudges around the parameter, and calculates the derivative of the parameter. The array of these nudged around parameters is what is returned after they are optimized.
Minimize:
This is the function that actually has the loop and calls the Finite Difference Gradient each time. Here is where the minimizing happens, how we go down the hill. If we are below a tolerance, we are at the bottom of the hill.
Applied
After an initial guess the parameters are optimized with a mix of bid and ask levels to prevent some over-fitting for each side while keeping some efficiency. We initialize two different arrays to store the bid and ask sizes. After we optimize the parameters we clamp them for the calculations. We then get the array of intensities from the Hawkes Process of bid and ask and plot them both. When the bids are greater than the ask it represents a bullish scenario where there are likely to be more buy than sell orders, pushing up price.
Tool examples:
The idea is that when the bid side is more excitable it is more likely to see a bullish reaction, when the ask is we see a bearish reaction.
We see that there are a lot of crossovers, and I picked two specific spots. The idea of this isn’t to spot crossovers but avoid chop. The values are either close together or far apart. When they are far, it is a classification for us to look for our own opportunities in, when they are close, it signals the market can’t pick a direction just yet.
The value works just as well on a higher timeframe as on a lower one. Hawkes Process is an estimate, so there is a leading value aspect of it.
The value works on equities as well, here is NASDAQ:TSLA on a lower time frame with a lookback of 5.
Inputs
Users can enter the lookback value and timeframe.
No tool is perfect, the Hawkes Process value is also not perfect and should not be followed blindly. It is good to use any tool along with discretion and price action.
Fibonacci Levels with SMA SignalsThis strategy leverages Fibonacci retracement levels along with the 100-period and 200-period Simple Moving Averages (SMAs) to generate robust entry and exit signals for long-term swing trades, particularly on the daily timeframe. The combination of Fibonacci levels and SMAs provides a powerful way to capitalize on major trend reversals and market retracements, especially in stocks and major crypto assets.
The core of this strategy involves calculating key Fibonacci retracement levels (23.6%, 38.2%, 61.8%, and 78.6%) based on the highest high and lowest low over a 365-day lookback period. These Fibonacci levels act as potential support and resistance zones, indicating areas where price may retrace before continuing its trend. The 100-period SMA and 200-period SMA are used to define the broader market trend, with the strategy favoring uptrend conditions for buying and downtrend conditions for selling.
This indicator highlights high-probability zones for long or short swing setups based on Fibonacci retracements and the broader trend, using the 100 and 200 SMAs.
In addition, this strategy integrates alert conditions to notify the trader when these key conditions are met, providing real-time notifications for optimal entry and exit points. These alerts ensure that the trader does not miss significant trade opportunities.
Key Features:
Fibonacci Retracement Levels: The Fibonacci levels provide natural price zones that traders often watch for potential reversals, making them highly relevant in the context of swing trading.
100 and 200 SMAs: These moving averages help define the overall market trend, ensuring that the strategy operates in line with broader price action.
Buy and Sell Signals: The strategy generates buy signals when the price is above the 200 SMA and retraces to the 61.8% Fibonacci level. Sell signals are triggered when the price is below the 200 SMA and retraces to the 38.2% Fibonacci level.
Alert Conditions: The alert conditions notify traders when the price is at the key Fibonacci levels in the context of an uptrend or downtrend, allowing for efficient monitoring of trade opportunities.
Application:
This strategy is ideal for long-term swing trades in both stocks and major cryptocurrencies (such as BTC and ETH), particularly on the daily timeframe. The daily timeframe allows for capturing broader, more sustained trends, making it suitable for identifying high-quality entries and exits. By using the 100 and 200 SMAs, the strategy filters out noise and focuses on larger, more meaningful trends, which is especially useful for longer-term positions.
This script is optimized for swing traders looking to capitalize on retracements and trends in markets like stocks and crypto. By combining Fibonacci levels with SMAs, the strategy ensures that traders are not only entering at optimal levels but also trading in the direction of the prevailing trend.
RSI Support & Resistance Breakouts with OrderblocksThis tool is an overly simplified method of finding market squeeze and breakout completely based on a dynamic RSI calculation. It is designed to draw out areas of price levels where the market is pushing back against price action leaving behind instances of short term support and resistance levels you otherwise wouldn't see with the common RSI.
It uses the changes in market momentum to determine support and resistance levels in real time while offering price zone where order blocks exist in the short term.
In ranging markets we need to know a couple things.
1. External Zone - It's important to know where the highs and lows were left behind as they hold liquidity. Here you will have later price swings and more false breakouts.
2. Internal Zone - It's important to know where the highest and lowest closing values were so we can see the limitations of that squeeze. Here you will find the stronger cluster of orders often seen as orderblocks.
In this tool I've added a 200 period Smoothed Moving Average as a trend filter which causes the RSI calculation to change dynamically.
Regular Zones - without extending
The Zones draw out automatically but are often too small to work with.
To solve this problem, you can extend the zones into the future up to 40 bars.
This allows for more visibility against future price action.
--------------------------------------------
Two Types of Zones
External Zones - These zones give you positioning of the highest and lowest price traded within the ranging market. This is where liquidity will be swept and often is an ultimate breaking point for new price swings.
How to use them :
External Zones - External zones form at the top of a pullback. After this price should move back into its impulsive wave.
During the next corrective way, if price breaches the top of the previous External Zone, this is a sign of trend weakness. Expect a divergence and trend reversal.
Internal Zones - (OrderBlocks) Current price will move in relation to previous internal zones. The internal zone is where a majority of price action and trading took place. It's a stronger SQUEEZE area. Current price action will often have a hard time closing beyond the previous Internal Zones high or low. You can expect these zones to show you where the market will flip over. In these same internal zones you'll find large rejection candles.
**Important Note** Size Doesn't Matter
The size of the internal zone does not matter. It can be very small and still very powerful.
Once an internal zone has been hit a few times, its often not relevant any longer.
Order Block Zone Examples
In this image you can see the Internal Zone that was untouched had a STRONG price reaction later on.
Internal Zones that were touched multiple times had weak reactions later as price respected them less over time.
Zone Overlay Breakdown
The Zones form and update in real time until momentum has picked up and price begins to trend. However it leaves behind the elements of the inducement area and all the key levels you need to know about for future price action.
Resistance Fakeout : Later on after the zone has formed, price will return to this upper zone of price levels and cause fakeouts. A close above this zone implies the market moves long again.
Midline Equilibrium : This is simply the center of the strongest traded area. We can call this the Point of Control within the orderblock. If price expands through both extremes of this zone multiple times in the future, it eliminates the orderblock.
Support Fakeout : Just like its opposing brother, price will wick through this zone and rip back causing inducement to trap traders. You would need a clear close below this zone to be in a bearish trend.
BARCOLOR or Candle Color: (Optional)
Bars are colored under three conditions
Bullish Color = A confirmed bullish breakout of the range.
Bearish Color = A confirmed bearish breakout of the range.
Squeeze Color = Even if no box is formed a candle or candles can have a squeeze color. This means the ranging market happened within the high and low of that singular candle.
(US) Historical Trade WarsHistorical U.S. Trade Wars Indicator
Overview
This indicator visualizes major U.S. trade wars and disputes throughout modern economic history, from the McKinley Tariff of 1890 to recent U.S.-China tensions. This U.S.-focused timeline is perfect for macro traders, economic historians, and anyone looking to understand how America's trade conflicts correlate with market movements.
Features
Comprehensive U.S. Timeline: Covers 130+ years of U.S.-centered trade disputes with historically accurate dates.
Color-Coded Events:
🔴 Red: Marks the beginning of a U.S. trade war or major dispute.
🟡 Yellow: Highlights significant events within a trade conflict.
🟢 Green: Shows resolutions or ends of trade disputes.
Global Partners/Rivals: Tracks U.S. trade relations with China, Japan, EU, Canada, Mexico, Brazil, Argentina, and others.
Country Flags: Uses emoji flags for easy visual identification of nations in trade relations with the U.S.
Major Trade Wars Covered:
McKinley Tariff (1890-1894)
Smoot-Hawley Tariff Act (1930-1934)
U.S.-Europe Chicken War (1962-1974)
Multifiber Arrangement Quotas (1974-2005)
Japan-U.S. Trade Disputes (1981-1989)
NAFTA and Softwood Lumber Disputes
Clinton and Bush-Era Steel Tariffs
Obama-Era China Tire Tariffs
Rare Earth Minerals Dispute (2012-2014)
Solar Panel Dispute (2012-2015)
TPP and TTIP Negotiations
U.S.-China Trade War (2018-present)
Airbus-Boeing Dispute
Usage
Analyze how markets historically responded to trade war initiations and resolutions.
Identify patterns in market behavior during periods of trade tensions.
Use as an overlay with price action to examine correlations.
Perfect companion for macro analysis on daily, weekly, or monthly charts.
About
This indicator is designed as a historical reference tool for traders and economic analysts focusing on U.S. trade policy and its global impact. The dates and events have been thoroughly researched for accuracy. Each label includes emojis to indicate the U.S. and its trade partners/rivals, making it easy to track America's evolving trade relationships across time.
Note: This indicator works best on larger timeframes (daily, weekly, monthly) due to the historical span covered.
Timed Reversion Markers (Custom Session Alerts)This script plots vertical histogram markers at specific intraday time points defined by the user. It is designed for traders who follow time-based reversion or breakout setups tied to predictable market behavior at key clock times, such as institutional opening moves, midday reversals, or end-of-day volatility.
Unlike traditional price-action indicators, this tool focuses purely on time-based triggers, a technique often used in time cycle analysis, market internals, and volume-timing strategies.
The indicator includes eight fully customizable time inputs, allowing users to mark any intraday minute with precision using a decimal hour format (for example, 9.55 for 9:55 AM). Each input is automatically converted into hour and minute format, and a visual histogram marker is plotted once per day at that exact time.
Example use cases:
Mark institutional session opens (e.g., 9:30, 10:00, 15:30)
Time-based mean reversion or volatility windows
Backtest recurring time-based reactions
Highlight algorithmic spike zones
The vertical plots serve as non-intrusive, high-contrast visual markers for scalping setups, session analysis, and decision-making checkpoints. All markers are displayed at the top of the chart without interfering with price candles.
Custom Daily % Levels Table📘 Indicator Description
"Custom Daily % Levels – table" is a dynamic and customizable tool designed to help traders visualize daily percentage-based price ranges and key metrics in a compact, table-style format.
🧩 Key Features:
📐 Custom Percent Levels: Automatically calculates upper and lower price levels based on a user-defined base percentage and number of levels, relative to the previous daily close.
🟢🔴 Color Gradient Highlighting: Positive levels are shown with a green gradient, negative levels with red, and the level labels with a neutral tone for easy reference.
📊 Live Asset Info: Displays the current symbol, percentage change from the previous daily close, and 14-period RSI, all color-coded for quick interpretation.
⚙️ Header Control: Toggle the visibility of the main info headers and level headers independently.
📌 Position Customization: Choose where the table appears on your chart (top/bottom, left/right, center).
📈 Clean Layout: Makes it easy to visually track price movement relative to daily expected ranges.
This indicator is especially useful for intraday traders, scalpers, or anyone needing a clear visual of short-term price expansion and contraction based on predefined volatility zones.
Transient Impact Model [ScorsoneEnterprises]This indicator is an implementation of the Transient Impact Model. This tool is designed to show the strength the current trades have on where price goes before they decay.
Here are links to more sophisticated research articles about Transient Impact Models than this post arxiv.org and arxiv.org
The way this tool is supposed to work in a simple way, is when impact is high price is sensitive to past volume, past trades being placed. When impact is low, it moves in a way that is more independent from past volume. In a more sophisticated system, perhaps transient impact should be calculated for each trade that is placed, not just the total volume of a past bar. I didn't do it to ensure parameters exist and aren’t na, as well as to have more iterations for optimization. Note that the value will change as volume does, as soon as a new candle occurs with no volume, the values could be dramatically different.
How it works
There are a few components to this script, so we’ll go into the equation and then the other functions used in this script.
// Transient Impact Model
transient_impact(params, price_change, lkb) =>
alpha = array.get(params, 0)
beta = array.get(params, 1)
lambda_ = array.get(params, 2)
instantaneous = alpha * volume
transient = 0.0
for t = 1 to lkb - 1
if na(volume )
break
transient := transient + beta * volume * math.exp(-lambda_ * t)
predicted_change = instantaneous + transient
math.pow(price_change - predicted_change, 2)
The parameters alpha, beta, and lambda all represent a different real thing.
Alpha (α):
Represents the instantaneous impact coefficient. It quantifies the immediate effect of the current volume on the price change. In the equation, instantaneous = alpha * volume , alpha scales the current bar's volume (volume ) to determine how much of the price change is due to immediate market impact. A larger alpha suggests that current volume has a stronger instantaneous influence on price.
Beta (β):
Represents the transient impact coefficient.It measures the lingering effect of past volumes on the current price change. In the loop calculating transient, beta * volume * math.exp(-lambda_ * t) shows that beta scales the volume from previous bars (volume ), contributing to a decaying effect over time. A higher beta indicates a stronger influence from past volumes, though this effect diminishes with time due to the exponential decay factor.
Lambda (λ):
Represents the decay rate of the transient impact.It controls how quickly the influence of past volumes fades over time in the transient component. In the term math.exp(-lambda_ * t), lambda determines the rate of exponential decay, where t is the time lag (in bars). A larger lambda means the impact of past volumes decays faster, while a smaller lambda implies a longer-lasting effect.
So in full.
The instantaneous term, alpha * volume , captures the immediate price impact from the current volume.
The transient term, sum of beta * volume * math.exp(-lambda_ * t) over the lookback period, models the cumulative, decaying effect of past volumes.
The total predicted_change combines these two components and is compared to the actual price change to compute an error term, math.pow(price_change - predicted_change, 2), which the script minimizes to optimize alpha, beta, and lambda.
Other parts of the script.
Objective function:
This is a wrapper function with a function to minimize so we get the best alpha, beta, and lambda values. In this case it is the Transient Impact Function, not something like a log-likelihood function, helps with efficiency for a high iteration count.
Finite Difference Gradient:
This function calculates the gradient of the objective function we spoke about. The gradient is like a directional derivative. Which is like the direction of the rate of change. Which is like the direction of the slope of a hill, we can go up or down a hill. It nudges around the parameter, and calculates the derivative of the parameter. The array of these nudged around parameters is what is returned after they are optimized.
Minimize:
This is the function that actually has the loop and calls the Finite Difference Gradient each time. Here is where the minimizing happens, how we go down the hill. If we are below a tolerance, we are at the bottom of the hill.
Applied
After an initial guess, we optimize the parameters and get the transient impact value. This number is huge, so we apply a log to it to make it more readable. From here we need some way to tell if the value is low or high. We shouldn’t use standard deviation because returns are not normally distributed, an IQR is similar and better for non normal data. We store past transient impact values in an array, so that way we can see the 25th and 90th percentiles of the data as a rolling value. If the current transient impact is above the 90th percentile, it is notably high. If below the 25th percentile, notably low. All of these values are plotted so we can use it as a tool.
Tool examples:
The idea around it is that when impact is low, there is room for big money to get size quickly and move prices around.
Here we see the price reacting in the IQR Bands. We see multiple examples where the value above the 90th percentile, the red line, corresponds to continuations in the trend, and below the 25th percentile, the purple line, corresponds to reversals. There is no guarantee these tools will be perfect, that is outlined in these situations, however there is clearly a correlation in this tool and trend.
This tool works on any timeframe, daily as we saw before, or lower like a two minute. The bands don’t represent a direction, like bullish or bearish, we need to determine that by interpreting price action. We see at open and at close there are the highest values for the transient impact. This is to be expected as these are the times with the highest volume of the trading day.
This works on futures as well as equities with the same context. Volume can be attributed to volatility as well. In volatile situations, more volatility comes in, and we can perceive it through the transient impact value.
Inputs
Users can enter the lookback value.
No tool is perfect, the transient impact value is also not perfect and should not be followed blindly. It is good to use any tool along with discretion and price action.
High and Low DayHigh and Low Day
This indicator automatically tracks and displays the daily high and low of the current trading session directly on your chart.
Each new day, it resets the levels and plots horizontal lines:
Green Line for the daily high
Red Line for the daily low
It also adds labels (“High Day” and “Low Day”) for easy visual reference.
The levels update in real time as new highs or lows are formed throughout the day.
You can toggle the visibility of these lines and labels using the "Mostrar Linhas do Dia Atual" (Show Current Day Lines) setting.
Perfect for intraday traders looking to keep track of key support and resistance levels during the trading day.
J Weighted Average Price📘 How to Use the OBV VWAP Reentry Signal Effectively
This indicator plots a VWAP based on OBV (On-Balance Volume), along with dynamic bands to identify overbought and oversold conditions in volume flow.
🔺 Red Triangle Up: Appears when OBV crosses back below the upper band → Potential reversal from overbought → Watch for short opportunities.
🔻 Blue Triangle Down: Appears when OBV crosses back above the lower band → Potential reversal from oversold → Watch for long opportunities.
📌 Tip: Use these signals in confluence with price action or trend confirmation to filter false signals. For example:
Enter short after a reentry from upper band and a lower high in price.
Enter long after a reentry from lower band and a bullish candle structure.
This setup helps you catch mean reversion moves based on volume flow, not just price.