Kelly Optimal Leverage IndicatorThe Kelly Optimal Leverage Indicator mathematically applies Kelly Criterion to determine optimal position sizing based on market conditions.
This indicator helps traders answer the critical question: "How much capital should I allocate to this trade?"
Note that "optimal position sizing" does not equal the position sizing that you should have. The Optima position sizing given by the indicator is based on historical data and cannot predict a crash, in which case, high leverage could be devastating.
Originally developed for gambling scenarios with known probabilities, the Kelly formula has been adapted here for financial markets to dynamically calculate the optimal leverage ratio that maximizes long-term capital growth while managing risk.
Key Features
Kelly Position Sizing: Uses historical returns and volatility to calculate mathematically optimal position sizes
Multiple Risk Profiles: Displays Full Kelly (aggressive), 3/4 Kelly (moderate), 1/2 Kelly (conservative), and 1/4 Kelly (very conservative) leverage levels
Volatility Adjustment: Automatically recommends appropriate Kelly fraction based on current market volatility
Return Smoothing: Option to use log returns and smoothed calculations for more stable signals
Comprehensive Table: Displays key metrics including annualized return, volatility, and recommended exposure levels
How to Use
Interpret the Lines: Each colored line represents a different Kelly fraction (risk tolerance level). When above zero, positive exposure is suggested; when below zero, reduce exposure. Note that this is based on historical returns. I personally like to increase my exposure during market downturns, but this is hard to illustrate in the indicator.
Monitor the Table: The information panel provides precise leverage recommendations and exposure guidance based on current market conditions.
Follow Recommended Position: Use the "Recommended Position" guidance in the table to determine appropriate exposure level.
Select Your Risk Profile: Conservative traders should follow the Half Kelly or Quarter Kelly lines, while more aggressive traders might consider the Three-Quarter or Full Kelly lines.
Adjust with Volatility: During high volatility periods, consider using more conservative Kelly fractions as recommended by the indicator.
Mathematical Foundation
The indicator calculates the optimal leverage (f*) using the formula:
f* = μ/σ²
Where:
μ is the annualized expected return
σ² is the annualized variance of returns
This approach balances potential gains against risk of ruin, offering a scientific framework for position sizing that maximizes long-term growth rate.
Notes
The Full Kelly is theoretically optimal for maximizing long-term growth but can experience significant drawdowns. You should almost never use full kelly.
Most practitioners use fractional Kelly strategies (1/2 or 1/4 Kelly) to reduce volatility while capturing most of the growth benefits
This indicator works best on daily timeframes but can be applied to any timeframe
Negative Kelly values suggest reducing or eliminating market exposure
The indicator should be used as part of a complete trading system, not in isolation
Enjoy the indicator! :)
P.S. If you are really geeky about the Kelly Criterion, I recommend the book The Kelly Capital Growth Investment Criterion by Edward O. Thorp and others.
Indicators and strategies
Breakout LabelsThis script labels the highest price of the lowest candle over a period of time. It then labels any bullish breakouts where the close price is higher than the high of the lowest candle.
Crypto Risk-Weighted Allocation SuiteCrypto Risk-Weighted Allocation Suite
This indicator is designed to help users explore dynamic portfolio allocation frameworks for the crypto market. It calculates risk-adjusted allocation weights across major crypto sectors and cash based on multi-factor momentum and volatility signals. Best viewed on INDEX:BTCUSD 1D chart. Other charts and timeframes may give mixed signals and incoherent allocations.
🎯 How It Works
This model systematically evaluates the relative strength of:
BTC Dominance (CRYPTOCAP:BTC.D)
Represents Bitcoin’s share of the total crypto market. Rising dominance typically indicates defensive market phases or BTC-led trends.
ETH/BTC Ratio (BINANCE:ETHBTC)
Gauges Ethereum’s relative performance versus Bitcoin. This provides insight into whether ETH is leading risk appetite.
SOL/BTC Ratio (BINANCE:SOLBTC)
Measures Solana’s performance relative to Bitcoin, capturing mid-cap layer-1 strength.
Total Market Cap excluding BTC and ETH (CRYPTOCAP:TOTAL3ES)
Represents Altcoins as a broad category, reflecting appetite for higher-risk assets.
Each of these series is:
✅ Converted to a momentum slope over a configurable lookback period.
✅ Standardized into Z-scores to normalize changes relative to recent behavior.
✅ Smoothed optionally using a Hull Moving Average for cleaner signals.
✅ Divided by ATR-based volatility to create a risk-weighted score.
✅ Scaled to proportionally allocate exposure, applying user-configured minimum and maximum constraints.
🪙 Dynamic Allocation Logic
All signals are normalized to sum to 100% if fully confident.
An overall confidence factor (based on total signal strength) scales the allocation up or down.
Any residual is allocated to cash (unallocated capital) for conservative exposure.
The script automatically avoids “all-in” bias and prevents negative allocations.
📊 Outputs
The indicator displays:
Market Phase Detection (which asset class is currently leading)
Risk Mode (Risk On, Neutral, Risk Off)
Dynamic Allocations for BTC, ETH, SOL, Alts, and Cash
Optional momentum plots for transparency
🧠 Why This Is Unique
Unlike simple dominance indicators or crossovers, this model:
Integrates multiple cross-asset signals (BTC, ETH, SOL, Alts)
Adjusts exposure proportionally to signal strength
Normalizes by volatility, dynamically scaling risk
Includes configurable constraints to reflect your own risk tolerance
Provides a cash fallback allocation when conviction is low
Is entirely non-repainting and based on daily closing data
⚠️ Disclaimer
This script is provided for educational and informational purposes only.
It is not financial advice and should not be relied upon to make investment decisions.
Past performance does not guarantee future results.
Always consult a qualified financial advisor before acting on any information derived from this tool.
🛠 Recommended Use
As a framework to visualize relative momentum and risk-adjusted allocations
For research and backtesting ideas on portfolio allocation across crypto sectors
To help build your own risk management process
This script is not a turnkey strategy and should be customized to fit your goals.
✅ Enjoy exploring dynamic crypto allocations responsibly!
Low Price RSI CrossoverThis Pine Script indicator is a Multi-Timeframe Low RSI Crossover system that combines three key filtering criteria to identify high-probability buy signals. Here's what it does:
Core Concept
The indicator only generates buy signals when all three conditions are met simultaneously:
Price at Multi-Period Low: Current price must be at or near the lowest point within your selected timeframe (1 week to 5 years, or custom)
RSI Momentum Shift: The smoothed RSI must cross above its signal line (EMA), indicating upward momentum
Below Threshold Entry: Both the RSI and its signal line must be below your threshold level (default 50) when the crossover occurs
Key Features
RSI Smoothing: Uses Hull Moving Average (HMA) to smooth the raw RSI, reducing noise and false signals while maintaining responsiveness.
Flexible Timeframes: Choose from predefined periods (1W, 2W, 3W, 1M, 2M, 3M, 6M, 9M, 1Y, 2Y, 3Y, 5Y) or set a custom number of bars.
Visual Feedback:
Plots the smoothed RSI (blue line) and its signal line (red line)
Shows threshold and overbought levels
Highlights signal bars with green background
Displays tiny green triangles at signal points
Real-time status table showing all conditions
Trading Logic
This is essentially a mean-reversion strategy that waits for:
Price to reach significant lows (value zone)
Momentum to start shifting upward (RSI crossover)
Entry from oversold/neutral territory (below 50 RSI)
Why This Works
By requiring price to be at multi-period lows, you avoid buying during downtrends or sideways chop. The RSI crossover confirms that selling pressure is starting to ease, while the threshold filter ensures you're not buying into overbought conditions.
The combination of these filters should significantly reduce false signals compared to using any single indicator alone.
Logistic Regression ICT FVG🚀 OVERVIEW
Welcome to the Logistic Regression Fair Value Gap (FVG) System — a next-gen trading tool that blends precision gap detection with machine learning intelligence.
Unlike traditional FVG indicators, this one evolves with each bar of price action, scoring and filtering gaps based on real market behavior.
🔧 CORE FEATURES
✨ Smart Gap Detection
Automatically identifies bullish and bearish Fair Value Gaps using volatility-aware candle logic.
📊 Probability-Based Filtering
Uses logistic regression to assign each gap a confidence score (0 to 1), showing only high-probability setups.
🔁 Real-Time Retest Tracking
Continuously watches how price interacts with each gap to determine if it deserves respect.
📈 Multi-Factor Assessment
Evaluates RSI, MACD, and body size at gap formation to build a full context snapshot.
🧠 Self-Learning Engine
The logistic regression model updates on each bar using gradient descent, refining its predictions over time.
📢 Built-In Alerts
Get instant alerts when a gap forms, gets retested, or breaks.
🎨 Custom Display Options
Control the color of bullish/bearish zones, and toggle on/off probability labels for cleaner charts.
🚩 WHAT MAKES IT DIFFERENT
This isn’t just another box-drawing indicator.
While others mark every imbalance, this system thinks before it draws — using statistical modeling to filter out noise and prioritize high-impact zones.
By learning from how price behaves around gaps (not just how they form), it helps you trade only what matters — not what clutters.
⚙️ HOW IT WORKS
1️⃣ Detection
FVGs are identified using ATR-based thresholds and sharp wick imbalances.
2️⃣ Behavior Monitoring
Every gap is tracked — and if respected enough times, it becomes part of the elite training set.
3️⃣ Context Capture
Each new FVG logs RSI, MACD, and body size to provide a feature-rich context for prediction.
4️⃣ Prediction (Logistic Regression)
The model predicts how likely the gap is to be respected and assigns it a probability score.
5️⃣ Classification & Alerts
Gaps above the threshold are plotted with score labels, and alerts trigger for entry/respect/break.
⚙️ CONFIGURATION PANEL
🔧 System Inputs
• Max Retests – How many times a gap must be respected to train the model
• Prediction Threshold – Minimum score to show a gap on the chart
• Learning Rate – Controls how fast the model adapts (default: 0.009)
• Max FVG Lifetime – Expiration duration for unused gaps
• Show Historic Gaps – Show/hide expired or invalidated gaps
🎨 Visual Options
• Bullish/Bearish Colors – Set gap colors to fit your chart style
• Confidence Labels – Show probability scores next to FVGs
• Alert Toggles – Enable alerts for:
– New FVG detected
– FVG respected (entry)
– FVG invalidated (break)
💡 WHY LOGISTIC REGRESSION?
Traditional FVG tools rely on candle shapes.
This system relies on probability — by training on RSI, MACD, and price behavior, it predicts whether a gap will act as a true liquidity zone.
Logistic regression lets the system continuously adapt using new data, making it more accurate the longer it runs.
That means smarter signals, fewer false positives, and a clearer view of where real opportunities lie.
Greer Book Value Yield📘 Script Title
Greer Book Value Yield – Valuation Insight Based on Balance Sheet Strength
🧾 Description
Greer Book Value Yield is a valuation-focused indicator in the Greer Financial Toolkit, designed to evaluate how much net asset value (book value) a company provides per share relative to its current market price. This script calculates the Book Value Per Share Yield (BV%) using the formula:
Book Value Yield (%) = Book Value Per Share ÷ Stock Price × 100
This yield helps investors assess whether a stock is trading at a discount or premium to its underlying assets. It dynamically highlights when the yield is:
🟢 Above its historical average (potentially undervalued)
🔴 Below its historical average (potentially overvalued)
🔍 Use Case
Analyze valuation through asset-based metrics
Identify buy opportunities when book value yield is historically high
Combine with other scripts in the Greer Financial Toolkit:
📘 Greer Value – Tracks year-over-year growth consistency across six key metrics
📊 Greer Value Yields Dashboard – Visualizes multiple valuation-based yields
🟢 Greer BuyZone – Highlights long-term technical buy zones
🛠️ Inputs & Data
Uses Book Value Per Share (BVPS) from TradingView’s financial database (Fiscal Year)
Calculates and compares against a static average yield to assess historical valuation
Clean visual feedback via dynamic coloring and overlays
⚠️ Disclaimer
This tool is for educational and informational purposes only and should not be considered financial advice. Always conduct your own research before making investment decisions.
Greer EPS Yield📘 Script Title
Greer EPS Yield – Valuation Insight Based on Earnings Productivity
🧾 Description
Greer EPS Yield is a valuation-focused indicator from the Greer Financial Toolkit, designed to evaluate how efficiently a company generates earnings relative to its current stock price. This script calculates the Earnings Per Share Yield (EPS%), using the formula:
EPS Yield (%) = Earnings Per Share ÷ Stock Price × 100
This yield metric provides a quick snapshot of valuation through the lens of profitability per share. It dynamically highlights when the EPS yield is:
🟢 Above its historical average (potentially undervalued)
🔴 Below its historical average (potentially overvalued)
🔍 Use Case
Quickly assess valuation attractiveness based on earnings yield.
Identify potential buy opportunities when EPS% is above its long-term average.
Combine with other indicators in the Greer Financial Toolkit for a fundamentals-driven investment strategy:
📘 Greer Value – Tracks year-over-year growth consistency across six key metrics
📊 Greer Value Yields Dashboard – Visualizes valuation-based yield metrics
🟢 Greer BuyZone – Highlights long-term technical buy zones
🛠️ Inputs & Data
Uses fiscal year EPS data from TradingView’s built-in financial database.
Tracks a static average EPS Yield to compare current valuation to historical norms.
Clean, intuitive visual with automatic color coding.
⚠️ Disclaimer
This tool is for educational and informational purposes only and should not be considered financial advice. Always conduct your own research before making investment decisions.
ArraysAssorted🟩 OVERVIEW
This library provides utility methods for working with arrays in Pine Script. The first method finds extreme values (highest/lowest) within a rolling lookback window and returns both the value and its position. I might extend the library for other ad-hoc methods I use to work with arrays.
🟩 HOW TO USE
Pine Script libraries contain reusable code for importing into indicators. You do not need to copy any code out of here. Just import the library and call the method you want.
For example, for version 1 of this library, import it like this:
import SimpleCryptoLife/ArraysAssorted/1
See the EXAMPLE USAGE sections within the library for examples of calling the methods.
You do not need permission to use Pine libraries in your open-source scripts.
However, you do need explicit permission to reuse code from a Pine Script library’s functions in a public protected or invite-only publication .
In any case, credit the author in your description. It is also good form to credit in open-source comments.
For more information on libraries and incorporating them into your scripts, see the Libraries section of the Pine Script User Manual.
🟩 METHOD 1: m_getHighestLowestFloat()
Finds the highest or lowest float value from an array. Simple enough. It also returns the index of the value as an offset from the end of the array.
• It works with rolling lookback windows, so you can find extremes within the last N elements
• It includes an offset parameter to skip recent elements if needed
• It handles edge cases like empty arrays and invalid ranges gracefully
• It can find either the first or last occurrence of the extreme value
We also export two enums whose sole purpose is to look pretty as method arguments.
method m_getHighestLowestFloat(_self, _highestLowest, _lookbackBars, _offset, _firstLastType)
Namespace types: array
This method finds the highest or lowest value in a float array within a rolling lookback window, and returns the value along with the offset (number of elements back from the end of the array) of its first or last occurrence.
Parameters:
_self (array) : The array of float values to search for extremes.
_highestLowest (HighestLowest) : Whether to search for the highest or lowest value. Use the enum value HighestLowest.highest or HighestLowest.lowest.
_lookbackBars (int) : The number of array elements to include in the rolling lookback window. Must be positive. Note: Array elements only correspond to bars if the consuming script always adds exactly one element on consecutive bars.
_offset (int) : The number of array elements back from the end of the array to start the lookback window. A value of zero means no offset. The _offset parameter offsets both the beginning and end of the range.
_firstLastType (FirstLast) : Whether to return the offset of the first (lowest index) or last (highest index) occurrence of the extreme value. Use FirstLast.first or FirstLast.last.
Returns: (tuple) A tuple containing the highest or lowest value and its offset -- the number of elements back from the end of the array. If not found, returns . NOTE: The _offsetFromEndOfArray value is not affected by the _offset parameter. In other words, it is not the offset from the end of the range but from the end of the array. This number may or may not have any relation to the number of *bars* back, depending on how the array is populated. The calling code needs to figure that out.
EXPORTED ENUMS
HighestLowest
Whether to return the highest value or lowest value in the range.
• highest : Find the highest value in the specified range
• lowest : Find the lowest value in the specified range
FirstLast
Whether to return the first (lowest index) or last (highest index) occurrence of the extreme value.
• first : Return the offset of the first occurrence of the extreme value
• last : Return the offset of the last occurrence of the extreme value
Bullish & Bearish Wick MarkerMarks bullish and bearish engulfing candles
Bullish engulfing candle:
when the low is lower than the previous candle low and the body close is higher than the previous candle body
Bearish engulfing cande:
when the high is higher than the previous candle high and the body close is lower than the previous candle body
Custom Daily Session Zones by KoenigseggCustom Daily Session Zones
🟣 Description
This indicator displays customizable trading session time zones as background highlights on your chart, on any timeframe you choose. The inline info tooltip provides the precise start and end times of the three largest market sessions—the US, the EU, and ASIA—for quick reference. It provides flexible control over session times for different days of the week, making it ideal for traders who need to visualize specific market hours or trading sessions.
🟣 Key Features
- Flexible Session Configuration: Set a common session time for all days or customize individual sessions for each day of the week
- Per-Day Control: Enable or disable sessions for specific days (Monday through Sunday)
- Color Customization: Choose unique colors for each day's session zones
- UTC Timezone Standard: All session times are defined in UTC to ensure consistency across charts
- Clean Visual Display: Non-intrusive background highlighting that doesn't interfere with price action
🟣 How to Use
- Common Session Mode: Use the default mode to apply the same session time across all enabled days
- Manual Per-Day Mode: Enable "Manual per-day sessions" to set different session times for each day
- Day Selection: Toggle individual days on/off based on your trading schedule
- Color Coding: Customize colors for each day to easily distinguish between different sessions
🟣 Technical Details
- Uses Pine Script v6 for optimal performance
- Implements proper session time detection using TradingView's built-in time functions
- Operates in UTC timezone for all session calculations
- Lightweight code that doesn't impact chart performance
🟣 Use Cases
- Highlight specific trading sessions (London, New York, Tokyo, etc.)
- Mark important market hours for your trading strategy
- Visualize different session overlaps
- Create custom trading time windows
- Track market activity during specific hours
🟣 Compatibility
- Works on all timeframes
- Compatible with all asset classes (Forex, Stocks, Crypto, Futures, etc.)
- Supports all TradingView chart types
- Responsive design that adapts to different screen sizes
🟣 Image Descriptions
- First Image (main image): Shows multiple New York Stock Exchange sessions from 1:30 p.m. to 8:00 p.m. (UTC), on the 15-minute timeframe, with each day’s zone colored differently to demonstrate the indicator’s customizable color settings.
- Second Image: A zoomed‑in fractal chart view of the same New York session on the 15-minute timeframe, illustrating how the background session zone appears even at higher detail levels.
Third Image: A close‑up of the New York session (1:30 p.m. to 8:00 p.m.) on the 3-minute timeframe, reaffirming the consistency of zone highlighting across different zoom levels.
🟣 Future Updates (v2)
In the next release, you’ll be able to define multiple session blocks per day—displaying two distinct colored zones within the same trading day. This will help you visualize when one market session ends and another begins without losing chart clarity.
🟣 Conclusion
This indicator is perfect for traders who need precise control over Market Session visualization and want to maintain a clean, professional chart appearance.
🟣 Disclaimer
This script is provided for educational and illustrative purposes only. It is not financial or trading advice, nor a recommendation to buy or sell any asset. Always conduct your own research and consult a professional before making any trading decisions.
GX Credit Spread SignalThe GX Credit Spread Signal is an advanced indicator designed for traders who trade options strategies on the SPX index, especially using vertical credit spreads. It combines traditional technical analysis with volatility and option pricing concepts to provide relevant signals and projections on the chart.
Main features:
Trend analysis: Uses opening gap, position relative to VWAP and simple moving average (SMA 50) to indicate bullish or bearish bias right after the first 15-minute candle.
Safe range projection: Calculates a range based on the ATR (Average True Range) multiplied by a safety factor, suggesting potential strikes for credit spreads.
Quantitative estimates:
Calculates the estimated delta of options via the Black-Scholes formula approximation.
Estimated probability of expiring out of the money (OTM).
Chart visualizations: Displays projected ATR lines, previous day's levels (high, low, close) and an informative panel with strikes, delta, OTM probability, ATR and VWAP data.
Configurable alerts: Notifications for detected bullish or bearish bias, helping the trader to identify opportunities quickly.
This indicator is ideal for those who day trade with SPX options, facilitating decision-making by combining technical analysis, volatility and option probabilities in one place.
Fast Fourier Transform [ScorsoneEnterprises]The SCE Fast Fourier Transform (FFT) is a tool designed to analyze periodicities and cyclical structures embedded in price. This is a Fourier analysis to transform price data from the time domain into the frequency domain, showing the rhythmic behaviors that are otherwise invisible on standard charts.
Instead of merely observing raw prices, this implementation applies the FFT on the logarithmic returns of the asset:
Log Return(𝑚) = log(close / close )
This ensures stationarity and stabilizes variance, making the analysis statistically robust and less influenced by trends or large price swings.
For a user-defined lookback window 𝑁:
Each frequency component 𝑘 is computed by summing real and imaginary projections of log-returns multiplied by complex exponential functions:
𝑒^−𝑖𝜃 = cos(𝜃)−𝑖sin(𝜃)
where:
θ = 2πkm / N
he result is the magnitude spectrum, calculated as:
Magnitude(𝑘) = sqrt(Real_Sum(𝑘)^2 + Imag_Sum(𝑘)^2)
This spectrum represents the strength of oscillations at each frequency over the lookback period, helping traders identify dominant cycles.
Visual Analysis & Interpretation
To give traders context for the FFT spectrum’s values, this script calculates:
25th Percentile (Purple Line)
Represents relatively low cyclical intensity.
Values below this threshold may signal quiet, noisy, or trendless periods.
75th Percentile (Red Line)
Represents heightened cyclical dominance.
Values above this threshold may indicate significant periodic activity and potential trend formation or rhythm in price action.
The FFT magnitude of the lowest frequency component (index 0) is plotted directly on the chart in teal. Observing how this signal fluctuates relative to its percentile bands provides a dynamic measure of cyclical market activity.
Chart examples
In this NYSE:CL chart, we see the regime of the price accurately described in the spectral analysis. We see the price above the 75th percentile continue to trend higher until it breaks back below.
In long trending markets like NYSE:PL has been, it can give a very good explanation of the strength. There was confidence to not switch regimes as we never crossed below the 75th percentile early in the move.
The script is also usable on the lower timeframes. There is no difference in the usability from the different timeframes.
Script Parameters
Lookback Value (N)
Default: 30
Defines how many bars of data to analyze. Larger N captures longer-term cycles but may smooth out shorter-term oscillations.
Candles by Day, Time, Month + StatsThis Pine Script allows you to filter and display candles based on:
📅 Specific days of the week
🕒 Custom intraday time ranges (e.g., 9:15 to 10:30)
📆 Selected months
📊 Shows stats for each filtered block:
🔼 Range (High – Low)
📏 Average candle body size
⚙️ Key Features:
✅ Filter by day, time, and month
🎛 Toggle to show/hide the stats label
🟩 Candles are drawn only for selected conditions
📍 Stats label is positioned above session high (adjustable)
⚠️ Important Setup Instructions:
✅ 1. Use it on a blank chart
To avoid overlaying with default candles:
Open the chart of your preferred symbol
Click on the chart type (top toolbar: "Candles", "Bars", etc.)
Select "Blank" from the dropdown (this will hide all native candles)
Apply this indicator
This ensures only the filtered candles from the script are visible.
Adjust for your local timezone
This script uses a hardcoded timezone: "Asia/Kolkata"
If you are in a different timezone, change it to your own (e.g. "America/New_York", "Europe/London", etc.) in all instances of:
time(timeframe.period, "Asia/Kolkata")
timestamp("Asia/Kolkata", ...)
Use Cases:
Opening range behavior on specific weekdays/months
Detecting market anomalies during exact windows
Building visual logs of preferred trade hours
Random Coin Toss Strategy📌 Overview
This strategy is a probability-based trading simulation that randomly decides trade direction using a coin-toss mechanism and executes trades with a customizable risk-reward ratio. It's designed primarily for testing entry frequency and risk dynamics, not predictive accuracy.
🎯 Core Concept
Every N bars (configurable), the strategy performs a pseudo-random coin toss.
Based on the result:
If heads → Buy
If tails → Sell
Once a position is opened, it sets a Stop-Loss (SL) and Take-Profit (TP) based on a multiple of the current ATR (Average True Range) value.
⚙️ Configurable Inputs
ATR Length Period for ATR calculation, determines volatility basis.
SL Multiplier SL distance = ATR × multiplier (e.g., 1.0 means 1x ATR) .
TP Multiplier TP distance = ATR × multiplier (e.g., 2.0 = 2x ATR) .
Entry Frequency Bars to wait between each new coin toss decision.
Show TP/SL Zones Toggle on/off for drawing visual TP and SL zones.
Box Size Number of bars used to define the width of the TP/SL boxes.
🔁 Entry & Exit Logic
Entry:
Happens only when no current position exists and it's the correct bar interval.
Entry direction is randomly decided.
Exit:
Positions exit at either:
Take-Profit (TP) level
Stop-Loss (SL) level
Both are calculated using the configured ATR-based distances.
🖼️ Visual Features
TP and SL zones:
Rendered as shaded rectangles (boxes) only once per trade.
Green box for TP zone, red box for SL zone.
Automatically deleted and redrawn for each new trade to avoid chart clutter.
ATR Display Table:
A minimal info table at the top-right shows the current ATR value.
Updates every few bars for performance.
🧪 Use Cases
Ideal for risk-reward modeling, strategy prototyping, and understanding how volatility-based SL/TP behavior affects results.
Great for backtesting frequency, RR tweaks (e.g., 2:5 or 3:1), and execution structure in random conditions.
⚠️ Disclaimer
Since the trade direction is random, this script is not meant for predictive trading but serves as a powerful experiment framework for studying how SL, TP, and volatility interact with random chance in a controlled, repeatable system.
Repeating Trend HighlighterThis custom indicator helps you see when the current price trend is similar to a past trend over the same number of candles. Think of it like checking whether the market is repeating itself.
You choose three settings:
• Lookback Period: This is how many candles you want to measure. For example, if you set it to 10, it looks at the price change over the last 10 bars.
• Offset Bars Ago: This tells the indicator how far back in time to look for a similar move. If you set it to 50, it compares the current move to what happened 50 bars earlier.
• Tolerance (%): This is how closely the moves must match to be considered similar. A smaller number means you only get a signal if the moves are almost the same, while a larger number allows more flexibility.
When the current price move is close enough to the past move you picked, the background of your chart turns light green. This makes it easy to spot repeating trends without studying numbers manually.
You’ll also see two lines under your chart if you enable them: a blue line showing the percentage change of the current move and an orange line showing the change in the past move. These help you compare visually.
This tool is useful in several ways. You can use it to confirm your trading setups, for example if you suspect that a strong rally or pullback is happening again. You can also use it to filter trades by combining it with other indicators, so you only enter when trends repeat. Many traders use it as a learning tool, experimenting with different lookback periods and offsets to understand how often similar moves happen.
If you are a scalper working on short timeframes, you can set the lookback to a small number like 3–5 bars. Swing traders who prefer daily or weekly charts might use longer lookbacks like 20–30 bars.
Keep in mind that this indicator doesn’t guarantee price will move the same way again—it only shows similarity in how price changed over time. It works best when you use it together with other signals or market context.
In short, it’s like having a simple spotlight that tells you: “This move looks a lot like what happened before.” You can then decide if you want to act on that information.
If you’d like, I can help you tweak the settings or combine it with alerts so it notifies you when these patterns appear.
EVaR Indicator and Position SizingThe Problem:
Financial markets consistently show "fat-tailed" distributions where extreme events occur with higher frequency than predicted by normal distributions (Gaussian or even log-normal). These fat tails manifest in sudden price crashes, volatility spikes, and black swan events that traditional risk measures like volatility can underestimate. Standard deviation and conventional VaR calculations assume normally distributed returns, leaving traders vulnerable to severe drawdowns during market stress.
Cryptocurrencies and volatile instruments display particularly pronounced fat-tailed behavior, with extreme moves occurring 5-10 times more frequently than normal distribution models would predict. This reality demands a more sophisticated approach to risk measurement and position sizing.
The Solution: Entropic Value at Risk (EVAR)
EVaR addresses these limitations by incorporating principles from statistical mechanics and information theory through Tsallis entropy. This advanced approach captures the non-linear dependencies and power-law distributions characteristic of real financial markets.
Entropy is more adaptive than standard deviations and volatility measures.
I was inspired to create this indicator after reading the paper " The End of Mean-Variance? Tsallis Entropy Revolutionises Portfolio Optimisation in Cryptocurrencies " by by Sana Gaied Chortane and Kamel Naoui.
Key advantages of EVAR over traditional risk measures:
Superior tail risk capture: More accurately quantifies the probability of extreme market moves
Adaptability to market regimes: Self-calibrates to changing volatility environments
Non-parametric flexibility: Makes less assumptions about the underlying return distribution
Forward-looking risk assessment: Better anticipates potential market changes (just look at the charts :)
Mathematically, EVAR is defined as:
EVAR_α(X) = inf_{z>0} {z * log(1/α * M_X(1/z))}
Where the moment-generating function is calculated using q-exponentials rather than conventional exponentials, allowing precise modeling of fat-tailed behavior.
Technical Implementation
This indicator implements EVAR through a q-exponential approach from Tsallis statistics:
Returns Calculation: Price returns are calculated over the lookback period
Moment Generating Function: Approximated using q-exponentials to account for fat tails
EVAR Computation: Derived from the MGF and confidence parameter
Normalization: Scaled to for intuitive visualization
Position Sizing: Inversely modulated based on normalized EVAR
The q-parameter controls tail sensitivity—higher values (1.5-2.0) increase the weighting of extreme events in the calculation, making the model more conservative during potentially turbulent conditions.
Indicator Components
1. EVAR Risk Visualization
Dynamic EVAR Plot: Color-coded from red to green normalized risk measurement (0-1)
Risk Thresholds: Reference lines at 0.3, 0.5, and 0.7 delineating risk zones
2. Position Sizing Matrix
Risk Assessment: Current risk level and raw EVAR value
Position Recommendations: Percentage allocation, dollar value, and quantity
Stop Parameters: Mathematically derived stop price with percentage distance
Drawdown Projection: Maximum theoretical loss if stop is triggered
Interpretation and Application
The normalized EVAR reading provides a probabilistic risk assessment:
< 0.3: Low risk environment with minimal tail concerns
0.3-0.5: Moderate risk with standard tail behavior
0.5-0.7: Elevated risk with increased probability of significant moves
> 0.7: High risk environment with substantial tail risk present
Position sizing is automatically calculated using an inverse relationship to EVAR, contracting during high-risk periods and expanding during low-risk conditions. This is a counter-cyclical approach that ensures consistent risk exposure across varying market regimes, especially when the market is hyped or overheated.
Parameter Optimization
For optimal risk assessment across market conditions:
Lookback Period: Determines the historical window for risk calculation
Q Parameter: Controls tail sensitivity (higher values increase conservatism)
Confidence Level: Sets the statistical threshold for risk assessment
For cryptocurrencies and highly volatile instruments, a q-parameter between 1.5-2.0 typically provides the most accurate risk assessment because it helps capturing the fat-tailed behavior characteristic of these markets. You can also increase the q-parameter for more conservative approaches.
Practical Applications
Adaptive Risk Management: Quantify and respond to changing tail risk conditions
Volatility-Normalized Positioning: Maintain consistent exposure across market regimes
Black Swan Detection: Early identification of potential extreme market conditions
Portfolio Construction: Apply consistent risk-based sizing across diverse instruments
This indicator is my own approach to entropy-based risk measures as an alterative to volatility and standard deviations and it helps with fat-tailed markets.
Enjoy!
Stochastic Money Flow IndexThe Stochastic Money Flow Index (or Stochastic MFI ), is a variation of the classic Stochastic RSI that uses the Money Flow Index (MFI) rather than the Relative Strength Index (RSI) in its calculation.
While the RSI focuses solely on price momentum, the MFI is a volume-weighted indicator, meaning it incorporates both price and volume data.
The Stochastic MFI is intended to provide a more precise and sensitive reading of the MFI by measuring the level of the MFI relative to its range over a specific period.
Settings
Stochastic Settings
%K Length : The number of periods used to calculate the Stochastic. (Default: 14)
%K Smoothing : The SMA length used to 'smooth' the %K line. (Default: 3)
%D Smoothing : The SMA length used to 'smooth' the %D line. (Default: 1)
Money Flow Index Settings
MFI Length : The number of periods used to calculate the Money Flow Index. (Default: 14)
MFI Source : The source used to calculate the Money Flow Index. (Default: close)
Additional Settings
Show Overbought/Oversold Gradients? : Toggle the display of overbought/oversold gradients. (Default: true)
EVWAPThis indicator plots two Volume-Weighted Average Price (VWAP) lines anchored to earnings events:
EVWAP (Earnings Day): Resets VWAP on the day of the earnings release.
EVWAP (Post-Earnings Day): Resets VWAP on the first trading day after earnings.
These earnings-based VWAPs help identify average price zones impacted by earnings, providing insight into post-earnings support/resistance and potential trend shifts. Works on all timeframes.
Useful for traders analyzing price reactions around earnings reports.
Range Bar Gaps DetectorRange Bar Gaps Detector
Overview
The Range Bar Gaps Detector identifies price gaps across multiple range bar sizes (12, 24, 60, and 120) on any trading instrument, helping traders spot potential support/resistance zones or breakout opportunities. Designed for Pine Script v6, this indicator detects gaps on range bars and exports data for use in companion scripts like Range Bar Gaps Overlap, making it ideal for multi-timeframe gap analysis.
Key Features
Multi-Range Gap Detection: Identifies gaps on 12, 24, 60, and 120-range bars, capturing both bullish (gap up) and bearish (gap down) price movements.
Customizable Sensitivity: Includes a user-defined minimum deviation (default: 10% of 14-period SMA) for 12-range gaps to filter out noise.
7-Day Lookback: Automatically prunes gaps older than 7 days to focus on recent, relevant price levels.
Data Export: Serializes up to 10 gaps per range (tops, bottoms, start bars, highest/lowest prices, and age) for seamless integration with overlap analysis scripts.
Debugging Support: Plots gap counts and aggregation data in the Data Window for easy verification of detected gaps.
How It Works
The indicator aggregates price movements to simulate higher range bars (24, 60, 120) from a base range bar chart. It detects gaps when the price jumps significantly between bars, ensuring gaps meet the minimum deviation threshold for 12-range bars. Gaps are stored in arrays, serialized for external use, and pruned after 7 days to maintain efficiency.
Usage
Add to your range bar chart (e.g., 12-range) to detect gaps across multiple ranges.
Use alongside the Range Bar Gaps Overlap indicator to visualize gaps and their overlaps as boxes on the chart.
Check the Data Window to confirm gap counts and sizes for each range (12, 24, 60, 120).
Adjust the "Minimal Deviation (%) for 12-Range" input to control gap detection sensitivity.
Settings
Minimal Deviation (%) for 12-Range: Set the minimum gap size for 12-range bars (default: 10% of 14-period SMA).
Range Sizes: Fixed at 24, 60, and 120 for higher range bar aggregation.
Notes
Ensure the script is published under your TradingView username (e.g., GreenArrow2005) for use with companion scripts.
Best used on range bar charts to maintain consistent gap detection.
For advanced overlap analysis, pair with the Range Bar Gaps Overlap indicator to highlight zones where gaps from different ranges align.
Ideal For
Traders seeking to identify key price levels for support/resistance or breakout strategies.
Multi-timeframe analysts combining gap data across various range bar sizes.
Developers building custom indicators that leverage gap data for advanced charting.
H turnoverTrading Value refers to the total monetary amount of all transactions for a particular stock or the entire market over a specific period. It is calculated by multiplying the trading volume (the number of shares traded) by the price at which they were traded. For example, if 10,000 shares of a stock are traded in a day at an average price of 50,000 KRW, the trading value for that day would be 500,000,000 KRW.
Key points about trading value:
Market Activity and Liquidity: A high trading value indicates an active and liquid market.
Flow of Investment Funds: Increasing trading value suggests more money is flowing into the market or a particular stock.
Relationship with Price Movements: When both trading value and price rise together, it often signals strong buying interest. Conversely, significant price changes with low trading value may be less reliable.
Market Sentiment Indicator: Changes in trading value can reflect shifts in investor interest and sentiment.
In summary, trading value is the total amount of money exchanged in trades and serves as an important indicator of market activity, liquidity, and investor sentiment.
H BollingerBollinger Bands are a widely used technical analysis indicator that helps spot relative price highs and lows. The tool comprises three lines: a central band representing the 20-period simple moving average (SMA), and upper and lower bands usually placed two standard deviations above and below the SMA. These bands adjust with market volatility, offering insights into price fluctuations and trading conditions.
How this indicator works
Bollinger Bands helps traders assess price volatility and potential price reversals. They consist of three bands: the middle band, the upper band, and the lower band. Here's how Bollinger Bands work:
Middle band: This is typically a simple moving average (SMA) of the asset's price over a specified period. The most common period used is 20 days.
Upper band: This is calculated by adding a specified number of standard deviations to the middle band. The standard deviation measures the asset's price volatility. Commonly, two standard deviations are added to the middle band.
Lower band: Similar to the upper band, it is calculated by subtracting a specified number of standard deviations from the middle band.
What do Bollinger Bands tell you?
Bollinger bands primarily indicate the level of market volatility and trading opportunities. Narrow bands indicate low market volatility, while wide bands suggest high market volatility. Bollinger bands indicators can be used by traders to assess potential buy or sell signals. For instance, a sell signal may be interpreted or generated if the asset’s price moves closer or crosses the upper band, as it may indicate that the asset is overbought. Alternatively, a buy signal may be interpreted or generated if the price moves closer to the lower band, as it may signify that the asset is oversold.
However, traders should be cautious when using Bollinger Bands as standalone indicators when making trading decisions. Experienced traders refrain from confirming signals based on one indicator. Instead, they generally combine various technical indicators and fundamental analysis methods to make informed trading decisions. Basing trading decisions on only one indicator can result in misinterpretation of signals and heavy losses.
Bollinger Bands assist in identifying whether prices are relatively high or low. They are applied as a pair—upper and lower bands—alongside a moving average. However, these bands are not designed to be used in isolation. Instead, they should be used to validate signals generated by other technical indicators.
Calculation of Bollinger Band
Auto-Length Anchored Multiple EMA (Hour-Based)# Auto-Length Anchored Multiple EMA (Hour-Based)
## Overview
This advanced EMA indicator automatically calculates Exponential Moving Average lengths based on the time elapsed since user-defined anchor dates. Unlike traditional fixed-length EMAs, this indicator dynamically adjusts EMA periods based on actual trading hours, making it ideal for event-based analysis and time-sensitive trading strategies.
## Key Features
### 🎯 **Dual Mode Operation**
- **Auto Mode**: EMA length automatically calculated from anchor date to current time
- **Manual Mode**: Traditional fixed-length EMA calculation
- Switch between modes independently for each EMA
### 📊 **Multiple EMA Support**
- Up to 4 independent EMAs with individual configurations
- Each EMA can have its own anchor date and settings
- Individual enable/disable controls for each EMA
### ⏰ **Smart Time Calculation**
- Accounts for actual trading hours (customizable)
- Weekend exclusion with Saturday trading option (for markets like NSE/BSE)
- Hour multiplier for fine-tuning EMA sensitivity
- Minimum EMA length protection to prevent calculation errors
### 🎨 **Visual Enhancements**
- **Dynamic Fill Colors**: Fill between EMA1 and EMA3 changes color based on price position
- **Customizable Colors**: Individual color settings for each EMA
- **Anchor Visualization**: Optional vertical lines and labels at anchor dates
- **Real-time Table**: Shows current EMA lengths, modes, and values
## Configuration Options
### Trading Session Settings
- **Trading Hours Per Day**: Set your market's trading hours (1-24)
- **Trading Days Per Week**: Configure for different markets (5 for Mon-Fri, 6 for Mon-Sat)
- **Include Saturday**: Enable for markets that trade on Saturday
- **Hour Multiplier**: Fine-tune EMA sensitivity (0.1x to 10x)
### EMA Configuration
- **Anchor Dates**: Set specific start dates for each EMA calculation
- **Manual Lengths**: Override with traditional fixed periods when needed
- **Enable/Disable**: Individual control for each EMA
- **Color Customization**: Personalize appearance for each EMA
### Visual Options
- **Fill Settings**: Toggle and customize fill colors between EMAs
- **Anchor Lines**: Show vertical lines at anchor dates
- **Anchor Labels**: Display formatted anchor date information
- **Length Table**: Real-time display of current EMA parameters
## Use Cases
### 📈 **Event-Based Analysis**
- Anchor EMAs to earnings announcements, policy decisions, or market events
- Track price behavior relative to specific time periods
- Analyze momentum changes from key market catalysts
### 🕐 **Time-Sensitive Trading**
- Perfect for intraday strategies where timing is crucial
- Automatically adjusts to market hours and trading sessions
- Eliminates manual EMA length recalculation
### 🌍 **Multi-Market Support**
- Configurable for different global markets
- Saturday trading support for Asian markets
- Flexible trading hour settings
## Technical Details
### Calculation Method
The indicator calculates trading bars elapsed since anchor date using:
```
Total Trading Bars = (Days Since Anchor × Trading Days Per Week ÷ 7) × Trading Hours Per Day × Hour Multiplier
```
### EMA Formula
Uses standard EMA calculation with dynamically calculated alpha:
```
Alpha = 2 ÷ (Current Length + 1)
EMA = Alpha × Current Price + (1 - Alpha) × Previous EMA
```
### Weekend Handling
- Automatically excludes weekends from calculation
- Optional Saturday inclusion for specific markets
- Accurate trading day counting
## Installation & Setup
1. **Add to Chart**: Apply the indicator to your desired timeframe
2. **Set Anchor Dates**: Configure anchor dates for each EMA you want to use
3. **Adjust Trading Hours**: Set your market's trading session parameters
4. **Customize Appearance**: Choose colors and visual options
5. **Enable Features**: Turn on fills, anchor lines, and information table as needed
## Best Practices
- **Anchor Selection**: Choose significant market events or technical breakouts as anchor points
- **Multiple Timeframes**: Use different anchor dates for short, medium, and long-term analysis
- **Hour Multiplier**: Start with 1.0 and adjust based on market volatility and your trading style
- **Visual Clarity**: Use contrasting colors for different EMAs to improve readability
## Compatibility
- **Pine Script Version**: v6
- **Chart Types**: All chart types supported
- **Timeframes**: Works on all timeframes (optimal on intraday charts)
- **Markets**: Suitable for stocks, forex, crypto, and commodities
## Notes
- Indicator starts calculation from the anchor date forward
- Minimum EMA length prevents calculation errors with very recent anchor dates
- Table display updates in real-time showing current EMA parameters
- Fill colors dynamically change based on price position relative to EMA1
---
*This indicator is perfect for traders who want to combine the power of EMAs with event-driven analysis and precise time-based calculations.*
Enhanced Gann Time-Price SquaresEnhanced Gann Time-Price Squares Indicator
A comprehensive Pine Script indicator that identifies and visualizes W.D. Gann's time-price square formations on your charts. This tool helps traders spot potential market turning points where time and price movements align according to Gann's legendary market theories.
Key Features:
Automatic Square Detection - Identifies completed squares where price movement equals time movement
Future Projections - Shows forming squares with projected completion points
Pivot Integration - Automatically detects pivot highs/lows as square starting points
Visual Clarity - Clean box outlines with customizable colors and styles
Smart Filtering - Prevents overlapping squares and includes minimum move thresholds
Real-time Status - Information table showing current square formations
How to Use:
The indicator draws boxes when price moves from pivot points equal the time elapsed (number of bars). Green squares indicate upward movements, red squares show downward movements. Dashed lines show forming squares, while dotted lines project where they might complete.
Settings:
Adjust pivot sensitivity and minimum price moves
Customize tolerance for time-price matching
Toggle projections, labels, and visual elements
Fine-tune colors and line styles
Perfect for Gann theory practitioners and traders looking for time-based market analysis. The squares often coincide with significant support/resistance levels and potential reversal points.
Compatible with all timeframes and instruments.
More updates to follow