Repulse OB/OS Z-Score (v3)🔹 What this script does
This indicator is an enhanced version of the Repulse, originally developed by Eric Lefort. The Repulse measures bullish and bearish pressure in the market by analyzing price momentum and crowd behavior.
In this version, I introduce a Z-Score transformation to the Repulse values. The Z-Score converts raw outputs into a standardized statistical scale, allowing traders to identify when pressure is abnormally high or low relative to historical conditions.
🔹 How it works
Repulse Core: The original Repulse calculation compares buying vs. selling pressure, highlighting shifts in momentum.
Z-Scoring Method: Repulse values are normalized around their mean and scaled by standard deviation. This transforms the indicator into a dimensionless metric, where:
Positive Z-Scores indicate stronger-than-usual bullish pressure.
Negative Z-Scores indicate stronger-than-usual bearish pressure.
Bands: Thresholds such as ±1 or ±2 Z-Scores can help detect when pressure is stretched, potentially signaling exhaustion or reversal points.
🔹 Why it’s useful
Statistical Clarity: Traders can instantly see whether current pressure is normal or extreme.
Cross-Asset Comparisons: Because Z-Scores are standardized, signals can be compared across different markets or timeframes.
Mean Reversion Tool: Extreme Z-Score values often precede turning points, making this a versatile addition to trend and momentum analysis.
🔹 How to use it
Apply the indicator to any chart and timeframe.
Watch for Z-Scores above +2 (possible overheated bullish pressure) or below –2 (possible oversold/exhaustion).
Use these levels as contextual signals, not standalone triggers. Best results come from combining with price structure, support/resistance, or volume analysis.
⚠️ Note: This script does not predict price. It highlights statistical extremes in pressure to support decision-making. Always use in combination with other tools and risk management practices.
Indicateurs et stratégies
Dr.Yazdani V063 Session OR + A-Lines
**ACD Indicator: Mark Fisher's Opening Range Breakout Strategy**
**Overview**
The ACD system, developed by legendary trader Mark Fisher in his book *The Logical Trader*, is a powerful methodology for identifying high-probability trade setups based on the market's opening range (OR). This indicator automates Layers 1 and 2 of the ACD strategy, helping you spot breakout opportunities, trend direction, and key support/resistance levels. Perfect for day traders, scalpers, and swing traders in forex, stocks, futures, or crypto.
**How It Works**
1. **Opening Range (OR)**: Calculated from the high/low of the first X minutes (default: 30-60 min) of major sessions (e.g., Tokyo, London, New York).
2. **A Levels**: Drawn at a percentage (default: 0.5% of OR range or ATR-based) above/below the OR. A breakout above A-Up signals a bullish setup; below A-Down signals bearish.
3. **C Levels**: Wider levels (default: 1-2% or ATR multiplier) for stronger confirmation. Breakouts here confirm trend strength and filter fakeouts.
4. **Pivot Ranges**: Includes daily and N-day pivots to gauge overall market bias (above pivots = bullish; below = bearish).
**Key Features**
- **Customizable Sessions**: Tokyo (00:00-01:00 GMT), London (08:00-09:00 GMT), New York (13:30-14:30 GMT) – adjustable.
- **ATR Integration**: Uses Average True Range for dynamic A/C levels (period: 14 by default).
- **Visual Alerts**: Color-coded lines (green for bullish, red for bearish) + optional labels for breakouts.
- **Pivot Display**: Show/hide daily or multi-day pivots with customizable colors.
- **Risk Management**: Built-in stop-loss suggestions based on OR width.
**Trading Rules**
- **Bullish Setup**: Price breaks and holds above A-Up → Enter long at C-Up confirmation. Target: Next pivot or 1:2 risk-reward.
- **Bearish Setup**: Price breaks below A-Down → Enter short at C-Down.
- **Avoid Fakeouts**: Wait for stabilization (e.g., close above/below level).
- **Trend Filter**: Combine with PMA (Pivot Moving Average) for Layer 3 confirmation (search "ACD PMA" in TradingView).
**Settings Guide**
- **OR Timeframe**: Session start time and duration (e.g., 30 min).
- **A Multiplier (%)**: Distance for A levels (default: 0.5).
- **C Multiplier (%)**: Distance for C levels (default: 1.0).
- **ATR Period**: For volatility-based levels (default: 14).
- **Show Pivots**: Toggle daily/N-day ranges.
This indicator balances supply/demand by analyzing volume and price action within the opening range. Backtest on your favorite pairs (e.g., EURUSD, BTCUSD) and adjust for your style. Not financial advice – always use proper risk management!
**Inspired by**: Mark Fisher's ACD Methodology. Open-source for community review. Questions? Comment below!
#ACD #OpeningRange #Breakout #DayTrading #FisherStrategy
IMB zones, alerts, 8 EMAs, DO lvlThis indicator was created to be a combined indicator for those who use DO levels, IMBs, and EMAs in their daily trading, helping them by providing a script that allows them to customize these indicators to their liking.
Here you can set the IMBs, DO levels, and EMAs. Its special feature is that it uses alerts to indicate which IMB zones have been created, along with the invalidation line for the new potential IMB.
The program always calculates the Daily Opening (DO) level from the opening of the broker, and you can set how many hours the line should be drawn.
Help for use:
There are 3 types of alerts:
- Use the "Bullish IMB formed" alert if you are looking for Bull IMBs.
- Use the "Bearish IMB formed" alert if you are looking for Bear IMBs.
- Use the "Either IMB" alert if you are looking for Bull and Bear IMBs.
Tip: Set the alert type "Once per bar close" if you do not want to set new alerts after an IMB is formed.
IMBs:
- Customizable IMB quantity (1-500 pcs)
- Zone colors and borders can be customized
- Potential IMB line can be customized
EMAs:
- You can set and customize 8 EMA lengths
- Only the current and higher timeframe EMAs are displayed
Daily Open Level:
- Displays today's Daily Open level
- Note: The DO level does not work in Replay mode
Last OFR:
"Show True OFR" checkbox added.
It displays the latest OFR, and hides the old ones.
Watermark with Session Boxes (by Rufi)Watermark & Session Boxes - Chart Branding Tool
What it does: Combines professional chart watermarking with automated trading session visualization for clean, branded analysis.
Key Features:
Smart Session Boxes: Auto-draws boxes around Asia (8PM-11:59PM), London (2AM-5AM), and NY (7AM-10AM) sessions using high/low detection
Custom Watermark: Professional text overlay with your brand/tagline
Full Customization: Adjustable colors, transparency (0-100%), and display limits (1-30 days)
How it works: Uses Pine Script's time() function to detect session periods, tracks price extremes during each session, then draws filled rectangles from session high to low. Perfect for identifying key support/resistance levels from major trading periods.
Best for: Intraday traders who want branded charts with clear session-based S/R levels. Ideal for forex, indices, and crypto on lower timeframes.
Hedge Pressure Index (HPI)Hedge Pressure Index (HPI)
Overview
The Hedge Pressure Index (HPI) is a flow-aware indicator that fuses daily options Open Interest (OI) with intraday put/call volume to estimate the directional hedging pressure of market makers and dealers. It helps traders visualize whether options flow is creating mechanical buy/sell pressure in IWM, and when that pressure may be shifting.
What HPI Shows
Daily OI Baseline (white line): Net OI carried forward intraday (Put OI − λ × Call OI). Updated once daily before the open.
Intraday Flow (teal line): Net put minus λ × call volume in real time. Smoothed to show underlying flow.
Spread Histogram (gray): Divergence between intraday flow and daily OI.
HPI Proxy Histogram (blue): Intraday hedge-pressure intensity. Strong extremes indicate heavy one-sided dealer hedging.
Trading Signals
Crossover:
When intraday Volume line crosses above OI, it suggests bullish hedge pressure.
When Volume line crosses below OI, it suggests bearish hedge pressure.
Z-Score Extremes:
HPI ≥ +1.5 → strong mechanical bid.
HPI ≤ −1.5 → strong mechanical offer.
Alerts: Built in for both crossovers and extreme readings.
How to Use HPI
1. Confirmation Tool (recommended for most traders):
Trade your usual price/technical setups.
Use HPI as a confirmation: only take trades that align with the hedge pressure direction.
2. Flow Bias (advanced):
Use HPI direction intraday as a standalone bias.
Fade signals when the histogram mean-reverts or crosses zero.
Best practice: Focus on the open and first 2 hours where hedging flows are most active. Combine with ATR/time-based stops.
Inputs
Demo Mode: If no OI/volume feed is set, the script uses chart volume for layout.
λ (Call Weight): Adjusts how much call volume offsets put volume (default = 1.0).
Smoothing Length: Smooths intraday flow line.
Z-Score Lookback: Sets lookback window for HPI extremes.
Custom Symbols:
Daily Net OI (pre-open OI difference).
Intraday Put Volume.
Intraday Call Volume.
Setup Instructions
Add the indicator to an IWM chart.
In Inputs, either keep Demo Mode ON (for layout) or enter your vendor’s Daily Net OI / Put Volume / Call Volume symbols.
Set alerts for crossovers and strong HPI readings to catch flow shifts in real time.
Optionally tune λ and smoothing to match your feed’s scale.
Notes
This is a proxy for dealer hedge pressure. For highest accuracy, replace the proxy histogram with gamma-weighted flow by strike/DTE when your data feed supports it.
Demo mode is for visualization only; live use requires a valid OI and volume feed.
Disclaimer
This script is for educational and research purposes only. It is not financial advice. Options and derivatives carry significant risk. Always test in a demo environment before using live capital.
Flexible Candle Zones-ZEESM ZONE and london and New york IC markings and daily range markings for last 30 days
By Gadirov The Best 1-Min Big Candle Change Optimized for binaryBy Gadirov The Best 1-Min Big Candle Change Optimized for binary
Nasdaq Futures Oscillator with VWAPai built oscillator use at your own risk don't know how it works but read script or test it out on a 1min chart
11 Sector Stocks Oscillator with Adjustable Speedoscillator made by grok 1min is all I have tested ai made it so use at your own risk
Alerte Croisement EMA9 & SMA12 (Zone remplie)📊 Moving Average 1
Period: 9 → The average is calculated over the last 9 candles (or time periods).
Shift: 0 → No shift; the average is aligned with the current data.
Method: Exponential → Uses an Exponential Moving Average (EMA), which gives more weight to recent data.
Apply to: Close → The average is based on the closing price of each candle.
📊 Moving Average 2
Period: 12 → Calculated over the last 12 periods.
Shift: 0 → No shift.
Method: Simple → Uses a Simple Moving Average (SMA), which gives equal weight to each period.
Apply to: Close → Based on closing prices.
3MA/EMA Alerts指标名称(中文/英文)
中文名:多均线趋势指标(带上穿与金叉提醒)
英文名:Multi MA/EMA Trend Indicator (with Price & Golden Cross Alerts)
指标功能介绍(中文)
多均线趋势指标(带上穿与金叉提醒) 是一个可自定义的均线工具,适用于趋势分析和交易信号提醒。
核心功能:
多均线显示
默认显示 EMA20,EMA80/200 可选择显示
每条均线可独立选择 EMA 或 SMA
自定义颜色和线宽
价格上穿均线提醒
当价格向上突破任意开启的均线时触发提醒
可用于捕捉短线趋势启动点
金叉提醒
当短期均线向上穿过中长期均线时触发提醒
可用于捕捉潜在的趋势反转或加速
中文 UI
参数和提醒信息均为中文,便于快速理解和使用
适用场景
趋势确认
趋势反转捕捉
短线入场和长期持仓参考
Indicator Description (English)
Multi MA/EMA Trend Indicator (with Price & Golden Cross Alerts) is a customizable moving average tool for trend analysis and trading alerts.
Key Features:
Multiple Moving Averages
Default display: EMA20; EMA80/200 optional
Each MA can be set as EMA or SMA individually
Customizable colors and line widths
Price Cross Alerts
Alerts when price crosses above any active MA
Helps identify short-term trend initiation points
Golden Cross Alerts
Alerts when a short-term MA crosses above a mid/long-term MA
Useful for detecting trend acceleration or reversal signals
User-Friendly Interface
Parameters and alerts are labeled in Chinese (can be translated)
Applications
Trend confirmation
Trend reversal detection
Short-term entries and long-term position guidance
Market Movement Indicator (MMI) The indicator fuses trend‑following (Supertrend) and momentum (EMA hierarchy) filters to give a clear, binary‑plus‑neutral signal that can be used for entry/exit decisions, position sizing, or as a filter for other strategies. Watch the video at youtu.be
by Gadirov Ultra BO Signals with Alerts & Soundsby Gadirov Ultra BO Signals with Alerts & Sounds for binary 1 minute
Opening Range BoxThis indicator, called the "Opening Range Box," is a visual tool that helps you track the start of key trading sessions like London and New York (or whatever session you set).
It does three main things:
Finds the Daily 'First Move': It automatically calculates the High and Low reached during the first 30 minutes (or whatever time you set) of each defined session.
Draws a Box: It immediately draws a colored, transparent box on your chart from the moment the session starts. The top of the box is the OR High, and the bottom is the OR Low. This box acts as a clear reference for the session's initial boundaries.
Extends the Levels: After the initial 30 minutes are over, the box stops growing vertically (it locks in the OR High/Low) but continues to stretch out horizontally for the rest of the trading session. This allows you to easily see how the price reacts to the opening levels throughout the day.
In short: It visually highlights the most important price levels established at the very beginning of the major market sessions.
TRP Stop-Loss_Trailing SL# TRP Stop-Loss Indicator
## Overview
The TRP (True Range Percentage) Stop-Loss indicator is an advanced volatility-based stop-loss tool that provides dynamic position protection based on market volatility. Unlike traditional ATR-based indicators, TRP calculates volatility as a percentage of price, offering superior adaptability across different price ranges and market conditions.
## What is TRP and Why It's Superior to ATR
### TRP (True Range Percentage)
TRP calculates the true range as a percentage of the closing price, providing a **normalized volatility measure**. The formula is:
```
TRP = (True Range / Close) × 100
```
### Key Advantages of TRP over ATR:
1. **Price-Normalized Volatility**: TRP automatically adjusts for different price levels, making it equally effective whether you're trading a $10 stock or a $1000 stock.
2. **Percentage-Based Risk**: TRP gives you direct percentage risk values, making position sizing and risk management more intuitive.
3. **Better Cross-Market Comparison**: Unlike ATR, TRP allows you to compare volatility across different instruments on an equal basis.
4. **Adaptive to Market Conditions**: TRP naturally scales with price movements, providing more relevant stop-loss levels during trending markets.
5. **Consistent Risk Exposure**: Maintains consistent percentage risk regardless of the underlying asset's price level.
## Indicator Features
### 🎯 **Dual Stop-Loss System**
- **Long SL**: Red line below price for long positions
- **Short SL**: Blue line above price for short positions
- Independent control for each direction
### ⚙️ **Advanced Calculation Options**
#### **Multiple TRP Calculation Sources:**
- **Current Candle**: Uses real-time running candle data
- **Previous Close**: Uses completed candle data (default)
- **Last Green Candle**: For longs - uses TRP from the most recent bullish candle
- **Last Red Candle**: For shorts - uses TRP from the most recent bearish candle
#### **Independent Multipliers:**
- Separate multiplier controls for long and short stop-losses
- Adjust risk levels independently (0.1x to 10x+ range)
- Fine-tune stop-loss distance based on your risk tolerance
### 📊 **Visual Customization**
- **Line Styles**: Solid, dashed, or dotted lines
- **Custom Colors**: Separate color controls for long/short SL
- **Line Width**: Adjustable thickness (1-10)
- **Extension**: Customizable projection bars to the right
### 🏷️ **Smart Labeling System**
- **Value Display**: Shows exact SL price on the right side of lines
- **Toggle Control**: Enable/disable labels as needed
- **Size Options**: 5 different label sizes (tiny to huge)
- **Color Coordination**: Labels match their respective line colors
### ⏰ **Multi-Timeframe Support**
- Calculate TRP on any timeframe while viewing on another
- Default: Daily TRP calculation for intraday charts
- Maintains calculation integrity across timeframe switches
## How to Use
### Basic Setup:
1. Add the indicator to your chart
2. Select your preferred timeframe for TRP calculation
3. Choose calculation source for long and short positions
4. Adjust multipliers based on your risk tolerance
### Risk Management Applications:
- **Conservative**: Use 0.5-0.8 multipliers for tighter stops
- **Standard**: Use 1.0 multiplier for normal volatility-based stops
- **Aggressive**: Use 1.2-2.0 multipliers for wider stops in volatile markets
### Advanced Strategies:
- **Trend Following**: Use "Last Green/Red Candle" sources to adapt to momentum changes
- **Breakout Trading**: Use "Current Candle" for real-time stop adjustments
- **Swing Trading**: Use "Previous Close" for stable, confirmed levels
## Key Benefits
✅ **Dynamic Adaptation**: Automatically adjusts to changing market volatility
✅ **Percentage Risk Control**: Direct percentage-based risk management
✅ **Multi-Strategy Compatible**: Works with scalping, day trading, and swing trading
✅ **Visual Clarity**: Clean, professional chart display with customizable appearance
✅ **Real-Time Updates**: Instant recalculation when settings change
✅ **No Overlapping Lines**: Smart line management prevents chart clutter
## Best Practices
1. **Backtest First**: Test different multiplier settings on historical data
2. **Market Adaptation**: Adjust multipliers based on current market volatility regime
3. **Combine with Other Signals**: Use TRP stops with your existing entry signals
4. **Position Sizing**: Use TRP percentage values for consistent position sizing
5. **Regular Review**: Periodically review and adjust settings based on performance
## Technical Specifications
- **Pine Script Version**: v6
- **Overlay**: Yes (draws directly on price chart)
- **Calculations**: Based on 50-period EMA of TRP values
- **Updates**: Real-time with automatic line management
- **Performance**: Optimized for fast execution and minimal lag
This indicator is ideal for traders who want professional-grade, volatility-adaptive stop-loss management with the flexibility to fine-tune risk parameters across different market conditions and trading styles.
Opening Range BoxThis indicator, called the "Opening Range Box," is a visual tool that helps you track the start of key trading sessions like London and New York.
It does three main things:
Finds the Daily 'First Move': It automatically calculates the High and Low reached during the first 30 minutes (or whatever time you set) of each defined session.
Draws a Box: It immediately draws a colored, transparent box on your chart from the moment the session starts. This box acts as a clear reference for the session's initial boundaries.
Extends the Levels: After the initial 30 minutes are over, the box stops growing vertically (it locks in the OR High/Low) but continues to stretch out horizontally for the rest of the trading session. This allows you to easily see how the price reacts to the opening levels throughout the day.
In short: It visually highlights the most important price levels established at the very beginning of the major market sessions.
Combined MOST + ATR MOST + ATR Combined indicator. This is published by interesting idea for my dad he tought that he combination of these two indicators gives a good result
Ultimate BB Squeeze [Final]This indicator gives the move as it is about to happen and I have even added adx to the same so as to have a directional trade and not get stopped by loss.
By Gadirov Enhanced EURUSD BO Signals for binaryBy Gadirov Enhanced EURUSD BO Signals for binary 1 minute and 3 minute
Double Pattern Screener v7 //@version=6
indicator("Double Pattern Screener", shorttitle="DPS", overlay=false)
// Screener Inputs
leftBars = input.int(5, "Left Bars", minval=3, maxval=10)
rightBars = input.int(5, "Right Bars", minval=3, maxval=10)
tolerance = input.float(0.02, "Max Difference", step=0.01)
atrLength = input.int(14, "ATR Length", minval=1)
// NEW: Filter for number of equal peaks
filterPeaks = input.int(3, "Filter: Show Only X Equal Peaks", minval=2, maxval=5)
enableFilter = input.bool(true, "Enable Peak Count Filter")
// Arrays for tracking swings
var array todaySwingLevels = array.new(0)
var array swingCounts = array.new(0)
var array isResistance = array.new(0)
var array swingBars = array.new(0)
var int maxEqualPeaks = 0
var float nearestEqualLevel = na
var float distanceToNearest = na
var bool hasPattern = false
// Detect swings
swingHigh = ta.pivothigh(high, leftBars, rightBars)
swingLow = ta.pivotlow(low, leftBars, rightBars)
// Track current day
currentDay = dayofmonth
isNewDay = currentDay != currentDay
// Clear on new day
if barstate.isfirst or isNewDay
array.clear(todaySwingLevels)
array.clear(swingCounts)
array.clear(isResistance)
array.clear(swingBars)
maxEqualPeaks := 0
nearestEqualLevel := na
distanceToNearest := na
hasPattern := false
// Function to find matching level
findMatchingLevel(newLevel, isHigh) =>
matchIndex = -1
if array.size(todaySwingLevels) > 0
for i = 0 to array.size(todaySwingLevels) - 1
existingLevel = array.get(todaySwingLevels, i)
existingIsResistance = array.get(isResistance, i)
if math.abs(newLevel - existingLevel) <= tolerance and existingIsResistance == isHigh
matchIndex := i
break
matchIndex
// Process swing highs
if not na(swingHigh)
matchIndex = findMatchingLevel(swingHigh, true)
if matchIndex >= 0
newCount = array.get(swingCounts, matchIndex) + 1
array.set(swingCounts, matchIndex, newCount)
// Update max equal peaks
if newCount > maxEqualPeaks
maxEqualPeaks := newCount
else
array.push(todaySwingLevels, swingHigh)
array.push(swingCounts, 1)
array.push(isResistance, true)
array.push(swingBars, bar_index)
// Process swing lows
if not na(swingLow)
matchIndex = findMatchingLevel(swingLow, false)
if matchIndex >= 0
newCount = array.get(swingCounts, matchIndex) + 1
array.set(swingCounts, matchIndex, newCount)
// Update max equal peaks
if newCount > maxEqualPeaks
maxEqualPeaks := newCount
else
array.push(todaySwingLevels, swingLow)
array.push(swingCounts, 1)
array.push(isResistance, false)
array.push(swingBars, bar_index)
// Remove broken levels
if array.size(todaySwingLevels) > 0
for i = array.size(todaySwingLevels) - 1 to 0
level = array.get(todaySwingLevels, i)
isRes = array.get(isResistance, i)
levelBroken = isRes ? close > level : close < level
if levelBroken
removedCount = array.get(swingCounts, i)
array.remove(todaySwingLevels, i)
array.remove(swingCounts, i)
array.remove(isResistance, i)
array.remove(swingBars, i)
// Recalculate max if we removed the highest count
if removedCount == maxEqualPeaks
maxEqualPeaks := 0
if array.size(swingCounts) > 0
for j = 0 to array.size(swingCounts) - 1
count = array.get(swingCounts, j)
if count > maxEqualPeaks
maxEqualPeaks := count
// Calculate nearest equal level and distance
nearestEqualLevel := na
distanceToNearest := na
smallestDistance = 999999.0
if array.size(todaySwingLevels) > 0
for i = 0 to array.size(todaySwingLevels) - 1
count = array.get(swingCounts, i)
level = array.get(todaySwingLevels, i)
// Only consider levels with 2+ touches
if count >= 2
distance = math.abs(close - level)
if distance < smallestDistance
smallestDistance := distance
nearestEqualLevel := level
distanceToNearest := distance
// Pattern detection with filter
hasPattern := false
if maxEqualPeaks >= 2
if enableFilter
hasPattern := maxEqualPeaks == filterPeaks
else
hasPattern := true
// Screener outputs
patternSignal = hasPattern ? 1 : 0
numberEqualPeaks = maxEqualPeaks
nearestLevelPrice = nearestEqualLevel
distanceCents = distanceToNearest
// Calculate ATR normalized distance
atr = ta.atr(atrLength)
atrDistance = not na(distanceToNearest) and not na(atr) and atr > 0 ? distanceToNearest / atr : na
// Plot screener values
plot(patternSignal, title="Pattern Signal", display=display.data_window)
plot(numberEqualPeaks, title="Number Equal Peaks", display=display.data_window)
plot(nearestLevelPrice, title="Nearest Equal Level Price", display=display.data_window)
plot(distanceCents, title="Distance to Nearest (Price Units)", display=display.data_window)
plot(atrDistance, title="ATR Normalized Distance", display=display.data_window)
// Table for current symbol info
if barstate.islast
var table infoTable = table.new(position.top_right, 2, 6, bgcolor=color.new(color.black, 70))
table.cell(infoTable, 0, 0, "Symbol:", bgcolor=color.new(color.gray, 50), text_color=color.white)
table.cell(infoTable, 1, 0, syminfo.ticker, bgcolor=color.new(color.blue, 50), text_color=color.white)
table.cell(infoTable, 0, 1, "Pattern:", bgcolor=color.new(color.gray, 50), text_color=color.white)
table.cell(infoTable, 1, 1, str.tostring(patternSignal), bgcolor=patternSignal == 1 ? color.new(color.purple, 50) : color.new(color.gray, 50), text_color=color.white)
table.cell(infoTable, 0, 2, "Equal Peaks:", bgcolor=color.new(color.gray, 50), text_color=color.white)
table.cell(infoTable, 1, 2, str.tostring(numberEqualPeaks), bgcolor=color.new(color.yellow, 50), text_color=color.black)
table.cell(infoTable, 0, 3, "Nearest Level:", bgcolor=color.new(color.gray, 50), text_color=color.white)
table.cell(infoTable, 1, 3, str.tostring(nearestLevelPrice, "#.####"), bgcolor=color.new(color.orange, 50), text_color=color.white)
table.cell(infoTable, 0, 4, "Distance:", bgcolor=color.new(color.gray, 50), text_color=color.white)
table.cell(infoTable, 1, 4, str.tostring(distanceCents, "#.####"), bgcolor=color.new(color.green, 50), text_color=color.white)
table.cell(infoTable, 0, 5, "Filter Active:", bgcolor=color.new(color.gray, 50), text_color=color.white)
filterText = enableFilter ? str.tostring(filterPeaks) + " peaks" : "OFF"
table.cell(infoTable, 1, 5, filterText, bgcolor=enableFilter ? color.new(color.red, 50) : color.new(color.gray, 50), text_color=color.white)