EFXU Banker Level Price GridThe EFXU Banker Level Price Grid indicator draws fixed horizontal price levels at key whole-number intervals for Forex pairs, regardless of zoom level or timeframe. It’s designed for traders who want consistent visual reference points for major and minor price zones across all charts.
Features:
Major 1000-pip zones (bold lines) above and below a fixed origin price (auto-detects 1.00000 for non-JPY pairs and 100.000 for JPY pairs, or set manually).
500-pip median levels (dashed lines) between each major zone.
100-pip subdivisions (dotted lines) within each 1000-pip zone.
Adjustable number of zones above and below the origin.
Customizable colors, line widths, and label sizes.
Optional labels on the right edge for quick zone identification.
Works on all timeframes and stays visible regardless of zoom or price position.
Use case:
This tool is ideal for traders using institutional-level zones, psychological price levels, or “big money” areas for planning entries, exits, and risk management. Perfect for swing traders, position traders, and scalpers who rely on major pip milestones for market structure context.
Wyszukaj w skryptach "forex"
Swing Point Volume Z-ScoreSWING POINT VOLUME Z-SCORE INDICATOR
A volume analysis tool that identifies statistical volume spikes at swing points with optional higher timeframe confirmation.
This indicator uses Leviathan's method of swing detection. All credit to him for his amazing work (and any mistakes mine). I was also inspired by Trading Riot, who's Capitulation indicator gave me the idea to create this one.
WHAT IT DOES
This indicator combines three analytical approaches:
- Volume Z-score calculation to measure volume significance statistically
- Automatic swing point detection (higher highs, lower lows, etc.)
- Optional higher timeframe volume confirmation
The Z-score measures how many standard deviations current volume is from the average, helping identify when volume activity is genuinely elevated rather than relying on visual assessment.
VISUAL SYSTEM
The indicator uses a color-coded approach for quick assessment:
GREEN - Normal Activity (Z-Score 1.0-2.0)
Above-average volume levels
ORANGE - Elevated Activity (Z-Score 2.0-3.0)
High volume activity that may indicate increased interest
RED - Potential Institutional Activity (Z-Score 3.0+)
Very high volume levels that could suggest significant market participation
HIGHER TIMEFRAME CONFIRMATION
When enabled, the indicator checks volume on a higher timeframe:
- Checkmark symbol indicates HTF volume also shows elevation
- X symbol indicates HTF volume doesn't confirm
- Auto-selects appropriate higher timeframe or allows manual selection
KEY FEATURES
Statistical Approach: Uses Z-score methodology rather than arbitrary volume thresholds
Adaptive Thresholds: Can adjust based on market volatility conditions
Swing Focus: Concentrates analysis on structurally important price levels
Volume Trends: Shows whether volume is accelerating or decelerating
Success Tracking: Monitors how often HTF confirmation proves effective
DISPLAY OPTIONS
Basic Mode: Essential features with clean interface
Advanced Mode: Additional customization and analytics
Label Sizing: Four size options to fit different screen setups
Table Position: Moveable info table with transparency control
Custom Colors: Adjustable for different chart themes
PRACTICAL APPLICATIONS
May help identify:
- Volume spikes at support/resistance levels
- Potential accumulation or distribution zones
- Breakout confirmation with volume backing
- Areas where larger market participants might be active
Works on all liquid markets and timeframes, though generally more effective on 15-minute charts and higher.
USAGE NOTES
This is an analytical tool that highlights statistically significant volume events. It should be used as part of a broader analysis approach rather than as a standalone trading system.
The indicator works best when combined with:
- Price action analysis
- Support and resistance identification
- Trend analysis
- Proper risk management
Default settings are designed to work well across most instruments, but users can adjust parameters based on their specific needs and trading style.
TECHNICAL DETAILS
Built with Pine Script v5
Compatible with all TradingView subscription levels
Open source code available for review and learning
Works on stocks, forex, crypto, futures, and other liquid instruments
The statistical approach helps remove some subjectivity from volume analysis, though like all technical indicators, it should be used thoughtfully as part of a complete trading plan.
Zero Lag LSMA 3-Color# Zero Lag LSMA 3-Color Indicator
## Overview
The Zero Lag LSMA (ZLSMA) 3-Color is an advanced trend-following indicator that reduces the lag inherent in traditional Linear Regression Moving Averages (LSMA). This indicator provides clear visual signals through a color-coded system and dot markers to identify trend changes with minimal delay.
## What is Zero Lag LSMA?
Zero Lag LSMA is calculated by applying the Linear Regression Moving Average twice and then compensating for the lag:
1. **First LSMA**: Calculate LSMA of the price data
2. **Second LSMA**: Calculate LSMA of the first LSMA
3. **Zero Lag Calculation**: ZLSMA = LSMA + (LSMA - LSMA2)
This method significantly reduces the delay while maintaining the smoothness of the trend line.
## Features
### Color-Coded Trend System
- **Fluorescent Green** (`RGB(0, 255, 0)`): Uptrend - ZLSMA is rising
- **Fluorescent Red** (`RGB(255, 20, 60)`): Downtrend - ZLSMA is falling
- **Gray**: Sideways/Neutral - No clear directional bias
### Trend Change Markers
- **Tiny dots** appear at the exact moment when the trend direction changes
- **Green dots**: Mark the beginning of an uptrend
- **Red dots**: Mark the beginning of a downtrend
### Customizable Parameters
- **Length**: Period for ZLSMA calculation (default: 20)
- **Line Width**: Thickness of the ZLSMA line (default: 2)
- **Show/Hide Toggle**: Option to display or hide the indicator
## Trading Applications
### Trend Identification
- **Green line**: Look for long opportunities
- **Red line**: Look for short opportunities
- **Gray line**: Consider range-bound strategies
### Entry Signals
- **Dot markers** provide precise entry points when trend changes occur
- Green dots can signal potential buy entries
- Red dots can signal potential sell entries
### Trend Confirmation
- Use ZLSMA color changes to confirm other technical analysis signals
- The reduced lag helps traders enter trends earlier than traditional moving averages
## Advantages Over Traditional Moving Averages
1. **Reduced Lag**: Responds faster to price changes than standard moving averages
2. **Clear Visualization**: Color-coding makes trend direction immediately apparent
3. **Precise Timing**: Dot markers highlight exact trend change moments
4. **Smooth Operation**: Maintains smoothness while reducing whipsaws
## Best Practices
### Timeframe Usage
- Works effectively on all timeframes
- Higher timeframes provide more reliable signals
- Lower timeframes offer more trading opportunities but may have more noise
### Risk Management
- Always use proper stop-loss levels
- Consider the overall market context
- Combine with other technical analysis tools for confirmation
### Settings Optimization
- **Shorter periods** (10-15): More sensitive, faster signals
- **Longer periods** (25-50): More stable, fewer false signals
- **Standard period** (20): Good balance between sensitivity and stability
## Alert Conditions
The indicator includes built-in alert conditions for:
- ZLSMA turning upward (trend change to bullish)
- ZLSMA turning downward (trend change to bearish)
## Compatibility
- **Platform**: TradingView
- **Script Version**: Pine Script v6
- **Chart Type**: Works on all chart types
- **Markets**: Suitable for Forex, Stocks, Crypto, Commodities, and Indices
## Disclaimer
This indicator is for educational and informational purposes only. It should not be considered as financial advice. Always conduct your own research and consider your risk tolerance before making trading decisions. Past performance does not guarantee future results.
LANZ Strategy 6.0🔷 LANZ Strategy 6.0 — NY Session Entry Tool & Multi-Account Risk Manager
LANZ Strategy 6.0 - Is a trading tool designed to help traders plan, execute, and manage operations with a focus on risk management, multi-account handling, and visual clarity.
It works exclusively on the 1-hour timeframe ⏳ and is optimized for the New York market opening dynamics.
🧠 Core Concept
The strategy identifies bullish trading opportunities based on the 09:00 NY candle. Once detected, it automatically calculates and draws:
EP (Entry Price) — The exact level where the trade setup triggers.
SL (Stop Loss) — Based on a customizable percentage of the candle's high–low range or wick extremes.
TP (Take Profit) — Calculated using your chosen Risk–Reward Ratio (e.g., 1:5, 1:3, etc.).
⚙️ Main Features
⏳ Time-Specific Execution
Operates only when the 09:00 NY candle closes bullish.
Ideal for traders who align with the New York Session market structure.
💰 Multi-Account Lot Size Management
Up to 5 independent accounts can be configured with their own capital and risk %, showing the exact lot size to use for each.
📏 Adaptive Risk Control
Supports both Forex and non-Forex assets (indices, gold, oil).
For non-Forex, you can manually define the pip value according to your broker’s specs.
🎨 Visual Trade Map
Automatically plots clean and easy-to-read EP, SL, and TP lines with customizable colors, styles, and thickness.
A floating information panel displays levels, pip distances, and lot sizes.
🔔 Real-Time Alerts
Alerts for:
Entry signal detection.
Stop Loss hit.
Take Profit hit.
Manual close at the defined session end.
📊 Example
If you trade GBPUSD with Account #1 set to $10,000 and 2% risk,
and the 09:00 NY candle closes bullish with SL = 30 pips and RR = 5:1:
EP, SL, and TP levels are drawn instantly.
Risk = $200 (2% of $10,000).
Lot size is calculated automatically.
All details are shown in the on-chart panel.
🛠️ How to Use
Load the indicator on a 1-hour chart.
Configure risk settings and account data.
Wait for the 09:00 NY candle to close bullish.
Use the displayed lot size and levels to execute your trade.
Let the tool alert you for SL, TP, or manual close.
⚠️ Disclaimer:
This script is for educational purposes only. It does not guarantee profits and past performance does not represent future results. Always manage your risk responsibly.
👨💻 Credits:
💡 Developed by: LANZ
🧠 Execution Model & Logic Design: LANZ
📅 Designed for: 1H timeframe and NY-based entries
OBV Breakout Screener (By Tarso)1. Purpose of the Indicator
The "Advanced OBV Breakout Screener" is a specialized tool designed to find a powerful bullish signal. It scans for assets where buying pressure is increasing significantly, even though the price has not yet broken out.
The core strategy is to identify assets where:
Volume is leading Price: The On-Balance Volume (OBV) has already broken its recent high.
Price is still contained: The asset's price has not yet broken its recent high.
This setup helps you find potential trading opportunities right before a possible upward move.
2. How to Set Up the Indicator
First, you need to add the script to your TradingView account.
Open any chart on TradingView.
Click on the "Pine Editor" tab at the bottom of the screen.
Delete any existing code and paste the entire "Advanced OBV Breakout Screener" script into the editor.
Click "Add to chart". The indicator will now appear in a separate panel below your main price chart.
3. How to Use it with the Pine Screener (Step-by-Step)
This is the main purpose of the indicator. The script does all the complex analysis and provides a simple "1" (Signal is ON) or "0" (Signal is OFF). You only need to set up one filter.
Open the Stock Screener (or Crypto/Forex Screener).
Click the Filters button to open the settings panel.
Ensure you are on the Pine Screener tab (this allows you to filter using custom indicators).
In the indicator selection menu (it might say "Select Indicator..."), find and choose Advanced OBV Breakout Screener from your list.
Now, configure the single filter condition as follows:
In the first box, select Advanced Breakout Signal.
In the second box, select Equal to.
In the third box, select Number and type 1.
Your filter setup should look clean and simple, like this:
That's it! The screener will now display a list of all assets that currently meet the "Advanced Breakout" criteria for the timeframe you have selected (e.g., Daily, 4h, 1h).
4. Configuring the Lookback Period
By default, the indicator analyzes the last 20 periods. If you want to change this (for example, to scan for breakouts over 50 days), you must adjust it in the indicator's settings on your chart.
Go back to your chart view.
Find the "Advanced OBV Breakout Screener" panel.
Click the Settings icon (⚙️) next to the indicator's name.
In the "Inputs" tab, change the "Lookback Period (days)" to your desired value.
Click "OK".
The Pine Screener will automatically use this new setting for its market scan.
5. Understanding the On-Chart Visuals
When you add the indicator to your chart, you will see:
Blue Line: This is the On-Balance Volume (OBV).
Red Stepped Line: This represents the highest value the OBV has reached during the lookback period. A breakout happens when the blue line moves above this red line.
Green Triangle (▲): This symbol appears below a price candle whenever the full "Advanced Breakout" condition (OBV breakout + Price containment) is met, giving you a clear visual confirmation.
thors_forex_factory_decodingLibrary "forex_factory_decoding"
Supporting Utility Library for the Live Economic Calendar by toodegrees Indicator; responsible for formatting and saving Forex Factory News events.
isLeapYear()
Finds if it's currently a leap year or not.
Returns: Returns True if the current year is a leap year.
daysMonth(M)
Provides the days in a given month of the year, adjusted during leap years.
Parameters:
M (int) : Month in numerical integer format (i.e. Jan=1).
Returns: Days in the provided month.
MMM(M)
Converts a month from a numerical integer format to a MMM format (i.e. 'Jan').
Parameters:
M (int) : Month in numerical integer format (i.e. Jan=1).
Returns: Month in MMM format (i.e. 'Jan').
array2string(S, FWD)
Converts a string array to a simple string, concatenating its elements.
Parameters:
S (array) : String array, or string array slice, to turn into a simple string.
FWD (bool) : Boolean defaulted to True. If True the array will be concatenated from head to tail, reversed order if False.
Returns: Returns the simple string equivalent of the provided string array.
month2number(M)
Converts a month string in 'MMM' format to its integer equivalent.
Parameters:
M (string) : Month string, in 'MMM' format.
Returns: Returns the integer equivalent of the provided Month string in 'MMM' format.
shiftFWD_Days(D)
Shifts forward the current Date by N days.
Parameters:
D (int) : Number of days to forward-shift, default is 7.
Returns: Returns the forward-shifted date in 'MMM %D' format (i.e. Jan 8, Sep 12).
ff_dow(D)
Converts a numbered day of the week string in format to 'DDD' format (i.e. "1" = Sun).
Parameters:
D (string) : Numbered day of the week from 1 to 7, starting on Sunday.
Returns: Returns the day of the week in 'DDD' format (i.e. "Fri").
ff_currency(C)
Converts a numbered currency string in format to 'CCC' format (i.e. "1" = AUD).
Parameters:
C (string) : Numbered currency, where "1" = "AUD", "2" = "CAD", "3" = "CHF", "4" = "CNY", "5" = "EUR", "6" = "GBP", "7" = "JPY", "8" = "NZD", "9" = "USD".
Returns: Returns the currency in 'CCC' format (i.e. "USD").
ff_t(T)
Converts a time of the day in 'hhmm' format into an intger.
Parameters:
T (string) : Time of the day string in 'hhmm' format.
Returns: Returns the time of the day integer in 'hhmm' format, or -1 if all day.
ff_tod(T)
Converts a time of the day from an integer 'hhmm' format into 'hh:mm' format.
Parameters:
T (int)
Returns: Returns the N Forex Factory News array with time of the day string in 'hh:mm' format, or 'All Day'.
ff_impact(I)
Converts a number from 1 to 4 to a relative color based on Forex Factory Impact types.
Parameters:
I (string) : Impact number string from 1 to 4, where "1" = Holiday, "2" = Low Impact, "3" = Medium Impact, "4" = High Impact.
Returns: Returns the color associated to the impact number based on Forex Factory Impact types.
ff_tmst(D, T)
Parameters:
D (string)
T (string)
decode(ID)
Decodes TOODEGREES_FOREX_FACTORY_SLOT_n Symbols' Pine Seeds data into Forex Factory News Events.
Parameters:
ID (int) : Identifier of the Forex Factory News Event, in "DCHHMMI%T" format (D = day of the week from 1 to 7, C = currency from 1 to 9, HHMM = hour:minute in 24h, I = impact from 1 to 4, %T = event title ID) .
Returns: Returns the Forex Factory News Event.
method pullNews(N, n)
Decodes the Forex Factory News Event and adds it to the Forex Factory News array.
Namespace types: array
Parameters:
N (array type from cegb001/forex_factory_utility/1) : Forex Factory News array.
n (float) : imported data from custom feed.
Returns: void
method readNews(N, S)
Pulls the individual Forex Factory News Event from the custom data feed format (joint News string), decodes them and adds them to the Forex Factory News array.
Namespace types: array
Parameters:
N (array type from cegb001/forex_factory_utility/1) : Forex Factory News array.
S (string) : joint string of the imported data from custom feed.
Returns: void
Apex Edge – Liquidity RaiderApex Edge – Liquidity Raider
The Predator That Hunts Where Retail Never Looks
The Liquidity Raider is not your average liquidity line plotter.
This is an institutional-grade hunting system that tracks the pools of liquidity Smart Money algos stalk — and tells you exactly when price is circling in for the strike.
Where most retail tools simply mark lines, this one acts like a predator:
Scans the chart dynamically to detect clustered highs & lows (pivot-based liquidity zones).
Filters noise with sensitivity & price rounding so you only get real liquidity levels — not every random swing.
Plots live BSL (Buy-Side Liquidity) & SSL (Sell-Side Liquidity) lines in clean dotted format.
Auto-deletes levels when swept, so your chart stays clean and focused.
Triggers directional arrows when price comes within your specified % distance to the target liquidity pool — before the market moves.
EMA confluence layer lets you align with institutional flow (customizable Fast & Slow EMAs).
Core Power
Cluster Logic – Finds high-probability liquidity zones using repeated pivot levels.
Sweep Awareness – Lines vanish the moment liquidity is taken, keeping focus on the next pool.
Proximity Strike Detection – Arrow signals only when price is within striking range.
Directional Clarity – Red arrows = targeting BSL, Green arrows = targeting SSL.
Scalable Across Timeframes – Adapts to your chart’s timeframe with dynamic lookback scaling.
Institutional Flow Filter – Optional EMA confirmation keeps you aligned with the real trend.
How to Use
Identify liquidity pools – Dotted green = buy-side, dotted red = sell-side.
Watch proximity arrows – These mean price is in range and hunting that pool.
Align with EMA bias – Enter only in the direction of institutional momentum.
Target the sweep – Your take profit is where the liquidity is resting.
Why Liquidity Raider Wins
This is not a lagging signal system.
It’s a real-time, clean, predictive tool designed to mimic the targeting logic of high-frequency algos.
By removing swept levels and focusing only on the next available pools, Liquidity Raider keeps you one step ahead of the crowd — and perfectly positioned for the kill shot.
Calculateur Position Size Multi-ActifsThe Multi-Asset Position Size Calculator v6 is a fully customizable Pine Script indicator designed to help you determine the optimal position size based on your risk tolerance across any market: Forex, stocks, crypto, futures indices, or commodities. Features include:
Asset Type Selector: Choose between Forex, Stocks, Crypto, Futures Indices, or Commodities
Account Capital & Risk: Set your total account size and risk percentage per trade
Entry Price & Stop-Loss: Configure your entry and stop-loss levels directly
Automatic or Custom Pip/Point Value: Automatically calculates pip/point value by asset class or enter your own
Contract Size Adjustment: Define contract sizes (e.g., 100,000 units for Forex, 1 for stocks/crypto)
Margin & Leverage Display: View your used leverage and position value in real time
Risk Alerts: Warnings for invalid inputs, high leverage (>10×), and asset-specific risk settings (e.g., crypto leverage)
Integrated Table Interface: On-chart table with adjustable position and text size
Optional Price Level Drawing: Display entry and stop-loss lines on the chart
Trade any market confidently with precise, asset-tailored position sizing and risk management.
Multi-Pip Grid This indicator draws multiple sets of horizontal grid lines on your chart at user-defined pip intervals. It’s designed for traders who want to quickly visualize key price levels spaced evenly apart in pips, with full control over pip size, grid spacing, and appearance.
Features:
Adjustable pip size — works for Forex, gold, crypto, and indices (e.g., 0.0001 for EURUSD, 0.10 for XAUUSD, 1 for NAS100).
Six grid spacings — 1000 pips, 500 pips, 250 pips, 125 pips, 62.5 pips, and 31.25 pips. Each grid can be toggled on or off.
Customizable base price — center the grid at the current market price or any manually entered price.
Optional snap-to-grid — automatically aligns the base price to the nearest multiple of the smallest step for perfect alignment.
Flexible range — choose how many grid lines are drawn above and below the base price.
Distinct colors per grid level for easy identification.
Automatic cleanup — removes old lines before redrawing to avoid clutter.
Use cases:
Identify large and small pip-based support/resistance zones.
Plan entries/exits using fixed pip distances.
Visualize scaled take-profit and stop-loss zones.
Overlay multiple timeframes with consistent pip spacing.
Multi-Pip Grid (Adjustable) — FixedThis indicator draws multiple sets of horizontal grid lines on your chart at user-defined pip intervals. It’s designed for traders who want to quickly visualize key price levels spaced evenly apart in pips, with full control over pip size, grid spacing, and appearance.
Features:
Adjustable pip size — works for Forex, gold, crypto, and indices (e.g., 0.0001 for EURUSD, 0.10 for XAUUSD, 1 for NAS100).
Six grid spacings — 1000 pips, 500 pips, 250 pips, 125 pips, 62.5 pips, and 31.25 pips. Each grid can be toggled on or off.
Customizable base price — center the grid at the current market price or any manually entered price.
Optional snap-to-grid — automatically aligns the base price to the nearest multiple of the smallest step for perfect alignment.
Flexible range — choose how many grid lines are drawn above and below the base price.
Distinct colors per grid level for easy identification.
Automatic cleanup — removes old lines before redrawing to avoid clutter.
Use cases:
Identify large and small pip-based support/resistance zones.
Plan entries/exits using fixed pip distances.
Visualize scaled take-profit and stop-loss zones.
Overlay multiple timeframes with consistent pip spacing.
Kelly Position Size CalculatorThis position sizing calculator implements the Kelly Criterion, developed by John L. Kelly Jr. at Bell Laboratories in 1956, to determine mathematically optimal position sizes for maximizing long-term wealth growth. Unlike arbitrary position sizing methods, this tool provides a scientifically solution based on your strategy's actual performance statistics and incorporates modern refinements from over six decades of academic research.
The Kelly Criterion addresses a fundamental question in capital allocation: "What fraction of capital should be allocated to each opportunity to maximize growth while avoiding ruin?" This question has profound implications for financial markets, where traders and investors constantly face decisions about optimal capital allocation (Van Tharp, 2007).
Theoretical Foundation
The Kelly Criterion for binary outcomes is expressed as f* = (bp - q) / b, where f* represents the optimal fraction of capital to allocate, b denotes the risk-reward ratio, p indicates the probability of success, and q represents the probability of loss (Kelly, 1956). This formula maximizes the expected logarithm of wealth, ensuring maximum long-term growth rate while avoiding the risk of ruin.
The mathematical elegance of Kelly's approach lies in its derivation from information theory. Kelly's original work was motivated by Claude Shannon's information theory (Shannon, 1948), recognizing that maximizing the logarithm of wealth is equivalent to maximizing the rate of information transmission. This connection between information theory and wealth accumulation provides a deep theoretical foundation for optimal position sizing.
The logarithmic utility function underlying the Kelly Criterion naturally embodies several desirable properties for capital management. It exhibits decreasing marginal utility, penalizes large losses more severely than it rewards equivalent gains, and focuses on geometric rather than arithmetic mean returns, which is appropriate for compounding scenarios (Thorp, 2006).
Scientific Implementation
This calculator extends beyond basic Kelly implementation by incorporating state of the art refinements from academic research:
Parameter Uncertainty Adjustment: Following Michaud (1989), the implementation applies Bayesian shrinkage to account for parameter estimation error inherent in small sample sizes. The adjustment formula f_adjusted = f_kelly × confidence_factor + f_conservative × (1 - confidence_factor) addresses the overconfidence bias documented by Baker and McHale (2012), where the confidence factor increases with sample size and the conservative estimate equals 0.25 (quarter Kelly).
Sample Size Confidence: The reliability of Kelly calculations depends critically on sample size. Research by Browne and Whitt (1996) provides theoretical guidance on minimum sample requirements, suggesting that at least 30 independent observations are necessary for meaningful parameter estimates, with 100 or more trades providing reliable estimates for most trading strategies.
Universal Asset Compatibility: The calculator employs intelligent asset detection using TradingView's built-in symbol information, automatically adapting calculations for different asset classes without manual configuration.
ASSET SPECIFIC IMPLEMENTATION
Equity Markets: For stocks and ETFs, position sizing follows the calculation Shares = floor(Kelly Fraction × Account Size / Share Price). This straightforward approach reflects whole share constraints while accommodating fractional share trading capabilities.
Foreign Exchange Markets: Forex markets require lot-based calculations following Lot Size = Kelly Fraction × Account Size / (100,000 × Base Currency Value). The calculator automatically handles major currency pairs with appropriate pip value calculations, following industry standards described by Archer (2010).
Futures Markets: Futures position sizing accounts for leverage and margin requirements through Contracts = floor(Kelly Fraction × Account Size / Margin Requirement). The calculator estimates margin requirements as a percentage of contract notional value, with specific adjustments for micro-futures contracts that have smaller sizes and reduced margin requirements (Kaufman, 2013).
Index and Commodity Markets: These markets combine characteristics of both equity and futures markets. The calculator automatically detects whether instruments are cash-settled or futures-based, applying appropriate sizing methodologies with correct point value calculations.
Risk Management Integration
The calculator integrates sophisticated risk assessment through two primary modes:
Stop Loss Integration: When fixed stop-loss levels are defined, risk calculation follows Risk per Trade = Position Size × Stop Loss Distance. This ensures that the Kelly fraction accounts for actual risk exposure rather than theoretical maximum loss, with stop-loss distance measured in appropriate units for each asset class.
Strategy Drawdown Assessment: For discretionary exit strategies, risk estimation uses maximum historical drawdown through Risk per Trade = Position Value × (Maximum Drawdown / 100). This approach assumes that individual trade losses will not exceed the strategy's historical maximum drawdown, providing a reasonable estimate for strategies with well-defined risk characteristics.
Fractional Kelly Approaches
Pure Kelly sizing can produce substantial volatility, leading many practitioners to adopt fractional Kelly approaches. MacLean, Sanegre, Zhao, and Ziemba (2004) analyze the trade-offs between growth rate and volatility, demonstrating that half-Kelly typically reduces volatility by approximately 75% while sacrificing only 25% of the growth rate.
The calculator provides three primary Kelly modes to accommodate different risk preferences and experience levels. Full Kelly maximizes growth rate while accepting higher volatility, making it suitable for experienced practitioners with strong risk tolerance and robust capital bases. Half Kelly offers a balanced approach popular among professional traders, providing optimal risk-return balance by reducing volatility significantly while maintaining substantial growth potential. Quarter Kelly implements a conservative approach with low volatility, recommended for risk-averse traders or those new to Kelly methodology who prefer gradual introduction to optimal position sizing principles.
Empirical Validation and Performance
Extensive academic research supports the theoretical advantages of Kelly sizing. Hakansson and Ziemba (1995) provide a comprehensive review of Kelly applications in finance, documenting superior long-term performance across various market conditions and asset classes. Estrada (2008) analyzes Kelly performance in international equity markets, finding that Kelly-based strategies consistently outperform fixed position sizing approaches over extended periods across 19 developed markets over a 30-year period.
Several prominent investment firms have successfully implemented Kelly-based position sizing. Pabrai (2007) documents the application of Kelly principles at Berkshire Hathaway, noting Warren Buffett's concentrated portfolio approach aligns closely with Kelly optimal sizing for high-conviction investments. Quantitative hedge funds, including Renaissance Technologies and AQR, have incorporated Kelly-based risk management into their systematic trading strategies.
Practical Implementation Guidelines
Successful Kelly implementation requires systematic application with attention to several critical factors:
Parameter Estimation: Accurate parameter estimation represents the greatest challenge in practical Kelly implementation. Brown (1976) notes that small errors in probability estimates can lead to significant deviations from optimal performance. The calculator addresses this through Bayesian adjustments and confidence measures.
Sample Size Requirements: Users should begin with conservative fractional Kelly approaches until achieving sufficient historical data. Strategies with fewer than 30 trades may produce unreliable Kelly estimates, regardless of adjustments. Full confidence typically requires 100 or more independent trade observations.
Market Regime Considerations: Parameters that accurately describe historical performance may not reflect future market conditions. Ziemba (2003) recommends regular parameter updates and conservative adjustments when market conditions change significantly.
Professional Features and Customization
The calculator provides comprehensive customization options for professional applications:
Multiple Color Schemes: Eight professional color themes (Gold, EdgeTools, Behavioral, Quant, Ocean, Fire, Matrix, Arctic) with dark and light theme compatibility ensure optimal visibility across different trading environments.
Flexible Display Options: Adjustable table size and position accommodate various chart layouts and user preferences, while maintaining analytical depth and clarity.
Comprehensive Results: The results table presents essential information including asset specifications, strategy statistics, Kelly calculations, sample confidence measures, position values, risk assessments, and final position sizes in appropriate units for each asset class.
Limitations and Considerations
Like any analytical tool, the Kelly Criterion has important limitations that users must understand:
Stationarity Assumption: The Kelly Criterion assumes that historical strategy statistics represent future performance characteristics. Non-stationary market conditions may invalidate this assumption, as noted by Lo and MacKinlay (1999).
Independence Requirement: Each trade should be independent to avoid correlation effects. Many trading strategies exhibit serial correlation in returns, which can affect optimal position sizing and may require adjustments for portfolio applications.
Parameter Sensitivity: Kelly calculations are sensitive to parameter accuracy. Regular calibration and conservative approaches are essential when parameter uncertainty is high.
Transaction Costs: The implementation incorporates user-defined transaction costs but assumes these remain constant across different position sizes and market conditions, following Ziemba (2003).
Advanced Applications and Extensions
Multi-Asset Portfolio Considerations: While this calculator optimizes individual position sizes, portfolio-level applications require additional considerations for correlation effects and aggregate risk management. Simplified portfolio approaches include treating positions independently with correlation adjustments.
Behavioral Factors: Behavioral finance research reveals systematic biases that can interfere with Kelly implementation. Kahneman and Tversky (1979) document loss aversion, overconfidence, and other cognitive biases that lead traders to deviate from optimal strategies. Successful implementation requires disciplined adherence to calculated recommendations.
Time-Varying Parameters: Advanced implementations may incorporate time-varying parameter models that adjust Kelly recommendations based on changing market conditions, though these require sophisticated econometric techniques and substantial computational resources.
Comprehensive Usage Instructions and Practical Examples
Implementation begins with loading the calculator on your desired trading instrument's chart. The system automatically detects asset type across stocks, forex, futures, and cryptocurrency markets while extracting current price information. Navigation to the indicator settings allows input of your specific strategy parameters.
Strategy statistics configuration requires careful attention to several key metrics. The win rate should be calculated from your backtest results using the formula of winning trades divided by total trades multiplied by 100. Average win represents the sum of all profitable trades divided by the number of winning trades, while average loss calculates the sum of all losing trades divided by the number of losing trades, entered as a positive number. The total historical trades parameter requires the complete number of trades in your backtest, with a minimum of 30 trades recommended for basic functionality and 100 or more trades optimal for statistical reliability. Account size should reflect your available trading capital, specifically the risk capital allocated for trading rather than total net worth.
Risk management configuration adapts to your specific trading approach. The stop loss setting should be enabled if you employ fixed stop-loss exits, with the stop loss distance specified in appropriate units depending on the asset class. For stocks, this distance is measured in dollars, for forex in pips, and for futures in ticks. When stop losses are not used, the maximum strategy drawdown percentage from your backtest provides the risk assessment baseline. Kelly mode selection offers three primary approaches: Full Kelly for aggressive growth with higher volatility suitable for experienced practitioners, Half Kelly for balanced risk-return optimization popular among professional traders, and Quarter Kelly for conservative approaches with reduced volatility.
Display customization ensures optimal integration with your trading environment. Eight professional color themes provide optimization for different chart backgrounds and personal preferences. Table position selection allows optimal placement within your chart layout, while table size adjustment ensures readability across different screen resolutions and viewing preferences.
Detailed Practical Examples
Example 1: SPY Swing Trading Strategy
Consider a professionally developed swing trading strategy for SPY (S&P 500 ETF) with backtesting results spanning 166 total trades. The strategy achieved 110 winning trades, representing a 66.3% win rate, with an average winning trade of $2,200 and average losing trade of $862. The maximum drawdown reached 31.4% during the testing period, and the available trading capital amounts to $25,000. This strategy employs discretionary exits without fixed stop losses.
Implementation requires loading the calculator on the SPY daily chart and configuring the parameters accordingly. The win rate input receives 66.3, while average win and loss inputs receive 2200 and 862 respectively. Total historical trades input requires 166, with account size set to 25000. The stop loss function remains disabled due to the discretionary exit approach, with maximum strategy drawdown set to 31.4%. Half Kelly mode provides the optimal balance between growth and risk management for this application.
The calculator generates several key outputs for this scenario. The risk-reward ratio calculates automatically to 2.55, while the Kelly fraction reaches approximately 53% before scientific adjustments. Sample confidence achieves 100% given the 166 trades providing high statistical confidence. The recommended position settles at approximately 27% after Half Kelly and Bayesian adjustment factors. Position value reaches approximately $6,750, translating to 16 shares at a $420 SPY price. Risk per trade amounts to approximately $2,110, representing 31.4% of position value, with expected value per trade reaching approximately $1,466. This recommendation represents the mathematically optimal balance between growth potential and risk management for this specific strategy profile.
Example 2: EURUSD Day Trading with Stop Losses
A high-frequency EURUSD day trading strategy demonstrates different parameter requirements compared to swing trading approaches. This strategy encompasses 89 total trades with a 58% win rate, generating an average winning trade of $180 and average losing trade of $95. The maximum drawdown reached 12% during testing, with available capital of $10,000. The strategy employs fixed stop losses at 25 pips and take profit targets at 45 pips, providing clear risk-reward parameters.
Implementation begins with loading the calculator on the EURUSD 1-hour chart for appropriate timeframe alignment. Parameter configuration includes win rate at 58, average win at 180, and average loss at 95. Total historical trades input receives 89, with account size set to 10000. The stop loss function is enabled with distance set to 25 pips, reflecting the fixed exit strategy. Quarter Kelly mode provides conservative positioning due to the smaller sample size compared to the previous example.
Results demonstrate the impact of smaller sample sizes on Kelly calculations. The risk-reward ratio calculates to 1.89, while the Kelly fraction reaches approximately 32% before adjustments. Sample confidence achieves 89%, providing moderate statistical confidence given the 89 trades. The recommended position settles at approximately 7% after Quarter Kelly application and Bayesian shrinkage adjustment for the smaller sample. Position value amounts to approximately $700, translating to 0.07 standard lots. Risk per trade reaches approximately $175, calculated as 25 pips multiplied by lot size and pip value, with expected value per trade at approximately $49. This conservative position sizing reflects the smaller sample size, with position sizes expected to increase as trade count surpasses 100 and statistical confidence improves.
Example 3: ES1! Futures Systematic Strategy
Systematic futures trading presents unique considerations for Kelly criterion application, as demonstrated by an E-mini S&P 500 futures strategy encompassing 234 total trades. This systematic approach achieved a 45% win rate with an average winning trade of $1,850 and average losing trade of $720. The maximum drawdown reached 18% during the testing period, with available capital of $50,000. The strategy employs 15-tick stop losses with contract specifications of $50 per tick, providing precise risk control mechanisms.
Implementation involves loading the calculator on the ES1! 15-minute chart to align with the systematic trading timeframe. Parameter configuration includes win rate at 45, average win at 1850, and average loss at 720. Total historical trades receives 234, providing robust statistical foundation, with account size set to 50000. The stop loss function is enabled with distance set to 15 ticks, reflecting the systematic exit methodology. Half Kelly mode balances growth potential with appropriate risk management for futures trading.
Results illustrate how favorable risk-reward ratios can support meaningful position sizing despite lower win rates. The risk-reward ratio calculates to 2.57, while the Kelly fraction reaches approximately 16%, lower than previous examples due to the sub-50% win rate. Sample confidence achieves 100% given the 234 trades providing high statistical confidence. The recommended position settles at approximately 8% after Half Kelly adjustment. Estimated margin per contract amounts to approximately $2,500, resulting in a single contract allocation. Position value reaches approximately $2,500, with risk per trade at $750, calculated as 15 ticks multiplied by $50 per tick. Expected value per trade amounts to approximately $508. Despite the lower win rate, the favorable risk-reward ratio supports meaningful position sizing, with single contract allocation reflecting appropriate leverage management for futures trading.
Example 4: MES1! Micro-Futures for Smaller Accounts
Micro-futures contracts provide enhanced accessibility for smaller trading accounts while maintaining identical strategy characteristics. Using the same systematic strategy statistics from the previous example but with available capital of $15,000 and micro-futures specifications of $5 per tick with reduced margin requirements, the implementation demonstrates improved position sizing granularity.
Kelly calculations remain identical to the full-sized contract example, maintaining the same risk-reward dynamics and statistical foundations. However, estimated margin per contract reduces to approximately $250 for micro-contracts, enabling allocation of 4-5 micro-contracts. Position value reaches approximately $1,200, while risk per trade calculates to $75, derived from 15 ticks multiplied by $5 per tick. This granularity advantage provides better position size precision for smaller accounts, enabling more accurate Kelly implementation without requiring large capital commitments.
Example 5: Bitcoin Swing Trading
Cryptocurrency markets present unique challenges requiring modified Kelly application approaches. A Bitcoin swing trading strategy on BTCUSD encompasses 67 total trades with a 71% win rate, generating average winning trades of $3,200 and average losing trades of $1,400. Maximum drawdown reached 28% during testing, with available capital of $30,000. The strategy employs technical analysis for exits without fixed stop losses, relying on price action and momentum indicators.
Implementation requires conservative approaches due to cryptocurrency volatility characteristics. Quarter Kelly mode is recommended despite the high win rate to account for crypto market unpredictability. Expected position sizing remains reduced due to the limited sample size of 67 trades, requiring additional caution until statistical confidence improves. Regular parameter updates are strongly recommended due to cryptocurrency market evolution and changing volatility patterns that can significantly impact strategy performance characteristics.
Advanced Usage Scenarios
Portfolio position sizing requires sophisticated consideration when running multiple strategies simultaneously. Each strategy should have its Kelly fraction calculated independently to maintain mathematical integrity. However, correlation adjustments become necessary when strategies exhibit related performance patterns. Moderately correlated strategies should receive individual position size reductions of 10-20% to account for overlapping risk exposure. Aggregate portfolio risk monitoring ensures total exposure remains within acceptable limits across all active strategies. Professional practitioners often consider using lower fractional Kelly approaches, such as Quarter Kelly, when running multiple strategies simultaneously to provide additional safety margins.
Parameter sensitivity analysis forms a critical component of professional Kelly implementation. Regular validation procedures should include monthly parameter updates using rolling 100-trade windows to capture evolving market conditions while maintaining statistical relevance. Sensitivity testing involves varying win rates by ±5% and average win/loss ratios by ±10% to assess recommendation stability under different parameter assumptions. Out-of-sample validation reserves 20% of historical data for parameter verification, ensuring that optimization doesn't create curve-fitted results. Regime change detection monitors actual performance against expected metrics, triggering parameter reassessment when significant deviations occur.
Risk management integration requires professional overlay considerations beyond pure Kelly calculations. Daily loss limits should cease trading when daily losses exceed twice the calculated risk per trade, preventing emotional decision-making during adverse periods. Maximum position limits should never exceed 25% of account value in any single position regardless of Kelly recommendations, maintaining diversification principles. Correlation monitoring reduces position sizes when holding multiple correlated positions that move together during market stress. Volatility adjustments consider reducing position sizes during periods of elevated VIX above 25 for equity strategies, adapting to changing market conditions.
Troubleshooting and Optimization
Professional implementation often encounters specific challenges requiring systematic troubleshooting approaches. Zero position size displays typically result from insufficient capital for minimum position sizes, negative expected values, or extremely conservative Kelly calculations. Solutions include increasing account size, verifying strategy statistics for accuracy, considering Quarter Kelly mode for conservative approaches, or reassessing overall strategy viability when fundamental issues exist.
Extremely high Kelly fractions exceeding 50% usually indicate underlying problems with parameter estimation. Common causes include unrealistic win rates, inflated risk-reward ratios, or curve-fitted backtest results that don't reflect genuine trading conditions. Solutions require verifying backtest methodology, including all transaction costs in calculations, testing strategies on out-of-sample data, and using conservative fractional Kelly approaches until parameter reliability improves.
Low sample confidence below 50% reflects insufficient historical trades for reliable parameter estimation. This situation demands gathering additional trading data, using Quarter Kelly approaches until reaching 100 or more trades, applying extra conservatism in position sizing, and considering paper trading to build statistical foundations without capital risk.
Inconsistent results across similar strategies often stem from parameter estimation differences, market regime changes, or strategy degradation over time. Professional solutions include standardizing backtest methodology across all strategies, updating parameters regularly to reflect current conditions, and monitoring live performance against expectations to identify deteriorating strategies.
Position sizes that appear inappropriately large or small require careful validation against traditional risk management principles. Professional standards recommend never risking more than 2-3% per trade regardless of Kelly calculations. Calibration should begin with Quarter Kelly approaches, gradually increasing as comfort and confidence develop. Most institutional traders utilize 25-50% of full Kelly recommendations to balance growth with prudent risk management.
Market condition adjustments require dynamic approaches to Kelly implementation. Trending markets may support full Kelly recommendations when directional momentum provides favorable conditions. Ranging or volatile markets typically warrant reducing to Half or Quarter Kelly to account for increased uncertainty. High correlation periods demand reducing individual position sizes when multiple positions move together, concentrating risk exposure. News and event periods often justify temporary position size reductions during high-impact releases that can create unpredictable market movements.
Performance monitoring requires systematic protocols to ensure Kelly implementation remains effective over time. Weekly reviews should compare actual versus expected win rates and average win/loss ratios to identify parameter drift or strategy degradation. Position size efficiency and execution quality monitoring ensures that calculated recommendations translate effectively into actual trading results. Tracking correlation between calculated and realized risk helps identify discrepancies between theoretical and practical risk exposure.
Monthly calibration provides more comprehensive parameter assessment using the most recent 100 trades to maintain statistical relevance while capturing current market conditions. Kelly mode appropriateness requires reassessment based on recent market volatility and performance characteristics, potentially shifting between Full, Half, and Quarter Kelly approaches as conditions change. Transaction cost evaluation ensures that commission structures, spreads, and slippage estimates remain accurate and current.
Quarterly strategic reviews encompass comprehensive strategy performance analysis comparing long-term results against expectations and identifying trends in effectiveness. Market regime assessment evaluates parameter stability across different market conditions, determining whether strategy characteristics remain consistent or require fundamental adjustments. Strategic modifications to position sizing methodology may become necessary as markets evolve or trading approaches mature, ensuring that Kelly implementation continues supporting optimal capital allocation objectives.
Professional Applications
This calculator serves diverse professional applications across the financial industry. Quantitative hedge funds utilize the implementation for systematic position sizing within algorithmic trading frameworks, where mathematical precision and consistent application prove essential for institutional capital management. Professional discretionary traders benefit from optimized position management that removes emotional bias while maintaining flexibility for market-specific adjustments. Portfolio managers employ the calculator for developing risk-adjusted allocation strategies that enhance returns while maintaining prudent risk controls across diverse asset classes and investment strategies.
Individual traders seeking mathematical optimization of capital allocation find the calculator provides institutional-grade methodology previously available only to professional money managers. The Kelly Criterion establishes theoretical foundation for optimal capital allocation across both single strategies and multiple trading systems, offering significant advantages over arbitrary position sizing methods that rely on intuition or fixed percentage approaches. Professional implementation ensures consistent application of mathematically sound principles while adapting to changing market conditions and strategy performance characteristics.
Conclusion
The Kelly Criterion represents one of the few mathematically optimal solutions to fundamental investment problems. When properly understood and carefully implemented, it provides significant competitive advantage in financial markets. This calculator implements modern refinements to Kelly's original formula while maintaining accessibility for practical trading applications.
Success with Kelly requires ongoing learning, systematic application, and continuous refinement based on market feedback and evolving research. Users who master Kelly principles and implement them systematically can expect superior risk-adjusted returns and more consistent capital growth over extended periods.
The extensive academic literature provides rich resources for deeper study, while practical experience builds the intuition necessary for effective implementation. Regular parameter updates, conservative approaches with limited data, and disciplined adherence to calculated recommendations are essential for optimal results.
References
Archer, M. D. (2010). Getting Started in Currency Trading: Winning in Today's Forex Market (3rd ed.). John Wiley & Sons.
Baker, R. D., & McHale, I. G. (2012). An empirical Bayes approach to optimising betting strategies. Journal of the Royal Statistical Society: Series D (The Statistician), 61(1), 75-92.
Breiman, L. (1961). Optimal gambling systems for favorable games. In J. Neyman (Ed.), Proceedings of the Fourth Berkeley Symposium on Mathematical Statistics and Probability (pp. 65-78). University of California Press.
Brown, D. B. (1976). Optimal portfolio growth: Logarithmic utility and the Kelly criterion. In W. T. Ziemba & R. G. Vickson (Eds.), Stochastic Optimization Models in Finance (pp. 1-23). Academic Press.
Browne, S., & Whitt, W. (1996). Portfolio choice and the Bayesian Kelly criterion. Advances in Applied Probability, 28(4), 1145-1176.
Estrada, J. (2008). Geometric mean maximization: An overlooked portfolio approach? The Journal of Investing, 17(4), 134-147.
Hakansson, N. H., & Ziemba, W. T. (1995). Capital growth theory. In R. A. Jarrow, V. Maksimovic, & W. T. Ziemba (Eds.), Handbooks in Operations Research and Management Science (Vol. 9, pp. 65-86). Elsevier.
Kahneman, D., & Tversky, A. (1979). Prospect theory: An analysis of decision under risk. Econometrica, 47(2), 263-291.
Kaufman, P. J. (2013). Trading Systems and Methods (5th ed.). John Wiley & Sons.
Kelly Jr, J. L. (1956). A new interpretation of information rate. Bell System Technical Journal, 35(4), 917-926.
Lo, A. W., & MacKinlay, A. C. (1999). A Non-Random Walk Down Wall Street. Princeton University Press.
MacLean, L. C., Sanegre, E. O., Zhao, Y., & Ziemba, W. T. (2004). Capital growth with security. Journal of Economic Dynamics and Control, 28(4), 937-954.
MacLean, L. C., Thorp, E. O., & Ziemba, W. T. (2011). The Kelly Capital Growth Investment Criterion: Theory and Practice. World Scientific.
Michaud, R. O. (1989). The Markowitz optimization enigma: Is 'optimized' optimal? Financial Analysts Journal, 45(1), 31-42.
Pabrai, M. (2007). The Dhandho Investor: The Low-Risk Value Method to High Returns. John Wiley & Sons.
Shannon, C. E. (1948). A mathematical theory of communication. Bell System Technical Journal, 27(3), 379-423.
Tharp, V. K. (2007). Trade Your Way to Financial Freedom (2nd ed.). McGraw-Hill.
Thorp, E. O. (2006). The Kelly criterion in blackjack sports betting, and the stock market. In L. C. MacLean, E. O. Thorp, & W. T. Ziemba (Eds.), The Kelly Capital Growth Investment Criterion: Theory and Practice (pp. 789-832). World Scientific.
Van Tharp, K. (2007). Trade Your Way to Financial Freedom (2nd ed.). McGraw-Hill Education.
Vince, R. (1992). The Mathematics of Money Management: Risk Analysis Techniques for Traders. John Wiley & Sons.
Vince, R., & Zhu, H. (2015). Optimal betting under parameter uncertainty. Journal of Statistical Planning and Inference, 161, 19-31.
Ziemba, W. T. (2003). The Stochastic Programming Approach to Asset, Liability, and Wealth Management. The Research Foundation of AIMR.
Further Reading
For comprehensive understanding of Kelly Criterion applications and advanced implementations:
MacLean, L. C., Thorp, E. O., & Ziemba, W. T. (2011). The Kelly Capital Growth Investment Criterion: Theory and Practice. World Scientific.
Vince, R. (1992). The Mathematics of Money Management: Risk Analysis Techniques for Traders. John Wiley & Sons.
Thorp, E. O. (2017). A Man for All Markets: From Las Vegas to Wall Street. Random House.
Cover, T. M., & Thomas, J. A. (2006). Elements of Information Theory (2nd ed.). John Wiley & Sons.
Ziemba, W. T., & Vickson, R. G. (Eds.). (2006). Stochastic Optimization Models in Finance. World Scientific.
Price MapperPrice Mapper is a dynamic trading tool designed to map strike prices between two related financial instruments using real-time ratio calculations. The indicator displays a customizable table showing strike levels for your primary ticker alongside their equivalent mapped prices for a secondary instrument, making it invaluable for cross-market analysis, pairs trading, and hedging strategies. Whether you're comparing an ETF to its underlying futures, analyzing currency pairs, or exploring relationships between correlated assets, Price Mapper provides instant visual mapping of how price movements in one instrument translate to equivalent levels in another. The ratio calculation updates daily using 12:00 PM New York time closing prices, ensuring consistent reference points while maintaining relevance to current market conditions.
The tool automatically centers around the current market price and allows complete customization of display parameters including strike increments, number of price levels, decimal precision, and table positioning. Advanced color customization options let you highlight the current price level and adjust the appearance to match your trading setup. Price Mapper eliminates the mental math typically required when trading related instruments, instantly showing you equivalent entry and exit levels across different markets. This makes it particularly powerful for options traders working with ETFs and futures, forex traders analyzing currency correlations, or any trader looking to understand precise price relationships between connected financial instruments.
Pivot Points HL DetailedThis indicator marks important turning points in the market, showing you the most recent swing high and swing low as horizontal lines across the chart. Each pivot line has a price label where it formed and a small counter that updates whenever the market touches that level again. The line’s color reflects the prevailing trend, determined by an EMA filter, so you can quickly see if the level is likely acting as support or resistance in the current market environment.
It works by scanning recent bars for points where price made a local high higher than several bars to its left and right, or a local low lower than several bars to its left and right. These pivots are calculated directly from price action using the ta.pivothigh and ta.pivotlow functions. Once identified, the level is tracked in real time, counting every time price crosses it. The EMA provides context: if price is above the EMA, the market is considered in an uptrend and the pivots are colored to match; if price is below, they’re marked as part of a downtrend.
For traders, this offers a clean way to see where the market has turned before and whether those levels are still relevant. Strong levels often show multiple touches, which can be used for entries, exits, or risk management. The built-in alert system can notify you when price approaches either the most recent swing high or swing low, so you can react quickly.
This tool can be applied in almost any market — forex, stocks, indices, commodities, or crypto — because price tends to respect recent swing points regardless of the asset class. It tends to be most effective in liquid markets, where many traders see and react to the same key levels, and it’s valuable in both trending and ranging conditions, though the EMA trend filter adds extra clarity when the market is moving directionally.
Clean Multi-Indicator Alignment System
Overview
A sophisticated multi-indicator alignment system designed for 24/7 trading across all markets, with pure signal-based exits and no time restrictions. Perfect for futures, forex, and crypto markets that operate around the clock.
Key Features
🎯 Multi-Indicator Confluence System
EMA Cross Strategy: Fast EMA (5) and Slow EMA (10) for precise trend direction
VWAP Integration: Institution-level price positioning analysis
RSI Momentum: 7-period RSI for momentum confirmation and reversal detection
MACD Signals: Optimized 8/17/5 configuration for scalping responsiveness
Volume Confirmation: Customizable volume multiplier (default 1.6x) for signal validation
🚀 Advanced Entry Logic
Initial Full Alignment: Requires all 5 indicators + volume confirmation
Smart Continuation Entries: EMA9 pullback entries when trend momentum remains intact
Flexible Time Controls: Optional session filtering or 24/7 operation
🎪 Pure Signal-Based Exits
No Forced Closes: Positions exit only on technical signal reversals
Dual Exit Conditions: EMA9 breakdown + RSI flip OR MACD cross + EMA20 breakdown
Trend Following: Allows profitable trends to run their full course
Perfect for Swing Scalping: Ideal for multi-session position holding
📊 Visual Interface
Real-Time Status Dashboard: Live alignment monitoring for all indicators
Color-Coded Candles: Instant visual confirmation of entry/exit signals
Clean Chart Display: Toggle-able EMAs and VWAP with professional styling
Signal Differentiation: Clear labels for entries, X-crosses for exits
🔔 Alert System
Entry Notifications: Separate alerts for buy/sell signals
Exit Warnings: Technical breakdown alerts for position management
Mobile Ready: Push notifications to TradingView mobile app
Market Applications
Perfect For:
Gold Futures (GC): 24-hour precious metals trading
NASDAQ Futures (NQ): High-volatility index scalping
Forex Markets: Currency pairs with continuous operation
Crypto Trading: 24/7 cryptocurrency momentum plays
Energy Futures: Oil, gas, and commodity swing trades
Optimal Timeframes:
1-5 Minutes: Ultra-fast scalping during high volatility
5-15 Minutes: Balanced approach for most markets
15-30 Minutes: Swing scalping for trend following
🧠 Smart Position Management
Tracks implied position direction
Prevents conflicting signals
Allows trend continuation entries
State-aware exit logic
⚡ Scalping Optimized
Fast-reacting indicators with shorter periods
Volume-based confirmation reduces false signals
Clean entry/exit visualization
Minimal lag for time-sensitive trades
Configuration Options
All parameters fully customizable:
EMA Lengths: Adjustable from 1-30 periods
RSI Period: 1-14 range for different market conditions
MACD Settings: Fast (1-15), Slow (1-30), Signal (1-10)
Volume Confirmation: 0.5-5.0x multiplier range
Visual Preferences: Colors, displays, and table options
Risk Management Features
Clear visual exit signals prevent emotion-based decisions
Volume confirmation reduces false breakouts
Multi-indicator confluence improves signal quality
Optional time filtering for session-specific strategies
Best Use Cases
Futures Scalping: NQ, ES, GC during active sessions
Forex Swing Trading: Major pairs during overlap periods
Crypto Momentum: Bitcoin, Ethereum trend following
24/7 Automated Systems: Algorithmic trading implementation
Multi-Market Scanning: Portfolio-wide signal monitoring
Volume Profile (Simple)Simple Volume Profile (Simple)
Master the Market's Structure with a Clear View of Volume
by mercaderoaurum
The Simple Volume Profile (Simple) indicator removes the guesswork by showing you exactly where the most significant trading activity has occurred. By visualizing the Point of Control (POC) and Value Area (VA) for today and yesterday, you can instantly identify the price levels that matter most, giving you a critical edge in your intraday trading.
This tool is specifically optimized for day trading SPY on a 1-minute chart, but it's fully customizable for any symbol or timeframe.
Key Features
Multi-Day Analysis: Automatically plots the volume profiles for the current and previous trading sessions, allowing you to see how today's market is reacting to yesterday's key levels.
Automatic Key Level Plotting: Instantly see the most important levels from each session:
Point of Control (POC): The single price level with the highest traded volume, acting as a powerful magnet for price.
Value Area High (VAH): The upper boundary of the area where 50% of the volume was traded. It often acts as resistance.
Value Area Low (VAL): The lower boundary of the 50% value area, often acting as support.
Extended Levels: The POC, VAH, and VAL from previous sessions are automatically extended into the current day, providing a clear map of potential support and resistance zones.
Customizable Sessions: While optimized for the US stock market, you can define any session time and time zone, making it a versatile tool for forex, crypto, and futures traders.
Core Trading Strategies
The Simple Volume Profile helps you understand market context. Instead of trading blind, you can now make decisions based on where the market has shown the most interest.
1. Identifying Support and Resistance
This is the most direct way to use the indicator. The extended lines from the previous day are your roadmap for the current session.
Previous Day's POC (pPOC): This is the most significant level. Watch for price to react strongly here. It can act as powerful support if approached from above or strong resistance if approached from below.
Previous Day's VAH (pVAH): Expect this level to act as initial resistance. A clean break above pVAH can signal a strong bullish trend.
Previous Day's VAL (pVAL): Expect this level to act as initial support. A firm break below pVAL can indicate a strong bearish trend.
Example Strategy: If SPY opens and rallies up to the previous day's VAH and stalls, this is a high-probability area to look for a short entry, with a stop loss just above the level.
2. The "Open-Drive" Rejection
How the market opens in relation to the previous day's value area is a powerful tell.
Open Above Yesterday's Value Area: If the market opens above the pVAH, it signals strength. The first pullback to test the pVAH is often a key long entry point. The level is expected to flip from resistance to support.
Open Below Yesterday's Value Area: If the market opens below the pVAL, it signals weakness. The first rally to test the pVAL is a potential short entry, as the level is likely to act as new resistance.
3. Fading the Extremes
When price pushes far outside the previous day's value area, it can become overextended.
Reversal at Highs: If price rallies significantly above the pVAH and then starts to lose momentum (e.g., forming bearish divergence on RSI or a topping pattern), it could be an opportunity to short the market, targeting a move back toward the pVAH or pPOC.
Reversal at Lows: Conversely, if price drops far below the pVAL and shows signs of bottoming, it can be a good opportunity to look for a long entry, targeting a reversion back to the value area.
Recommended Settings (SPY Intraday)
These settings are the default and are optimized for scalping or day trading SPY on a 1-minute chart.
Value Area (%): 50%. This creates a tighter, more sensitive value area, perfect for identifying the most critical intraday zones.
Number of Rows: 1000. This high resolution is essential for a low-volatility instrument like SPY, ensuring that the profile is detailed and the levels are precise.
Session Time: 0400-1800 in America/New_York. This captures the full pre-market and core session, which is crucial for understanding the day's complete volume story.
Ready to trade with an edge? Add the Simple Volume Profile (Multi-Day) to your chart now and see the market in a new light!
Keltner Channel Based Grid Strategy # KC Grid Strategy - Keltner Channel Based Grid Trading System
## Strategy Overview
KC Grid Strategy is an innovative grid trading system that combines the power of Keltner Channels with dynamic position sizing to create a mean-reversion trading approach. This strategy automatically adjusts position sizes based on price deviation from the Keltner Channel center line, implementing a systematic grid-based approach that capitalizes on market volatility and price oscillations.
## Core Principles
### Keltner Channel Foundation
The strategy builds upon the Keltner Channel indicator, which consists of:
- **Center Line**: Moving average (EMA or SMA) of the price
- **Upper Band**: Center line + (ATR/TR/Range × Multiplier)
- **Lower Band**: Center line - (ATR/TR/Range × Multiplier)
### Grid Trading Logic
The strategy implements a sophisticated grid system where:
1. **Position Direction**: Inversely correlated to price position within the channel
- When price is above center line → Short positions
- When price is below center line → Long positions
2. **Position Size**: Proportional to distance from center line
- Greater deviation = Larger position size
3. **Grid Activation**: Positions are adjusted only when the difference exceeds a predefined grid threshold
### Mathematical Foundation
The core calculation uses the KC Rate formula:
```
kcRate = (close - ma) / bandWidth
targetPosition = kcRate × maxAmount × (-1)
```
This creates a mean-reversion system where positions increase as price moves further from the mean, expecting eventual return to equilibrium.
## Parameter Guide
### Time Range Settings
- **Start Date**: Beginning of strategy execution period
- **End Date**: End of strategy execution period
### Core Parameters
1. **Number of Grids (NumGrid)**: Default 12
- Controls grid sensitivity and position adjustment frequency
- Higher values = More frequent but smaller adjustments
- Lower values = Less frequent but larger adjustments
2. **Length**: Default 10
- Period for moving average and volatility calculations
- Shorter periods = More responsive to recent price action
- Longer periods = Smoother, less noisy signals
3. **Grid Coefficient (kcRateMult)**: Default 1.33
- Multiplier for channel width calculation
- Higher values = Wider channels, less frequent trades
- Lower values = Narrower channels, more frequent trades
4. **Source**: Default Close
- Price source for calculations (Close, Open, High, Low, etc.)
- Close price typically provides most reliable signals
5. **Use Exponential MA**: Default True
- True = Uses EMA (more responsive to recent prices)
- False = Uses SMA (equal weight to all periods)
6. **Bands Style**: Default "Average True Range"
- **Average True Range**: Smoothed volatility measure (recommended)
- **True Range**: Current bar's volatility only
- **Range**: Simple high-low difference
## How to Use
### Setup Instructions
1. **Apply to Chart**: Add the strategy to your desired timeframe and instrument
2. **Configure Parameters**: Adjust settings based on market characteristics:
- Volatile markets: Increase Grid Coefficient, reduce Number of Grids
- Stable markets: Decrease Grid Coefficient, increase Number of Grids
3. **Set Time Range**: Define your backtesting or live trading period
4. **Monitor Performance**: Watch strategy performance metrics and adjust as needed
### Optimal Market Conditions
- **Range-bound markets**: Strategy performs best in sideways trending markets
- **High volatility**: Benefits from frequent price oscillations around the mean
- **Liquid instruments**: Ensures efficient order execution and minimal slippage
### Position Management
The strategy automatically:
- Calculates optimal position sizes based on account equity
- Adjusts positions incrementally as price moves through grid levels
- Maintains risk control through maximum position limits
- Executes trades only during specified time periods
## Risk Warnings
### ⚠️ Important Risk Considerations
1. **Trending Market Risk**:
- Strategy may underperform or generate losses in strong trending markets
- Mean-reversion assumption may fail during sustained directional moves
- Consider market regime analysis before deployment
2. **Leverage and Position Size Risk**:
- Strategy uses pyramiding (up to 20 positions)
- Large positions may accumulate during extended moves
- Monitor account equity and margin requirements closely
3. **Volatility Risk**:
- Sudden volatility spikes may trigger multiple rapid position adjustments
- Consider volatility filters during high-impact news events
- Backtest across different volatility regimes
4. **Execution Risk**:
- Strategy calculates on every tick (calc_on_every_tick = true)
- May generate frequent orders in volatile conditions
- Ensure adequate execution infrastructure and consider transaction costs
5. **Parameter Sensitivity**:
- Performance highly dependent on parameter optimization
- Over-optimization may lead to curve-fitting
- Regular parameter review and adjustment may be necessary
## Suitable Scenarios
### Ideal Market Conditions
- **Sideways/Range-bound markets**: Primary use case
- **Mean-reverting instruments**: Forex pairs, some commodities
- **Stable volatility environments**: Consistent ATR patterns
- **Liquid markets**: Major currency pairs, popular stocks/indices
## Important Notes
### Strategy Limitations
1. **No Stop Loss**: Strategy relies on mean reversion without traditional stop losses
2. **Capital Requirements**: Requires sufficient capital for grid-based position sizing
3. **Market Regime Dependency**: Performance varies significantly across different market conditions
## Disclaimer
This strategy is provided for educational and research purposes only. Past performance does not guarantee future results. Trading involves substantial risk of loss and is not suitable for all investors. Users should thoroughly test the strategy and understand its mechanics before risking real capital. The author assumes no responsibility for trading losses incurred through the use of this strategy.
---
# KC网格策略 - 基于肯特纳通道的网格交易系统
## 策略概述
KC网格策略是一个创新的网格交易系统,它将肯特纳通道的力量与动态仓位调整相结合,创建了一个均值回归交易方法。该策略根据价格偏离肯特纳通道中心线的程度自动调整仓位大小,实施系统化的网格方法,利用市场波动和价格振荡获利。
## 核心原理
### 肯特纳通道基础
该策略建立在肯特纳通道指标之上,包含:
- **中心线**: 价格的移动平均线(EMA或SMA)
- **上轨**: 中心线 + (ATR/TR/Range × 乘数)
- **下轨**: 中心线 - (ATR/TR/Range × 乘数)
### 网格交易逻辑
该策略实施复杂的网格系统:
1. **仓位方向**: 与价格在通道中的位置呈反向关系
- 当价格高于中心线时 → 空头仓位
- 当价格低于中心线时 → 多头仓位
2. **仓位大小**: 与距离中心线的距离成正比
- 偏离越大 = 仓位越大
3. **网格激活**: 只有当差异超过预定义的网格阈值时才调整仓位
### 数学基础
核心计算使用KC比率公式:
```
kcRate = (close - ma) / bandWidth
targetPosition = kcRate × maxAmount × (-1)
```
这创建了一个均值回归系统,当价格偏离均值越远时仓位越大,期望最终回归均衡。
## 参数说明
### 时间范围设置
- **开始日期**: 策略执行期间的开始时间
- **结束日期**: 策略执行期间的结束时间
### 核心参数
1. **网格数量 (NumGrid)**: 默认12
- 控制网格敏感度和仓位调整频率
- 较高值 = 更频繁但较小的调整
- 较低值 = 较少频繁但较大的调整
2. **长度**: 默认10
- 移动平均线和波动率计算的周期
- 较短周期 = 对近期价格行为更敏感
- 较长周期 = 更平滑,噪音更少的信号
3. **网格系数 (kcRateMult)**: 默认1.33
- 通道宽度计算的乘数
- 较高值 = 更宽的通道,较少频繁的交易
- 较低值 = 更窄的通道,更频繁的交易
4. **数据源**: 默认收盘价
- 计算的价格来源(收盘价、开盘价、最高价、最低价等)
- 收盘价通常提供最可靠的信号
5. **使用指数移动平均**: 默认True
- True = 使用EMA(对近期价格更敏感)
- False = 使用SMA(对所有周期等权重)
6. **通道样式**: 默认"平均真实范围"
- **平均真实范围**: 平滑的波动率测量(推荐)
- **真实范围**: 仅当前K线的波动率
- **范围**: 简单的高低价差
## 使用方法
### 设置说明
1. **应用到图表**: 将策略添加到您所需的时间框架和交易品种
2. **配置参数**: 根据市场特征调整设置:
- 波动市场:增加网格系数,减少网格数量
- 稳定市场:减少网格系数,增加网格数量
3. **设置时间范围**: 定义您的回测或实盘交易期间
4. **监控表现**: 观察策略表现指标并根据需要调整
### 最佳市场条件
- **区间震荡市场**: 策略在横盘趋势市场中表现最佳
- **高波动性**: 受益于围绕均值的频繁价格振荡
- **流动性强的品种**: 确保高效的订单执行和最小滑点
### 仓位管理
策略自动:
- 根据账户权益计算最优仓位大小
- 随着价格在网格水平移动逐步调整仓位
- 通过最大仓位限制维持风险控制
- 仅在指定时间段内执行交易
## 风险警示
### ⚠️ 重要风险考虑
1. **趋势市场风险**:
- 策略在强趋势市场中可能表现不佳或产生损失
- 在持续方向性移动期间均值回归假设可能失效
- 部署前考虑市场制度分析
2. **杠杆和仓位大小风险**:
- 策略使用金字塔加仓(最多20个仓位)
- 在延长移动期间可能积累大仓位
- 密切监控账户权益和保证金要求
3. **波动性风险**:
- 突然的波动性激增可能触发多次快速仓位调整
- 在高影响新闻事件期间考虑波动性过滤器
- 在不同波动性制度下进行回测
4. **执行风险**:
- 策略在每个tick上计算(calc_on_every_tick = true)
- 在波动条件下可能产生频繁订单
- 确保充足的执行基础设施并考虑交易成本
5. **参数敏感性**:
- 表现高度依赖于参数优化
- 过度优化可能导致曲线拟合
- 可能需要定期参数审查和调整
## 适用场景
### 理想市场条件
- **横盘/区间震荡市场**: 主要用例
- **均值回归品种**: 外汇对,某些商品
- **稳定波动性环境**: 一致的ATR模式
- **流动性市场**: 主要货币对,热门股票/指数
## 注意事项
### 策略限制
1. **无止损**: 策略依赖均值回归而无传统止损
2. **资金要求**: 需要充足资金进行基于网格的仓位调整
3. **市场制度依赖性**: 在不同市场条件下表现差异显著
## 免责声明
该策略仅供教育和研究目的。过往表现不保证未来结果。交易涉及重大损失风险,并非适合所有投资者。用户应在投入真实资金前彻底测试策略并理解其机制。作者对使用此策略产生的交易损失不承担任何责任。
---
**Strategy Version**: Pine Script v6
**Author**: Signal2Trade
**Last Updated**: 2025-8-9
**License**: Open Source (Mozilla Public License 2.0)
SM Trap Detector – Liquidity Sweeps & Institutional ReversalsOverview:
This script is designed to help traders detect Smart Money traps, liquidity grabs, and false breakouts with high precision.
Inspired by institutional trading logic (SMC, ICT, Wyckoff), this tool combines:
🟦 Liquidity Zone Mapping – Detects stop hunt targets near highs/lows
🚨 Trap Candle Detection – Identifies fakeouts using wick + volume logic
✅ Reversal Confirmation – Entry signals based on real market structure
🧭 Dashboard Panel – Always see the last trap type, price, and confirmation
🔔 Real-Time Alerts – Stay notified of traps and entry points
🧠 Logic Breakdown:
Trap Candle = Large wick, small body, volume spike, and sweep of a liquidity zone
Confirmed Entry = Reversal price action following the trap (engulfing-style)
📈 Best Used On:
Markets: Crypto, Forex, Stocks
Timeframes: No limitation but works best on 1H, 4H, Daily
🛠 Suggested Use:
Trade only confirmed entries for best results
Place stops beyond wick highs/lows
Target previous structure or use RR-based exits
📊 Backtest Tip:
Use alerts + replay mode to manually validate past traps.
Note: Please backtest before using it for entry.
LANZ Strategy 7.0🔷 LANZ Strategy 7.0 — Multi-Session Breakout Logic with Midnight-Cross Support, Dynamic SL/TP, Multi-Account Lot Sizing & Real-Time Visual Tracking
LANZ Strategy 7.0 is a robust, visually-driven trading indicator designed to capture high-probability breakouts from a customizable market session.
It includes full support for sessions that cross midnight, dynamic calculation of Entry Price (EP), Stop Loss (SL) and Take Profit (TP) levels, and a multi-account lot sizing panel for precise risk management.
The system is built to only trigger one trade per day and manages the full trade lifecycle with automated visual cleanup and detailed alerts.
📌 This is an indicator, not a strategy — it does not place trades automatically, but provides exact entry setups, SL/TP levels, risk-based lot size guidance, and real-time alerts for execution.
🧠 Core Logic & Features
🚀 Entry Signal (BUY/SELL)
The trading day begins with a Decision Session (yellow box) where the high/low range is recorded.
Once the Operative Session starts (blue zone), the first touch of the session’s high triggers a BUY setup, and the first touch of the session’s low triggers a SELL setup.
Only one valid trade can be triggered per day — the system locks after the first signal.
⚙️ Dynamic Stop Loss & Take Profit
SL levels are derived from the Decision Session high/low using customizable Fibonacci multipliers (independent for BUY and SELL).
TP is dynamically calculated from the EP–SL distance using a user-defined Risk:Reward ratio (R:R).
All EP, SL, and TP levels are drawn as independent lines with customizable colors, label text size, and style.
⏳ Session & Midnight-Cross Support
Works with any custom Decision/Operative session hours, including sessions that start one day and end the next.
Properly tracks time zones using New York session time for consistency.
Includes Cutoff Time: after this limit, no new entries are allowed, and all visuals are auto-cleared if no trade was triggered.
💰 Multi-Account Risk-Based Lot Sizing
Supports up to 5 independent accounts.
Each account can have:
Own capital
Own risk percentage per trade
Lot size is auto-calculated based on:
SL distance (in pips or points)
Pip value (auto-detected for Forex or manually set for indices/commodities)
Results are displayed in a clean lot size info panel.
🖼️ Real-Time Visual Tracking
Dynamic updates to all levels during the Decision Session.
EP, SL, TP lines update if the session high/low changes before the Operative Session starts.
Trade result labels:
SL hit → “–1.00%” in red
TP hit → “+X.XX%” in green
Manual close at Operative End → shows actual % result in blue or purple.
🔔 Alerts for Every Key Event
Session start notification
EP entry triggered
SL or TP hit
Manual close at session end
Missed entry due to cutoff
🧭 Execution Flow
Decision Session (Yellow) — Capture high/low range.
Operative Session (Blue) — First touch of high = BUY setup; first touch of low = SELL setup.
Plot EP, SL, TP lines + calculate lot sizes for all active accounts.
Track trade until SL, TP, or Operative End.
If no entry triggered by Cutoff Time → clean all visuals and notify.
💡 Ideal For:
Traders who operate breakout logic on specific sessions (NY, London, Asian, or custom).
Those managing multiple accounts with strict risk per trade.
Anyone trading assets with sessions crossing midnight.
👨💻 Credits:
Developer: LANZ
Logic Design: LANZ
Built For: Multi-timeframe session breakouts with high precision.
Purpose: One-shot trade per day, risk consistency, and total visual clarity.
BTC/USD Confluence Breakout Pro – IST EditionBTC/USD Confluence Breakout Pro – IST Edition is a multi-factor breakout trading system designed for intraday and swing traders.
It combines trend, momentum, price action, volume, and candlestick analysis with time-based volatility windows to deliver high-probability Buy/Sell signals.
Key Features:
Trend Filters: EMA 9/21 crossover + optional EMA 200 bias filter.
Price Action Breakouts: Detects closes above/below the last N bars’ range.
Candlestick Patterns: Bullish/Bearish engulfing, hammer, and shooting star.
Momentum Indicators: RSI (14) with configurable thresholds, MACD (12/26/9).
Volume Confirmation: Volume spike vs 20-period SMA.
IST Breakout Windows: Highlights Early London, London–US Overlap, and US Open momentum periods (Hyderabad/IST time). Optionally restricts signals to these windows.
Risk Management: ATR-based stop-loss + auto-plotted 1R, 2R, and 3R take-profit levels.
Visual Aids: EMA plots, bar coloring, shaded volatility windows, and clear entry/exit labels.
Alerts: Configurable alerts for both Buy and Sell signals.
Best Use:
Apply on 1m–15m charts for intraday trading or 1H–4H for swings.
Works best during high-volatility IST windows (London–US overlap & US open).
Ideal for BTC/USD but adaptable to other crypto or forex pairs.
MSFA_LibraryLibrary "MSFA_library"
TODO: add library description here
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
getPipSize(multiplier)
Calculates the pip size of the current market
Parameters:
multiplier (int) : The mintick point multiplier (1 by default, 10 for FX/Crypto/CFD but can be used to override when certain markets require)
Returns: The pip size for the current market
truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places
Parameters:
number (float) : The number to truncate
decimalPlaces (simple float) : (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(number)
Converts pips into whole numbers
Parameters:
number (float) : The pip number to convert into a whole number
Returns: The converted number
toPips(number)
Converts whole numbers back into pips
Parameters:
number (float) : The whole number to convert into pips
Returns: The converted number
getPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period
Parameters:
value1 (float) : The first value to reference
value2 (float) : The second value to reference
lookback (int) : The lookback period to analyze
Returns: The percent change over the two values and lookback period
random(minRange, maxRange)
Wichmann–Hill Pseudo-Random Number Generator
Parameters:
minRange (float) : The smallest possible number (default: 0)
maxRange (float) : The largest possible number (default: 1)
Returns: A random number between minRange and maxRange
bullFib(priceLow, priceHigh, fibRatio)
Calculates a bullish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio)
Calculates a bearish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(length, maType)
Gets a Moving Average based on type (! MUST BE CALLED ON EVERY TICK TO BE ACCURATE, don't place in scopes)
Parameters:
length (simple int) : The MA period
maType (string) : The type of MA
Returns: A moving average with the given parameters
barsAboveMA(lookback, ma)
Counts how many candles are above the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(lookback, ma)
Counts how many candles are below the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently (based on closing prices)
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA (based on closing prices)
getPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
lookback (int) : The lookback period to look back over
direction (int) : The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize()
Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize()
Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize()
Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent()
Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(fib, colorMatch)
Checks if the current bar is a hammer candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(fib, colorMatch)
Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(wickSize, bodySize)
Checks if the current bar is a doji candle based on the given parameters
Parameters:
wickSize (float) : (default=2) The maximum top wick size compared to the bottom (and vice versa)
bodySize (float) : (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bullish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bearish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar()
Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar()
Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range
Parameters:
startTime (int) : The UNIX date timestamp to begin searching from
endTime (int) : the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze
Parameters:
monday (bool) : Should the script analyze this day? (true/false)
tuesday (bool) : Should the script analyze this day? (true/false)
wednesday (bool) : Should the script analyze this day? (true/false)
thursday (bool) : Should the script analyze this day? (true/false)
friday (bool) : Should the script analyze this day? (true/false)
saturday (bool) : Should the script analyze this day? (true/false)
sunday (bool) : Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter(atrValue, maxSize)
Parameters:
atrValue (float)
maxSize (float)
tradeCount()
Calculate total trade count
Returns: Total closed trade count
isLong()
Check if we're currently in a long trade
Returns: True if our position size is positive
isShort()
Check if we're currently in a short trade
Returns: True if our position size is negative
isFlat()
Check if we're currentlyflat
Returns: True if our position size is zero
wonTrade()
Check if this bar falls after a winning trade
Returns: True if we just won a trade
lostTrade()
Check if this bar falls after a losing trade
Returns: True if we just lost a trade
maxDrawdownRealized()
Gets the max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
Returns: The max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
totalPipReturn()
Gets the total amount of pips won/lost (as a whole number)
Returns: Total amount of pips won/lost (as a whole number)
longWinCount()
Count how many winning long trades we've had
Returns: Long win count
shortWinCount()
Count how many winning short trades we've had
Returns: Short win count
longLossCount()
Count how many losing long trades we've had
Returns: Long loss count
shortLossCount()
Count how many losing short trades we've had
Returns: Short loss count
breakEvenCount(allowanceTicks)
Count how many break-even trades we've had
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even count
longCount()
Count how many long trades we've taken
Returns: Long trade count
shortCount()
Count how many short trades we've taken
Returns: Short trade count
longWinPercent()
Calculate win rate of long trades
Returns: Long win rate (0-100)
shortWinPercent()
Calculate win rate of short trades
Returns: Short win rate (0-100)
breakEvenPercent(allowanceTicks)
Calculate break even rate of all trades
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even win rate (0-100)
averageRR()
Calculate average risk:reward
Returns: Average winning trade divided by average losing trade
unitsToLots(units)
(Forex) Convert the given unit count to lots (multiples of 100,000)
Parameters:
units (float) : The units to convert into lots
Returns: Units converted to nearest lot size (as float)
skipTradeMonteCarlo(chance, debug)
Checks to see if trade should be skipped to emulate rudimentary Monte Carlo simulation
Parameters:
chance (float) : The chance to skip a trade (0-1 or 0-100, function will normalize to 0-1)
debug (bool) : Whether or not to display a label informing of the trade skip
Returns: True if the trade is skipped, false if it's not skipped (idea being to include this function in entry condition validation checks)
fillCell(tableID, column, row, title, value, bgcolor, txtcolor, tooltip)
This updates the given table's cell with the given values
Parameters:
tableID (table) : The table ID to update
column (int) : The column to update
row (int) : The row to update
title (string) : The title of this cell
value (string) : The value of this cell
bgcolor (color) : The background color of this cell
txtcolor (color) : The text color of this cell
tooltip (string)
Returns: Nothing.
Lot Size Calculator (Dynamic) with Manual Pip ValueDevoleper: Sheikh Rakib
This TradingView indicator helps you calculate the correct lot size based on your risk amount in USD and stop loss (SL) in pips. It dynamically detects pip value per lot depending on the trading instrument (e.g., Forex majors, minors, gold, crypto), and also allows manual override if needed.
✅ Key Features:
📏 Input SL in pips and risk amount in USD
⚙️ Automatically detects pip size and pip value per lot
🧮 Calculates lot size based on your inputs
✍️ Manual pip value override option if auto-detection is incorrect
🖥️ Clean, organized info panel displayed on chart
💹 Works with Forex, Gold (XAUUSD), Silver (XAGUSD), BTC, ETH, and more
📘 Usage Tips:
Set your SL in pips and how much you want to risk per trade (USD)
If the pip value is not calculated correctly (rare for exotic pairs), enable and set your own value using the “Manual Pip Value” input
Recommended for scalpers, day traders, and swing traders who want to manage risk smartly
Built with risk management in mind — because consistent trading starts with proper lot sizing.
thors_forex_factory_utilityLibrary "forex_factory_utility"
Supporting Utility Library for the Live Economic Calendar by toodegrees Indicator; responsible for data handling, and plotting news event data.
isLeapYear()
Finds if it's currently a leap year or not.
Returns: Returns True if the current year is a leap year.
daysMonth(M)
Provides the days in a given month of the year, adjusted during leap years.
Parameters:
M (int) : Month in numerical integer format (i.e. Jan=1).
Returns: Days in the provided month.
MMM(M)
Converts a month from a numerical integer format to a MMM format (i.e. 'Jan').
Parameters:
M (int) : Month in numerical integer format (i.e. Jan=1).
Returns: Month in MMM format (i.e. 'Jan').
dow(D)
Converts a numbered day of the week string in format to 'DDD' format (i.e. "1" = Sun).
Parameters:
D (string) : Numbered day of the week from 1 to 7, starting on Sunday.
Returns: Returns the day of the week in 'DDD' format (i.e. "Fri").
size(S, N)
Converts a size string into the corresponding Pine Script v5 format, or N times smaller/bigger.
Parameters:
S (string) : Size string: "Tiny", "Small", "Normal", "Large", or "Huge".
N (int) : Size variation, can be positive (larger than S), or negative (smaller than S).
Returns: Size string in Pine Script v5 format.
lineStyle(S)
Converts a line style string into the corresponding Pine Script v5 format.
Parameters:
S (string) : Line style string: "Dashed", "Dotted" or "Solid".
Returns: Line style string in Pine Script v5 format.
lineTrnsp(S)
Converts a transparency style string into the corresponding integer value.
Parameters:
S (string) : Line style string: "Light", "Medium" or "Heavy".
Returns: Transparency integer.
boxLoc(X, Y)
Converts position strings of X and Y into a table position in Pine Script v5 format.
Parameters:
X (string) : X-axis string: "Left", "Center", or "Right".
Y (string) : Y-axis string: "Top", "Middle", or "Bottom".
Returns: Table location string in Pine Script v5 format.
method bubbleSort_NewsTOD(N)
Performs bubble sort on a Forex Factory News array of all news from the same date, ordering them in ascending order based on the time of the day.
Namespace types: array
Parameters:
N (array) : Forex Factory News array.
Returns: void
bubbleSort_News(N)
Performs bubble sort on a Forex Factory News array, ordering them in ascending order based on the time of the day, and date.
Parameters:
N (array) : Forex Factory News array.
Returns: Sorted Forex Factory News array.
weekNews(N, C, I)
Creates a Forex Factory News array containing the current week's Forex Factory News.
Parameters:
N (array) : Forex Factory News array containing this week's unfiltered Forex Factory News.
C (array) : Currency filter array (string array).
I (array) : Impact filter array (color array).
Returns: Forex Factory News array containing the current week's Forex Factory News.
todayNews(W, D, M)
Creates a Forex Factory News array containing the current day's Forex Factory News.
Parameters:
W (array) : Forex Factory News array containing this week's Forex Factory News.
D (array) : Forex Factory News array for the current day's Forex Factory News.
M (bool) : Boolean that marks whether the current chart has a Day candle-switch at Midnight New York Time.
Returns: Forex Factory News array containing the current day's Forex Factory News.
adjustTimezone(N, TZH, TZM)
Transposes the Time of the Day, and Date, in the Forex Factory News Table to a custom Timezone.
Parameters:
N (array) : Forex Factory News array.
TZH (int) : Custom Timezone hour.
TZM (int) : Custom Timezone minute.
Returns: Reformatted Forex Factory News array.
NewsAMPM_TOD(N)
Reformats the Time of the Day in the Forex Factory News Table to AM/PM format.
Parameters:
N (array) : Forex Factory News array.
Returns: Reformatted Forex Factory News array.
impFilter(X, L, M, H)
Creates a filter array from the User's desired Forex Facory News to be shown based on Impact.
Parameters:
X (bool) : Boolean - if True Holidays listed on Forex Factory will be shown.
L (bool) : Boolean - if True Low Impact listed on Forex Factory News will be shown.
M (bool) : Boolean - if True Medium Impact listed on Forex Factory News will be shown.
H (bool) : Boolean - if True High Impact listed on Forex Factory News will be shown.
Returns: Color array with the colors corresponding to the Forex Factory News to be shown.
curFilter(A, C1, C2, C3, C4, C5, C6, C7, C8, C9)
Creates a filter array from the User's desired Forex Facory News to be shown based on Currency.
Parameters:
A (bool) : Boolean - if True News related to the current Chart's symbol listed on Forex Factory will be shown.
C1 (bool) : Boolean - if True News related to the Australian Dollar listed on Forex Factory will be shown.
C2 (bool) : Boolean - if True News related to the Canadian Dollar listed on Forex Factory will be shown.
C3 (bool) : Boolean - if True News related to the Swiss Franc listed on Forex Factory will be shown.
C4 (bool) : Boolean - if True News related to the Chinese Yuan listed on Forex Factory will be shown.
C5 (bool) : Boolean - if True News related to the Euro listed on Forex Factory will be shown.
C6 (bool) : Boolean - if True News related to the British Pound listed on Forex Factory will be shown.
C7 (bool) : Boolean - if True News related to the Japanese Yen listed on Forex Factory will be shown.
C8 (bool) : Boolean - if True News related to the New Zealand Dollar listed on Forex Factory will be shown.
C9 (bool) : Boolean - if True News related to the US Dollar listed on Forex Factory will be shown.
Returns: String array with the currencies corresponding to the Forex Factory News to be shown.
FF_OnChartLine(N, T, S)
Plots vertical lines where a Forex Factory News event will occur, or has already occurred.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
T (int) : Transparency integer value (0-100) for the lines.
S (string) : Line style in Pine Script v5 format.
Returns: void
method updateStringMatrix(M, P, V)
Updates a string Matrix containing the tooltips for Forex Factory News Event information for a given candle.
Namespace types: matrix
Parameters:
M (matrix) : String matrix.
P (int) : Position (row) of the Matrix to update based on the impact.
V (string) : information to push to the Matrix.
Returns: void
FF_OnChartLabel(N, Y, S, O)
Plots labels where a Forex Factory News has already occurred based on its/their impact.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
Y (string) : String that gives direction on where to plot the label (options= "Above", "Below", "Auto").
S (string) : Label size in Pine Script v5 format.
O (bool) : Show outline of labels?
Returns: void
historical(T, D, W, X)
Deletes Forex Factory News drawings which are ourside a specific Time window.
Parameters:
T (int) : Number of days input used for Forex Factory News drawings' history.
D (bool) : Boolean that when true will only display Forex Factory News drawings of the current day.
W (bool) : Boolean that when true will only display Forex Factory News drawings of the current week.
X (string) : String that gives direction on what lines to plot based on Time (options= "Future", "Both").
Returns: void
newTable(P, B)
Creates a new Table object with parameters tailored to the Forex Factory News Table.
Parameters:
P (string) : Position string for the Table, in Pine Script v5 format.
B (color) : Border and frame color for the News Table.
Returns: Empty Forex Factory News Table.
resetTable(P, S, headTextC, headBgC, B)
Resets a Table object with parameters and headers tailored to the Forex Factory News Table.
Parameters:
P (string) : Position string for the Table, in Pine Script v5 format.
S (string) : Size string for the Table's text, in Pine Script v5 format.
headTextC (color)
headBgC (color)
B (color) : Border and frame color for the News Table.
Returns: Empty Forex Factory News Table.
logNews(N, TBL, R, S, rowTextC, rowBgC)
Adds an event to the Forex Factory News Table.
Parameters:
N (News) : News-type object.
TBL (table) : Forex Factory News Table object to add the News to.
R (int) : Row to add the event to in the Forex Factory News Table.
S (string) : Size string for the event's text, in Pine Script v5 format.
rowTextC (color)
rowBgC (color)
Returns: void
FF_Table(N, P, S, headTextC, headBgC, rowTextC, rowBgC, B)
Creates the Forex Factory News Table.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
P (string) : Position string for the Table, in Pine Script v5 format.
S (string) : Size string for the Table's text, in Pine Script v5 format.
headTextC (color)
headBgC (color)
rowTextC (color)
rowBgC (color)
B (color) : Border and frame color for the News Table.
Returns: Forex Factory News Table.
timeline(N, T, F, TZH, TZM, D)
Shades Forex Factory News events in the Forex Factory News Table after they occur.
Parameters:
N (array) : News-type array containing all the Forex Factory News.
T (table) : Forex Facory News table object.
F (color) : Color used as shading once the Forex Factory News has occurred.
TZH (int) : Custom Timezone hour, if any.
TZM (int) : Custom Timezone minute, if any.
D (bool) : Daily Forex Factory News flag.
Returns: Forex Factory News Table.
News
Custom News type which contains informatino about a Forex Factory News Event.
Fields:
dow (series string) : Day of the week, in DDD format (i.e. 'Mon').
dat (series string) : Date, in MMM D format (i.e. 'Jan 1').
_t (series int)
tod (series string) : Time of the day, in hh:mm 24-Hour format (i.e 17:10).
cur (series string) : Currency, in CCC format (i.e. "USD").
imp (series color) : Impact, the respective impact color for Forex Factory News Events.
ttl (series string) : Title, encoded in a custom number mapping (see the toodegrees/toodegrees_forex_factory library to learn more).
tmst (series int)
ln (series line)
RSI and MACD Table with Cross [BY UKT]This script displays a compact, real-time dashboard of RSI and MACD values across multiple timeframes, along with the MACD cross direction (↑ / ↓) to help traders quickly assess momentum and trend strength.
▶️ Key Features:
RSI values for Weekly, Daily, 1H, 30M, 15M, 5M, and 3M
MACD values and cross status for each timeframe
Color-coded values for visual clarity (Green = Bullish, Red = Bearish)
Useful for both scalping and swing trading to get a multi-timeframe momentum overview
📌 Works on all asset classes: stocks, forex, crypto, and indices
👨💻 Developed in Pine Script v5






















