Lot Size & Risk Calculator All Pairs NEWLot Size & Risk Calculator All Pairs NEW
Description
Professional risk and position size calculator for traders working with various financial instruments.
Main difference from standard indicators:
Standard risk calculators only show basic Risk/Reward for the entire position. But in real trading, we often close positions partially at different take-profit levels, and the final Risk/Reward changes significantly with this approach! This indicator calculates weighted Risk/Reward taking into account position distribution across multiple take-profit levels.
Main features:
- Support for 4 instrument types: Forex, XAUUSD (gold), BTCUSD (bitcoin), US100 (NASDAQ index)
- Automatic position size calculation based on risk and stop-loss distance
- Multiple take-profit levels with customizable closing percentages
- Weighted Risk/Reward calculation considering position distribution
- Ability to adjust position distribution between take-profits to optimize final profit
- Display of total percentage growth of deposit from all take-profit levels
- 2 visualization options: colored fill between levels or lines
- Informative results panel in table format
Settings by groups:
Core Settings
- Currency: select instrument type (Forex, XAUUSD, BTCUSD, US100)
- Account Balance: trading account size in dollars
- Risk %: risk percentage from deposit (0.1-100%)
- Use Custom Contract Sizes: manual contract size configuration
Point Value Settings
- Use automatic point value calculation: automatic point value calculation
- Manual point value: manual point value input (for non-standard contracts)
Levels
- Entry Price: entry price (confirmation required on first use)
- Stop Price: stop-loss price
- Take-Profit Prices: take-profit prices (up to 3 levels)
- TP Close %: percentage of position closed at each take-profit level
Dashboard
- Show Targets Profit: display profit from take-profit levels
- Label Size: text size in the table
- Dashboard Position: table position on the chart
How to use:
Step 1: Initial setup (when first adding)
1. Enter entry price (Entry Price) - confirmation window will appear (click on desired bar)
2. Then enter stop-loss price (Stop Price) (click on desired bar)
3. Add first take-profit (TP1) (click on desired bar)
4. Second and third take-profits are added through checkboxes (click on the settings gear icon to open them)
Step 2: Instrument selection and risk configuration
1. In "Core" group, select your instrument type
2. Set account balance and risk percentage
Step 3: Position distribution configuration
1. Set TP Close % for each take-profit level (e.g.: TP1 - 33%, TP2 - 33%, TP3 - 34%)
2. Experiment with distribution! By changing closing percentages, you can:
- Increase/decrease final Risk/Reward
- Optimize risk/profit ratio
- Find the most comfortable position distribution for you
Step 4: Results analysis
1. Results table will show:
- Calculated position size (lots/contracts)
- Risk in monetary terms
- Risk/Reward for each take-profit level
- Weighted R:R considering position distribution
- Total potential profit from all take-profits
- Percentage growth of deposit - total profit percentage from all take-profit levels
Key features:
Position distribution adjustment
You can easily find optimal position distribution between take-profits:
- Aggressive approach: higher percentage on distant take-profit (higher profit potential)
- Conservative approach: higher percentage on near take-profit (faster profit taking)
- Balanced: even distribution for risk reduction
Weighted Risk/Reward
The indicator calculates not just simple R:R for the entire position, but weighted value that considers:
- Position distribution between take-profits
- Different distances to each take-profit level
- Closing percentage at each level
Results visualization
- Colored fill shows risk and profit zones
- Labels at levels display specific profit/loss values
- Results table contains all key metrics
Creation story
This indicator was created based on the original calculator by @Algoryze As a trader, I lacked the ability to see real Risk/Reward when partially closing positions and a convenient tool for selecting optimal position distribution between take-profit levels. I improved the indicator by adding:
- Weighted Risk/Reward calculation
- Ability to adjust closing percentage at each take-profit
- Display of total percentage growth of deposit
- Improved interface and visualization
I hope this tool will be useful to other traders who use strategies with partial position closing!
Important notes:
1. When first adding the indicator, be sure to enter prices in order: Entry → Stop → TP1
2. TP2 and TP3 are added through input fields (no confirmation required)
3. Closing percentages are automatically normalized if the sum is not 100%
4. Experiment with position distribution to find optimal risk/profit ratio
5. For different instruments, add separate copies of the indicator in different tabs
Support
For questions and suggestions, leave comments in the indicator publication on TradingView.
---
Important: All calculations are provided for informational purposes only. Trading involves risks, trade responsibly. The indicator helps with calculations but does not guarantee profit.
Statistics
HAP Trend CageHAP Trend Cage – Visual Band & Stochastic Entry System
HAP Trend Cage is a pure visual overlay indicator designed to show when price is trapped inside dynamic bands — and when momentum timing aligns for a potential entry.
This is not Bollinger Bands.
These bands are built to contain price behavior, not volatility expansion.
🔹 What it shows:
Dynamic price bands plotted directly on the chart
Clear visual zones where price is compressed or held
Stochastic (14, 3, 3) used purely for entry timing
Exact candle awareness — you see where and when the signal happens
🔹 How to use:
Follow the bands visually — price inside the cage = structure intact
Wait for Stochastic alignment inside or near band boundaries
Designed for confirmation, not prediction
No clutter, no repainting, no over-signaling
🔹 Why it’s different:
Focuses on market structure first
Momentum is used only as a timing tool
Built for traders who trust price behavior over indicators
This indicator does not tell you to buy or sell.
It shows you where the market is constrained — and lets you decide when to act
BERNA (Boundary-Encoded Resonance Network Architecture)BERNA — Boundary-Encoded Resonance Network Architecture
BERNA is a research-grade indicator that estimates the remaining structural capacity of the current market regime.
Unlike trend, volatility, or momentum tools, BERNA does not measure price direction — it measures how much of the regime’s internal capacity has already been consumed.
This script implements the BERNA model published on Zenodo (Bülent Duman, 2026).
It is intentionally minimal and uses only OHLC data.
What BERNA measures
BERNA outputs a structural capacity state:
τ = Σ / Θ (normalized structural stress)
Λ = Θ − Σ (remaining structural capacity)
Interpretation:
High Λ / low τ → the regime has structural endurance
Rising τ → capacity is being consumed
τ → 1 (Λ → 0) → rupture proximity (capacity exhaustion)
This makes BERNA a forward-looking structural capacity variable, not a price oscillator.
What is inside this script
This implementation contains the following components:
Efficiency proxy (DERYA-like, but not the full public DERYA)
BERNA uses a simple microstructure efficiency proxy computed as:
E = |close − open| / (high − low)
This is conceptually “DERYA-like” but it is not the full DERYA framework.
No external/public DERYA source code is embedded here.
Standard technical primitives used
This script uses only basic primitives commonly found in technical analysis:
Absolute value and range normalization
Thresholding (regime binning)
Power transform on range (rng^p)
There is no EMA, RSI, MACD, ATR, ADX, Fisher, Kaufman, or other indicator embedded.
All computations are internal and deterministic.
3-state structural regime binning (K = 3)
The efficiency proxy E is discretized into three regimes using user thresholds:
Low efficiency
Mid efficiency
High efficiency
Each regime has its own capacity Θ and stress multiplier β.
Structural stress accumulation (Σ) and rupture proximity
Stress increment is defined as:
dΣ = β · (1 − E) · (range^p)
Σ accumulates inside a regime and is capped by Θ.
In this prototype, Σ resets on regime change by construction (regime-gated accumulation).
The rupture proximity is expressed through τ and Λ.
How to use BERNA
BERNA is designed as a regime-health and fragility overlay, not a buy/sell trigger.
Typical uses:
Detect when an ongoing move is structurally late-stage (τ high, Λ low)
Avoid initiating trades when capacity is nearly exhausted
Compare structural resilience across assets and regimes
Use alongside price/trend/volume systems for context
Do not use BERNA alone as a trading signal.
BERNA tells you “how much structure is left”, not “where price will go.”
Visuals
Efficiency (E) shows the bar-level microstructure efficiency proxy
τ shows normalized structural stress (capacity consumption)
Λ shows remaining structural capacity
Dotted lines mark warning and critical rupture proximity levels
Important notes
BERNA is not RSI, MACD, ATR, ADX, Fisher, Kaufman, or a volatility model
BERNA does not predict price direction
BERNA does not issue entry/exit signals
BERNA is a structural capacity diagnostic
This script does not embed any external/public indicator code; all logic is implemented directly in Pine.
Risk and disclaimer
This script is provided for research and analytical purposes only.
It is not financial advice and must not be used as a standalone trading system.
Markets are uncertain.
All trading decisions and risks remain entirely the responsibility of the user.
BERNA: Boundary-Encoded Resonance Network Architecture
A Structural Failure Theory of Financial Regimes Based on Endogenous Capacity Depletion
Author: Duman, Bülent
Affiliation: Independent Researcher
Reference: zenodo.org
ADR% babaThis indicator calculates the Average Day Range (ADR) as a percentage using the TC2000 methodology, measuring the average relative expansion between daily highs and lows to quantify market volatility in a price-level independent manner.
Monthly Seasonality AnalyzerThis indicator analyzes historical performance/seasonality of a chosen month, from date of inception to present. Users can choose any calendar month via dropdown menu.
For each historical month selected, it will calculate the monthly percentage gain/loss, range(volatility), and average gain/loss percentage, average range percentage across all recorded years. Positive returns are colored green and negative returns are red. Also, calculates if the selected month was bullish(open>close) or bearish.
When current chart month matches the selected month, it shows the in-progress range as well.
Data is collected from 1930 to present. Results are shown in vertical and horizontal tables. If the vertical table exceeds a 36 years, the script automatically switches to horizontal table to display all the data, with option to change table position.
Overall this tool is valuable for seasonality research, such as Santa Rally, May Go Away and swing trading/ position trading to capture the monthly PO3 range.
Most seasonality indicators show all 12 months at once or use daily bars. This one zooms in deeply on one month only, providing detailed per-year breakdowns, accurate completed-month stats, and a practical live range display.
The script uses arrays to store years, gains, and ranges. Uses table.new(), table.cell(), table.merge_cells() for easily readable result display. Code handles the current in-progress month separately (shows live range without including it in historical averages).
**Script will not run on any timeframe other than monthly and displays error otherwise. Script is best used on spot and not futures.
Nas Indicator It helps with finding directional bias based off of percentages and grounds me better in my execution.
Linear Regression R-SquaredCalculates the least squares linear regression R-squared values for the specified data period. Values range from zero to one.
VWMA Cross Buy SignalCore Components & Logic
1. The Entry Engine (VWMA + Filters)
The strategy triggers a long signal when a Volume Weighted Moving Average (VWMA) crossover occurs.
Unlike a standard Simple Moving Average, the VWMA gives more weight to bars with higher volume. This ensures the indicator responds faster to "Smart Money" moves and slower to low-volume noise.
It uses a secondary Trend Filter (defaulting to the 200 EMA). By only buying when the price is above this line, the indicator forces you to stay on the right side of the primary market trend.
It requires volume to be higher than its recent average (e.g., 1.1× or 10% higher). This prevents entries on weak, low-conviction price moves.
2. The Dynamic Exit System
You have two distinct ways to manage your risk and targets, toggleable in the settings:
ATR Based (Volatility Adjusted): It calculates the Average True Range (ATR) to determine how volatile the stock is. By setting your Stop Loss at 2.0×ATR, you avoid getting "shaken out" by normal daily price fluctuations. The Take Profit is set at 4.4×ATR to capture large trend extensions.
Fixed % (Static): A more rigid approach where you set a hard percentage target (e.g., 10% gain / 5% loss).
3. The Performance Analytics Table
The grey minimalist table in the bottom-right corner uses cumulative percentage-based math to show:
Realized RRR: The actual Reward-to-Risk ratio based on your closed trades.
Break-Even Win Rate: The minimum win rate you need to stay profitable with your current RRR. It uses the formula:
BE WR=1+RRR1
Current Win Rate: Highlighted in Green if you are beating the Break-Even rate, or Red if the strategy is currently losing money on that specific stock.
Max Drawdown %: The most important metric for risk. It shows the largest peak-to-trough decline in your equity curve, letting you know how much losing streak can hurt your equity.
Strategic Use Case
This indicator is optimized for Stock Screening. When you flip through your watchlist, the table updates instantly.
If you see a stock with a high Win Rate and a Max Drawdown under 10%, you have found a ticker where the VWMA crossover logic is highly compatible with that stock's specific volatility. If the Win Rate cell is Red, you know the strategy is "un-tuned" for that asset and needs adjustment.
LARGER PRICE LINE Adjustable (UPDATED)LARGER PRICE LINE
I made this so I could SEE THE PRICE LINE BETTER and try to reduce some eye strain!!
Hope it helps... enjoy! comment for improvements or suggestions
Improved Adjustable Size and Color for the Price Line and Price Box
Adjustment for Price Line: Size and Color plus Solid Line, Dashed or Dotted Line
Adjustments include: Price Box Text Size and Color (Small, Normal, Large, Huge!)
Adjustable Right Side Offset for Price Box
Median Anchor Oscillator [ALPHA]ALPHA – Median Anchor Oscillator
A clean, outlier-resistant z-score oscillator built around a rolling median (not mean) and Median Absolute Deviation (MAD) instead of standard deviation.
Key features:
- Green/red histogram shows deviation strength from the median anchor
- Dashed lines at ± threshold (default 2.5 – adjustable)
- Optional purple fill for extreme zones
- Auto-scales perfectly (no price squish on BTC or high-value assets)
Ideal for mean-reversion traders spotting overextension or "gravity" pullbacks.
SHORT = breaching top dashed line (red)
LONG = breaching bottom dashed line (green)
Use with a MACD or RSI for those divergence signal confirmations.
This is ALPHA – early version, still tuning.
Companion overlay suite (medians, pivot, signals, RSI overlay) coming in future, possible standalone update(s).
Feedback / suggestions very welcome!
Tags: z-score, median, oscillator, mean-reversion, BTC, crypto, deviation
Crosses Open Daily (shock points OD)It is an indicator that works to alert you when an asset, during the day, crosses or approaches the daily open again.
Teemo Volume Delta & Market HUDTeemo Volume Delta & Market HUD
Description:
Teemo Volume Delta goes beyond simple volume indicators to provide expert-level analysis of Buy and Sell pressure within the market. It visualizes supply/demand imbalances inside candles and provides an immediate grasp of market control via a real-time HUD.
With the v1.2.0 update, we have removed unnecessary overlays (like EMAs) to focus on Pure Delta Analysis and a flexible Smart Accumulation System, making the tool lighter and more powerful.
🚀 Key Features
1. Dual Calculation Modes Offers two calculation methods tailored to your trading environment and goals:
Estimation: Rapidly estimates buy/sell volume based on candle shape (OHLC) and price range. It features fast loading times and works instantly on all assets.
Intraday: Analyzes lower timeframe data (e.g., 1-minute bars) to calculate the precise delta of the current timeframe. (Loading time may vary depending on TradingView data limits.)
2. Smart Accumulation System Supports strategic analysis beyond simple summation with two distinct modes:
Time Based: Resets the Cumulative Delta to 0 at specific intervals (e.g., every 4 hours, Daily). This is optimized for session-based analysis or day trading.
Infinite: Continuously accumulates data without resetting, ideal for analyzing long-term Divergences between price and delta.
3. Intuitive HUD (Heads-Up Display) Displays critical market data on the chart for instant decision-making:
Delta Panel: Shows real-time Buy/Sell volume and Net Delta for the current candle.
Market HUD: Provides a comprehensive view of Trend Strength (ADX), Momentum (RSI), and the Cumulative Buy/Sell status for the current period.
4. Teemo Design System (v1.2) Provides optimized color themes for visual comfort during long trading sessions:
Teemo Neon: High-contrast Mint/Purple theme optimized for dark backgrounds.
Classic Soft: A calming Soft Green/Red theme designed to reduce eye strain (Recommended for all backgrounds).
⚙️ Settings Guide
Calculation Mode: Choose between Estimation (Speed) or Intraday (Precision).
Accumulation Mode: Choose Time Based (Periodic Reset) or Infinite (Continuous).
Reset Period: Set the reset interval for Time Based mode (e.g., 1D = Daily Reset).
Color Preset: Select between Teemo Neon or Classic Soft themes.
💡 Trading Tips
Delta Divergence: If the price makes a higher high but the Cumulative Delta (HUD) makes a lower high, it signals weakening buying pressure and a potential reversal.
Candle Coloring: A solid Mint (or Green) candle body indicates a price rise accompanied by strong actual buying volume, offering higher reliability than standard candles.
HUD Confluence: Consider trend-following entries when the ADX is above 25 and the Delta is heavily skewed in one direction.
This indicator is for informational purposes only and does not constitute financial advice. The Estimation mode provides approximations based on algorithms, and the Intraday mode's accuracy depends on the quality of the lower timeframe data provided by the exchange.
Developed by Teemo Trading Systems
------------------------------------------------------------------------
Teemo Volume Delta & Market HUD
설명 본문:
Teemo Volume Delta는 단순한 거래량 지표를 넘어, 시장 내부의 매수(Buy)와 매도(Sell) 압력을 정밀하게 분석하는 전문가용 도구입니다. 캔들 내부의 수급 불균형을 시각화하고, 실시간 HUD를 통해 시장의 주도권이 누구에게 있는지 즉각적으로 파악할 수 있도록 돕습니다.
v1.2.0 업데이트를 통해 불필요한 보조지표(EMA)를 제거하고, 순수한 델타 분석과 유연한 누적(Accumulation) 시스템에 집중하여 더욱 가볍고 강력해졌습니다.
🚀 주요 기능 (Key Features)
1. 듀얼 계산 모드 (Dual Calculation Modes) 사용자의 환경과 목적에 맞춰 두 가지 계산 방식을 제공합니다.
Estimation (추정 모드): 캔들의 형태(OHLC)와 가격 변동폭을 기반으로 매수/매도 볼륨을 빠르게 추정합니다. 로딩 속도가 빠르며 모든 자산에 즉시 적용 가능합니다.
Intraday (정밀 분석 모드): 하위 타임프레임(예: 1분봉)의 데이터를 분석하여 상위 타임프레임의 델타를 정밀하게 계산합니다. (TradingView 데이터 제한에 따라 로딩 시간이 소요될 수 있습니다.)
2. 스마트 누적 시스템 (Smart Accumulation) 단순 누적을 넘어, 전략적 분석을 위한 두 가지 모드를 지원합니다.
Time Based: 지정한 주기(예: 4시간, 1일)마다 누적 델타를 **0으로 초기화(Reset)**합니다. 세션별 수급 분석이나 데이 트레이딩에 최적화되어 있습니다.
Infinite: 초기화 없이 데이터를 계속 누적하여, 장기적인 가격과 델타의 **다이버전스(Divergence)**를 분석하는 데 유용합니다.
3. 직관적인 HUD (Heads-Up Display) 차트 우측과 좌측에 핵심 정보를 요약하여 보여줍니다.
Delta Panel: 현재 캔들의 매수/매도 거래량과 순매수(Net Delta) 상태를 실시간으로 표시합니다.
Market HUD: ADX(추세 강도), RSI(모멘텀), 그리고 현재 구간의 누적 매수/매도 현황을 한눈에 볼 수 있습니다.
4. Teemo Design System (v1.2) 장시간 차트를 보는 트레이더를 위해 시인성이 뛰어난 컬러 테마를 제공합니다.
Teemo Neon: 어두운 배경에 최적화된 고대비 민트/퍼플 테마.
Classic Soft: 눈의 피로를 줄여주는 차분한 그린/레드 테마 (밝은/어두운 배경 모두 추천).
⚙️ 설정 가이드 (Settings)
Calculation Mode: Estimation(속도 중심) 또는 Intraday(정확도 중심) 중 선택.
Accumulation Mode: Time Based(주기별 리셋) 또는 Infinite(무한 누적) 선택.
Reset Period: Time Based 모드 사용 시 리셋할 주기 설정 (예: 1D = 매일 리셋).
Color Preset: Teemo Neon 또는 Classic Soft 테마 선택.
💡 활용 팁 (Trading Tips)
델타 다이버전스: 가격은 신고가를 갱신하지만 누적 델타(Cum Delta)는 낮아진다면, 매수세가 약화되고 있다는 강력한 반전 신호입니다.
캔들 컬러링: 캔들의 몸통 색상이 짙은 민트색(또는 그린)이라면 강력한 매수세가 동반된 상승을 의미하며, 신뢰도가 높습니다.
HUD 활용: ADX가 25 이상이면서 델타가 한쪽 방향으로 쏠릴 때 추세 매매를 고려하세요.
이 지표는 정보 제공의 목적으로만 사용되며, 재정적 조언이 아닙니다. Estimation 모드는 근사치를 제공하며, Intraday 모드는 거래소에서 제공하는 하위 데이터의 품질에 따라 정확도가 달라질 수 있습니다.
Apex-Wallet - Risk & Reward Calc (Futures/Prop-Firm)Overview The Apex Risk & Reward Calc is a specialized utility tool designed for Futures traders, particularly those working with Prop Firms (Apex, MyFundedFutures, etc.). It eliminates the need for manual calculations by providing an instant, clear visualization of your Risk/Reward parameters directly on the chart.
How it works Trading Futures (ES, NQ, MES, MNQ) requires knowing exactly how many ticks correspond to your financial target. This script automatically detects the active instrument and calculates the precise number of ticks needed for both your Take Profit (TP) and Stop Loss (SL) based on your desired cash outcome and chosen ratio.
Key Features:
Automatic Ticker Recognition: Supports ES, NQ, MES, and MNQ with built-in tick values.
Cash-Based Planning: Enter your desired profit in dollars (e.g., $50), and the script tells you the required tick move.
Dynamic Ratio Selection: Choose from 9 different R:R ratios (from 1/5 to 5/1) to instantly see the impact on your Stop Loss.
Compact Professional UI: A clean, 3-column dashboard at the bottom-right of your screen showing active lots, ticks, and gross cash values.
Trading Application Perfect for intraday scalpers who need to set their ATM strategies in platforms like Tradovate or NinjaTrader. It ensures your execution remains consistent with your risk management plan.
Matrix Panel + VPThis is the indicator for identifying SL levels
It also provides Information about turnover
RSI Statistics [Honestcowboy]⯁ Overview
Research tool for analysing price behaviour based on RSI, find out how your favorite trading pair / timeframe combinations react to RSI. 5 Different projections based on 5 different value zones of RSI:
RSI between 100-80 (very overbought)
RSI between 80-60 (overbought)
RSI between 60-40 (normal)
RSI between 40-20 (oversold)
RSI between 20-00 (very oversold)
The script simply show price projections of different RSI environments so you can get an idea of what price could do when RSI reaches this RSI value zone. Ofcourse past price performance does not guarantee future returns and this is just projections based on the past.
The script also projects RSI just like it does with price so you can get an idea of how long RSI might stay in overbought or very overbought etc
Script is mainly a research tool to use to get ideas to explore further and build upon. Here are some examples:
⯁ Settings
RSI Lenght: this is just normal RSI settings you find in standard RSI (bars used to calculate RSI)
Projection Length: Amount of bars to save for projections. The projections will also project this many bars in futre. Higher values here increase loading time drastically.
Price Action Boundaries: turn the highs / lows of projection zone on or off. I usually turn this off to look more closely at the averages themselves.
Maximum Stats history: Not on by default, in case you only want to show the average projection of last X amount of occurences RSI was in a specific RSI value zone
Selection of the different zones: in case you want to look at a specific zone alone or turn of some zones. It will no longer project for that zone both in the price projection and RSI projections.
⯁ How are these calculated?
To calculate the average price reaction script uses a very simple approach. On each bar it will save price action array up to projection length back in time. It will then check what the RSI value was there and store the array inside the right matrix.
It will use this matrix to calculate the averages, highs and lows of all these arrays for that specific RSI zone. It uses a simple arithmatic averaging method to get average value.
The script uses a similar approach for projecting the RSI itself into the future.
I include a visual showing it a bit better. This is from a different indicator of me using same approach:
The script will force you into a specific background, bar color and color template. Script is not meant to be used with other scripts and should be used as a standalone tool.
Daily Relative Strength (Daily Update)📊 Daily Relative Strength Rank Table (Crypto / Multi-Asset)
This indicator provides a daily relative strength ranking of multiple assets using normalized percentage returns (Z-Scores). It is designed to help traders quickly identify which tokens are outperforming or underperforming the group, both today (live) and yesterday (finalized).
🔍 How It Works
Each asset’s daily percentage return is calculated from the daily close.
Returns are then normalized (Z-score) across the selected group, showing how far each asset deviates from the group average.
Assets are ranked from strongest to weakest based on today’s normalized score.
📈 Table Columns
Rank – Relative position vs other assets (higher = stronger)
Token – Asset symbol
Today Z – Live, intraday relative strength (updates in real time)
Yday Z – Frozen relative strength from the previous daily close
The Yesterday score does not repaint and remains constant throughout the day, allowing for clear comparison between today’s performance and the prior session.
🎯 Why Use This Indicator?
Quickly spot leaders and laggards
Compare assets on a percent-based, normalized scale
Avoid price bias (low-price and high-price assets are treated equally)
Ideal for rotation strategies, momentum trading, and market strength analysis
⚙️ Customization
All symbols can be changed directly in the indicator settings
Works on any timeframe (daily logic is handled internally)
Designed for crypto, but works with stocks, forex, or indices
🧠 Best Use Cases
Identifying top outperformers
Confirming trend continuation
Comparing sector or basket strength
Improving timing and capital allocation decisions
Arbitrage Matrix [LuxAlgo]The Arbitrage Matrix is a follow-up to our Arbitrage Detector that compares the spreads in price and volume between all the major crypto exchanges and forex brokers for any given asset.
It provides traders with a comprehensive view of the entire marketplace, revealing hidden relationships among different exchanges for the same asset and offering easy, visual comparisons.
🔶 USAGE
Arbitrage is the practice of taking advantage of price differences for the same asset across different markets. Arbitrage traders look for these discrepancies to profit from buying where it’s cheaper and selling where it’s more expensive to capture the spread.
For begginers this tool is a clear snapshot of how different markets value the same asset, making global price dynamics easy to grasp.
For advanced traders it is a powerful scanner for arbitrage setups, helping you identify where the biggest opportunities lie in real time.
Arbitrage opportunities are often short‑lived, but they can be highly profitable. By showing you where spreads exist, this tool helps traders:
Understand market inefficiencies
Avoid trading at unfavorable prices
Identify potential profit opportunities across exchanges
By default, the tool searches all the enabled sources for the asset in the chart. It uses crypto exchanges as sources for crypto assets and forex brokers for all other assets.
The data is displayed on a dashboard, which is the tool's only visual element.
Traders can enable or disable any exchange or broker from the settings panel. All are enabled by default.
🔹 Displayable Data
Traders can choose from four types of data to display: last price, last volume, average price, and average volume.
Note that price and volume data may not be available for all assets at all sources, and sources without data will not be displayed.
As the image shows, each chart displays a different type of data for the same asset. In this case, the asset is ETHUSDT.
🔹 Reading the Matrix
Traders must read the data in a row-by-column format, as shown in the following example.
Assume that we are charting BTCUSDT Daily. In the row, we have Exchange A; in the column, we have Exchange B. The data is the average price, and the value is 100. The default length for the average is 20.
It reads like this: The average BTCUSDT price over the last 20 days is $100 higher on Exchange A than on Exchange B.
If the value were -100, it would mean that the average price is $100 lower in Exchange A than in Exchange B.
🔹 Matrix Style
Traders can change the colors and disable the background gradient, which is enabled by default.
They can also fine-tune the location and dashboard size from the settings panel.
🔶 SETTINGS
Sources: Choose between crypto exchanges, forex brokers, or automatic selection based on the asset in the chart.
Average Length: Select the length for the price and volume averages.
Crypto Exchanges: Enable or disable any available exchange.
Forex Brokers: Enable or disable any available broker.
🔹 Dashboard
Data: Select the data to display.
Position: Select the dashboard location.
Size: Select the dashboard size.
🔹 Style
Bullish: Select bullish color.
Bearish: Select bearish color.
Background Gradient: Enable background gradient color.
CVD - Cumulative Volume Delta Line - TheActulaSnailCVD – Cumulative Volume Delta Line
Author: TheActualSnail
Description:
The CVD (Cumulative Volume Delta) Line indicator calculates the net difference between buying and selling volume over time, helping traders visualize market pressure and order flow. Instead of bars, this version plots a smooth line representing cumulative delta, making it easier to spot trends, divergences, and resets.
Key Features:
Smooth CVD line showing cumulative volume delta.
Optional Moving Average for trend smoothing.
Configurable resets: daily, fixed higher timeframe, session start, or specific intraday time.
Zero line for reference.
Background highlights when the CVD resets.
Settings Explanation
1. CVD Resets (resetInput)
Defines when the CVD calculation resets to zero:
None: Never resets; the CVD accumulates indefinitely.
On a stepped higher timeframe: Resets at the start of each bar of a higher timeframe (e.g., daily on a 1H chart).
On a fixed higher timeframe: Resets at the start of a specific timeframe you choose (fixedTfInput).
At a fixed time: Resets at a specific hour and minute each day (hourInput and minuteInput). Works only on intraday charts.
At the beginning of the session: Resets at the start of each trading session (useful for markets with fixed open/close hours).
2. Fixed Higher Timeframe (fixedTfInput)
Used with fixed higher timeframe reset. Example: "D" = reset at the start of each day, "W" = reset at the start of each week.
3. Fixed Time (hourInput & minuteInput)
Used only with At a fixed time reset. Example: hour = 9, minute = 30 → CVD resets at 9:30 AM each day.
4. Volume Delta Calculation (vdCalcModeInput)
Volume delta: Cumulative delta = up volume − down volume.
Volume delta percent: Relative delta = (up − down) / total volume.
5. Visuals
CVD Line Colors: Green for positive delta, red for negative.
CVD MA: Optional moving average to smooth the line.
Zero Line: Reference for zero cumulative delta.
Background Color on Reset: Highlights bars when CVD resets.
Usage Notes
This indicator is for informational purposes only.
It does not provide buy or sell signals.
Always combine CVD analysis with other indicators, price action, and risk management.
Market conditions can change rapidly; use caution when making trading decisions.
Tip:
For intraday charts, consider using fixed time resets to see daily market pressure clearly.
For higher timeframe analysis, use daily or weekly resets.
[QuantLabs] Kinetic Fusion Ultra The Problem with Standard Indicators Most trading indicators fail for one simple reason: They are Static. A standard Stochastic or CCI uses fixed variables that might work perfectly on EURUSD but fail completely on Bitcoin or Gold. This forces you to constantly tweak settings to avoid false signals, and usually, by the time you adjust them, the move is over.
Kinetic Fusion Ultra Kinetic Fusion Ultra solves this by combining Stochastic Position (Static) with Adaptive Momentum (Velocity). At its core is a proprietary Adaptive Normalization Engine. This algorithm "learns" the volatility of the asset over the last 100 bars and auto-scales the momentum data to fit perfectly into a 0-100 oscillator window.
Whether you are scalping a 1-minute Crypto chart or swinging a Weekly Stock chart, the signals remain mathematically consistent.
Sizing Coach HUD Long and Short This HUD is designed as a systematic execution layer to bridge the gap between technical analysis and mechanical risk management. Its primary purpose is to eliminate the "discretionary gap"—the moment where a trader’s "feeling" about volatility or spreads causes hesitation.
By using this tool, you are not just watching price; you are managing a business where Risk is a constant and Size is a variable.
Core Functionality: The Position Sizing Engine
The HUD automates the math of "Capital-Based Tiers". Instead of choosing an arbitrary share size, the system calculates your position based on three predefined levels of conviction:
Tier 1 (1% Notional): Low-confidence or high-volatility "tester" positions.
Tier 2 (3% Notional): Standard, high-probability setups.
Tier 3 (5% Notional): High-conviction trades where multiple timeframes and factors align.
Execution Workflow (The Poka-Yoke)
To use this HUD effectively and eliminate the "hesitation" identified in the Five Whys analysis, follow this workflow:
Toggle Direction: Set the HUD to Long or Short based on your setup (e.g., NEMA Continuation).
Define Invalidation: Identify your technical stop (default is High/Low of Day +/- 5%). The HUD will automatically calculate the distance to this level.
Check Risk $: Observe the Risk $ row. This tells you exactly how much you will lose in dollars if the stop is hit. If the volatility is extreme (like the NASDAQ:SNDK 14% plunge), the HUD will automatically shrink your Shares count to keep this dollar amount constant.
Execute via HUD: Transmit the order using the Shares provided in your selected Tier. Do not manually adjust the size based on "gut feeling".
Trade Management: The "R" Focus
The bottom half of the HUD displays your Targets (PnL / R).
VWAP & Fibonacci Levels: Automatically plots and calculates profit targets at key institutional levels (VWAP, 0.618, 0.786, 0.886).
Binary Exit Logic: The color-coded logic flags any target that yields less than 1R (Reward-to-Risk) as a warning.
Systematic Holding: Ride the trade to the targets or until your technical exit (e.g., 1M candle close above/below NEMA) is triggered, ignoring the fluctuating P&L.
Hedge Mini Calculator (Avg Long/Short + Alerts) with dca
Hedge Mini Calculator is a position-management indicator for traders who use long & short hedging.
It plots:
Long average price
Short average price
Optional hedge close level (+% above hedge average)
The indicator also provides alerts when price reaches the long or short average, helping you manage hedge exits and directional bias with precision.
Designed for risk control, not signals.
🔹 How to Use (Simple & Clear)
1. Enter Your Positions
In the indicator settings:
Add the dollar amount and entry price for each long leg
Add the dollar amount and entry price for each short leg
Set your leverage (default x4)
The indicator does not connect to your exchange.
All values are entered manually.
2. Read the Lines
Avg Long line → average entry of all long positions
Avg Short line → average entry of all short positions
Hedge Close line (optional) → price level where you may close shorts and stay long
3. Use Alerts
You can create alerts for:
Price reaching Avg Long
Price reaching Avg Short
Alerts trigger when the candle touches the average price (high–low range).
4. Manage the Hedge
Typical workflow:
Keep both long & short active while price is inside the range
When price moves favorably and reaches your target level:
Close the hedge leg (usually shorts)
Keep the directional position (longs)
5. PnL Awareness
The info table shows:
Estimated Long PnL
Estimated Short PnL
Net PnL (based on margin & leverage)
These values are approximations for decision support.
⚠️ Disclaimer
This indicator is not a trading signal.
It is a position management tool for hedging, scaling, and risk control.
BarCoreLibrary "BarCore"
BarCore is a foundational library for technical analysis, providing essential functions for evaluating the structural properties of candlesticks and inter-bar relationships.
It prioritizes ratio-based metrics (0.0 to 1.0) over absolute prices, making it asset-agnostic and ideal for robust pattern recognition, momentum analysis, and volume-weighted pressure evaluation.
Key modules:
- Structure & Range: High-precision bar and body metrics with relative positioning.
- Wick Dynamics: Absolute and relative wick analysis for identifying price rejection.
- Inter-bar Logic: Containment, coverage, and quantitative price overlap (Ratio-based).
- Gap Intelligence: Real body and price gaps with customizable significance thresholds.
- Flow & Pressure: Volume-weighted buying/selling pressure and Money Flow metrics.
isBuyingBar()
Checks if the bar is a bullish (up) bar, where close is greater than open.
Returns: bool True if the bar closed higher than it opened.
isSellingBar()
Checks if the bar is a bearish (down) bar, where close is less than open.
Returns: bool True if the bar closed lower than it opened.
barMidpoint()
Calculates the absolute midpoint of the bar's total range (High + Low) / 2.
Returns: float The midpoint price of the bar.
barRange()
Calculates the absolute size of the bar's total range (High to Low).
Returns: float The absolute difference between high and low.
barRangeMidpoint()
Calculates half of the bar's total range size.
Returns: float Half the bar's range size.
realBodyHigh()
Returns the higher price between the open and close.
Returns: float The top of the real body.
realBodyLow()
Returns the lower price between the open and close.
Returns: float The bottom of the real body.
realBodyMidpoint()
Calculates the absolute midpoint of the bar's real body.
Returns: float The midpoint price of the real body.
realBodyRange()
Calculates the absolute size of the bar's real body.
Returns: float The absolute difference between open and close.
realBodyRangeMidpoint()
Calculates half of the bar's real body size.
Returns: float Half the real body size.
upperWickRange()
Calculates the absolute size of the upper wick.
Returns: float The range from high to the real body high.
lowerWickRange()
Calculates the absolute size of the lower wick.
Returns: float The range from the real body low to low.
openRatio()
Returns the location of the open price relative to the bar's total range (0.0 at low to 1.0 at high).
Returns: float The ratio of the distance from low to open, divided by the total range.
closeRatio()
Returns the location of the close price relative to the bar's total range (0.0 at low to 1.0 at high).
Returns: float The ratio of the distance from low to close, divided by the total range.
realBodyRatio()
Calculates the ratio of the real body size to the total bar range.
Returns: float The real body size divided by the bar range. Returns 0 if barRange is 0.
upperWickRatio()
Calculates the ratio of the upper wick size to the total bar range.
Returns: float The upper wick size divided by the bar range. Returns 0 if barRange is 0.
lowerWickRatio()
Calculates the ratio of the lower wick size to the total bar range.
Returns: float The lower wick size divided by the bar range. Returns 0 if barRange is 0.
upperWickToBodyRatio()
Calculates the ratio of the upper wick size to the real body size.
Returns: float The upper wick size divided by the real body size. Returns 0 if realBodyRange is 0.
lowerWickToBodyRatio()
Calculates the ratio of the lower wick size to the real body size.
Returns: float The lower wick size divided by the real body size. Returns 0 if realBodyRange is 0.
totalWickRatio()
Calculates the ratio of the total wick range (Upper Wick + Lower Wick) to the total bar range.
Returns: float The total wick range expressed as a ratio of the bar's total range. Returns 0 if barRange is 0.
isBodyExpansion()
Checks if the current bar's real body range is larger than the previous bar's real body range (body expansion).
Returns: bool True if realBodyRange() > realBodyRange() .
isBodyContraction()
Checks if the current bar's real body range is smaller than the previous bar's real body range (body contraction).
Returns: bool True if realBodyRange() < realBodyRange() .
isWithinPrevBar(inclusive)
Checks if the current bar's range is entirely within the previous bar's range.
Parameters:
inclusive (bool) : If true, allows equality (<=, >=). Default is false.
Returns: bool True if High < High AND Low > Low .
isCoveringPrevBar(inclusive)
Checks if the current bar's range fully covers the entire previous bar's range.
Parameters:
inclusive (bool) : If true, allows equality (<=, >=). Default is false.
Returns: bool True if High > High AND Low < Low .
isWithinPrevBody(inclusive)
Checks if the current bar's real body is entirely inside the previous bar's real body.
Parameters:
inclusive (bool) : If true, allows equality (<=, >=). Default is false.
Returns: bool True if the current body is contained inside the previous body.
isCoveringPrevBody(inclusive)
Checks if the current bar's real body fully covers the previous bar's real body.
Parameters:
inclusive (bool) : If true, allows equality (<=, >=). Default is false.
Returns: bool True if the current body fully covers the previous body.
isOpenWithinPrevBody(inclusive)
Checks if the current bar's open price falls within the real body range of the previous bar.
Parameters:
inclusive (bool) : If true, includes the boundary prices. Default is false.
Returns: bool True if the open price is between the previous bar's real body high and real body low.
isCloseWithinPrevBody(inclusive)
Checks if the current bar's close price falls within the real body range of the previous bar.
Parameters:
inclusive (bool) : If true, includes the boundary prices. Default is false.
Returns: bool True if the close price is between the previous bar's real body high and real body low.
isPrevOpenWithinBody(inclusive)
Checks if the previous bar's open price falls within the current bar's real body range.
Parameters:
inclusive (bool) : If true, includes the boundary prices. Default is false.
Returns: bool True if open is between the current bar's real body high and real body low.
isPrevCloseWithinBody(inclusive)
Checks if the previous bar's closing price falls within the current bar's real body range.
Parameters:
inclusive (bool) : If true, includes the boundary prices. Default is false.
Returns: bool True if close is between the current bar's real body high and real body low.
isOverlappingPrevBar()
Checks if there is any price overlap between the current bar's range and the previous bar's range.
Returns: bool True if the current bar's range has any intersection with the previous bar's range.
bodyOverlapRatio()
Calculates the percentage of the current real body that overlaps with the previous real body.
Returns: float The overlap ratio (0.0 to 1.0). 1.0 means the current body is entirely within the previous body's price range.
isCompletePriceGapUp()
Checks for a complete price gap up where the current bar's low is strictly above the previous bar's high, meaning there is zero price overlap between the two bars.
Returns: bool True if the current low is greater than the previous high.
isCompletePriceGapDown()
Checks for a complete price gap down where the current bar's high is strictly below the previous bar's low, meaning there is zero price overlap between the two bars.
Returns: bool True if the current high is less than the previous low.
isRealBodyGapUp()
Checks for a gap between the current and previous real bodies.
Returns: bool True if the current body is completely above the previous body.
isRealBodyGapDown()
Checks for a gap between the current and previous real bodies.
Returns: bool True if the current body is completely below the previous body.
gapRatio()
Calculates the percentage difference between the current open and the previous close, expressed as a decimal ratio.
Returns: float The gap ratio (positive for gap up, negative for gap down). Returns 0 if the previous close is 0.
gapPercentage()
Calculates the percentage difference between the current open and the previous close.
Returns: float The gap percentage (positive for gap up, negative for gap down). Returns 0 if previous close is 0.
isGapUp()
Checks for a basic gap up, where the current bar's open is strictly higher than the previous bar's close. This is the minimum condition for a gap up.
Returns: bool True if the current open is greater than the previous close (i.e., gapRatio is positive).
isGapDown()
Checks for a basic gap down, where the current bar's open is strictly lower than the previous bar's close. This is the minimum condition for a gap down.
Returns: bool True if the current open is less than the previous close (i.e., gapRatio is negative).
isSignificantGapUp(minRatio)
Checks if the current bar opened significantly higher than the previous close, as defined by a minimum percentage ratio.
Parameters:
minRatio (float) : The minimum required gap percentage ratio. Default is 0.03 (3%).
Returns: bool True if the gap ratio (open vs. previous close) is greater than or equal to the minimum ratio.
isSignificantGapDown(minRatio)
Checks if the current bar opened significantly lower than the previous close, as defined by a minimum percentage ratio.
Parameters:
minRatio (float) : The minimum required gap percentage ratio. Default is 0.03 (3%).
Returns: bool True if the absolute value of the gap ratio (open vs. previous close) is greater than or equal to the minimum ratio.
trueRangeComponentHigh()
Calculates the absolute distance from the current bar's High to the previous bar's Close, representing one of the components of the True Range.
Returns: float The absolute difference: |High - Close |.
trueRangeComponentLow()
Calculates the absolute distance from the current bar's Low to the previous bar's Close, representing one of the components of the True Range.
Returns: float The absolute difference: |Low - Close |.
isUpperWickDominant(minRatio)
Checks if the upper wick is significantly long relative to the total range.
Parameters:
minRatio (float) : Minimum ratio of the wick to the total bar range. Default is 0.7 (70%).
Returns: bool True if the upper wick dominates the bar's range.
isUpperWickNegligible(maxRatio)
Checks if the upper wick is very small relative to the total range.
Parameters:
maxRatio (float) : Maximum ratio of the wick to the total bar range. Default is 0.05 (5%).
Returns: bool True if the upper wick is negligible.
isLowerWickDominant(minRatio)
Checks if the lower wick is significantly long relative to the total range.
Parameters:
minRatio (float) : Minimum ratio of the wick to the total bar range. Default is 0.7 (70%).
Returns: bool True if the lower wick dominates the bar's range.
isLowerWickNegligible(maxRatio)
Checks if the lower wick is very small relative to the total range.
Parameters:
maxRatio (float) : Maximum ratio of the wick to the total bar range. Default is 0.05 (5%).
Returns: bool True if the lower wick is negligible.
isSymmetric(maxTolerance)
Checks if the upper and lower wicks are roughly equal in length.
Parameters:
maxTolerance (float) : Maximum allowable percentage difference between the two wicks. Default is 0.15 (15%).
Returns: bool True if wicks are symmetric within the tolerance level.
isMarubozuBody(minRatio)
Candle with a very large body relative to the total range (minimal wicks).
Parameters:
minRatio (float) : Minimum body size ratio. Default is 0.9 (90%).
Returns: bool True if the bar has minimal wicks (Marubozu body).
isLargeBody(minRatio)
Candle with a large body relative to the total range.
Parameters:
minRatio (float) : Minimum body size ratio. Default is 0.6 (60%).
Returns: bool True if the bar has a large body.
isSmallBody(maxRatio)
Candle with a small body relative to the total range.
Parameters:
maxRatio (float) : Maximum body size ratio. Default is 0.4 (40%).
Returns: bool True if the bar has small body.
isDojiBody(maxRatio)
Candle with a very small body relative to the total range (indecision).
Parameters:
maxRatio (float) : Maximum body size ratio. Default is 0.1 (10%).
Returns: bool True if the bar has a very small body.
isLowerWickExtended(minRatio)
Checks if the lower wick is significantly extended relative to the real body size.
Parameters:
minRatio (float) : Minimum required ratio of the lower wick length to the real body size. Default is 2.0 (Lower wick must be at least twice the body's size).
Returns: bool True if the lower wick's length is at least `minRatio` times the size of the real body.
isUpperWickExtended(minRatio)
Checks if the upper wick is significantly extended relative to the real body size.
Parameters:
minRatio (float) : Minimum required ratio of the upper wick length to the real body size. Default is 2.0 (Upper wick must be at least twice the body's size).
Returns: bool True if the upper wick's length is at least `minRatio` times the size of the real body.
isStrongBuyingBar(minCloseRatio, maxOpenRatio)
Checks for a bar with strong bullish momentum (open near low, close near high), indicating high conviction.
Parameters:
minCloseRatio (float) : Minimum required ratio for the close location (relative to range, e.g., 0.7 means close must be in the top 30%). Default is 0.7 (70%).
maxOpenRatio (float) : Maximum allowed ratio for the open location (relative to range, e.g., 0.3 means open must be in the bottom 30%). Default is 0.3 (30%).
Returns: bool True if the bar is bullish, opened in the low extreme, and closed in the high extreme.
isStrongSellingBar(maxCloseRatio, minOpenRatio)
Checks for a bar with strong bearish momentum (open near high, close near low), indicating high conviction.
Parameters:
maxCloseRatio (float) : Maximum allowed ratio for the close location (relative to range, e.g., 0.3 means close must be in the bottom 30%). Default is 0.3 (30%).
minOpenRatio (float) : Minimum required ratio for the open location (relative to range, e.g., 0.7 means open must be in the top 30%). Default is 0.7 (70%).
Returns: bool True if the bar is bearish, opened in the high extreme, and closed in the low extreme.
isWeakBuyingBar(maxCloseRatio, maxBodyRatio)
Identifies a bar that is technically bullish but shows significant weakness, characterized by a failure to close near the high and a small body size.
Parameters:
maxCloseRatio (float) : Maximum allowed ratio for the close location relative to the range (e.g., 0.6 means the close must be in the bottom 60% of the bar's range). Default is 0.6 (60%).
maxBodyRatio (float) : Maximum allowed ratio for the real body size relative to the bar's range (e.g., 0.4 means the body is small). Default is 0.4 (40%).
Returns: bool True if the bar is bullish, but its close is weak and its body is small.
isWeakSellingBar(minCloseRatio, maxBodyRatio)
Identifies a bar that is technically bearish but shows significant weakness, characterized by a failure to close near the low and a small body size.
Parameters:
minCloseRatio (float) : Minimum required ratio for the close location relative to the range (e.g., 0.4 means the close must be in the top 60% of the bar's range). Default is 0.4 (40%).
maxBodyRatio (float) : Maximum allowed ratio for the real body size relative to the bar's range (e.g., 0.4 means the body is small). Default is 0.4 (40%).
Returns: bool True if the bar is bearish, but its close is weak and its body is small.
balanceOfPower()
Measures the net pressure of buyers vs. sellers within the bar, normalized to the bar's range.
Returns: float A value between -1.0 (strong selling) and +1.0 (strong buying), representing the strength and direction of the close relative to the open.
buyingPressure()
Measures the net buying volume pressure based on the close location and volume.
Returns: float A numerical value representing the volume weighted buying pressure.
sellingPressure()
Measures the net selling volume pressure based on the close location and volume.
Returns: float A numerical value representing the volume weighted selling pressure.
moneyFlowMultiplier()
Calculates the Money Flow Multiplier (MFM), which is the price component of Money Flow and CMF.
Returns: float A normalized value from -1.0 (strong selling) to +1.0 (strong buying), representing the net directional pressure.
moneyFlowVolume()
Calculates the Money Flow Volume (MFV), which is the Money Flow Multiplier weighted by the bar's volume.
Returns: float A numerical value representing the volume-weighted money flow. Positive = buying dominance; negative = selling dominance.
isAccumulationBar()
Checks for basic accumulation on the current bar, requiring both positive Money Flow Volume and a buying bar (closing higher than opening).
Returns: bool True if the bar exhibits buying dominance through its internal range location and is a buying bar.
isDistributionBar()
Checks for basic distribution on the current bar, requiring both negative Money Flow Volume and a selling bar (closing lower than opening).
Returns: bool True if the bar exhibits selling dominance through its internal range location and is a selling bar.
LEVENT: Lifetime Estimation via Efficiency-Regime EventLEVENT — Lifetime Estimation via Efficiency-Regime Event Transitions
LEVENT is a research-grade indicator that estimates the remaining structural lifetime of the current market regime.
Unlike trend, volatility, or momentum tools, LEVENT does not measure price movement — it measures how long the current market structure is likely to survive before breaking.
This script implements the LEVENT model published on Zenodo (Bülent Duman, 2026) and is built on top of the open-source DERYA (Dynamic Efficiency Regime Yield Analyzer) microstructural efficiency framework.
What LEVENT measures
LEVENT outputs a single continuous variable L that represents the remaining survival capacity of the active efficiency regime.
High L → the current regime has strong structural endurance
Falling L → the regime is consuming its capacity
L → 0 → regime exhaustion and elevated probability of transition
This makes LEVENT a forward-looking structural time variable, not a price indicator.
What is inside this script
This implementation contains the following components:
1. DERYA (open-source microstructure efficiency)
DERYA is computed from OHLC data as:
Net close-to-close movement divided by total intrabar range
It is smoothed with an EMA and normalized over a rolling window to produce a bounded efficiency state (0–100).
This is an open-source indicator and is explicitly credited in the LEVENT paper.
2. Transition Strength (S)
S measures how unstable the regime is by combining:
the slope of DERYA
the acceleration of DERYA
This is not RSI, MACD, or ATR — it is a state-transition intensity metric.
3. Regime Engine
Markets are classified into four structural regimes:
Expansion
Exhaustion
Collapse
Base / Recovery
A debounce + persistence filter is used to avoid noise-based flickering.
4. Structural Lifetime (LEVENT L)
Each regime is assigned a capacity (Λ) and a fragility (α).
LEVENT then evolves as a jump-and-countdown survival process:
On regime change → L resets to full capacity
Inside a regime → L decays deterministically
High instability → faster decay
This is not a moving average, oscillator, or probability estimate — it is a structural survival clock.
How to use LEVENT
LEVENT is designed to be used as a regime-health overlay, not a buy/sell trigger.
Typical uses:
Detect late-stage trends when L is low
Avoid initiating positions when the regime is near collapse
Compare structural stability across assets
Combine with price, trend, or volume systems
Do not use LEVENT alone as a trading signal.
LEVENT tells you “how long the structure may last”, not “where price will go.”
Visuals
Background colors show the current regime
The LEVENT line shows remaining structural lifetime
A table displays the active regime and current L value
Important notes
LEVENT is not RSI, MACD, ATR, or trend
LEVENT does not predict price direction
LEVENT does not issue entry/exit signals
LEVENT is a research-grade structural model
The DERYA component used here is an open-source microstructural efficiency estimator and is credited accordingly.
Risk and disclaimer
This script is provided for research and analytical purposes only.
It is not financial advice and must not be used as a standalone trading system.
Markets are uncertain.
All trading decisions and risks remain entirely the responsibility of the user.
LEVENT: Lifetime Estimation via Efficiency-regime Event Transitions
Introducing a Regime-Dependent Structural Lifetime Estimator for Financial Markets Using OHLC Data
Author: DUMAN,Bülent
Affiliation: Independent Researcher
zenodo.org






















